Научение – это оптимизация функции вознаграждения
Помните систему LeNet Лекуна, которая распознает формы цифр? Чтобы этот тип искусственной нейросети мог учиться, его необходимо обеспечить правильными ответами. Иными словами, сеть должна знать, какой из десяти возможных цифр соответствует каждое введенное изображение. Для исправления ошибок система должна вычислить разницу между своим и правильным ответами. Данная процедура получила название «обучения с учителем»: некто вне системы знает решение и пытается научить машину. Метод достаточно эффективный, однако следует отметить, что ситуация, в которой правильный ответ известен заранее, – большая редкость. Когда дети учатся ходить, никто не говорит им, какие именно мышцы нужно сокращать; их просто поощряют пробовать снова и снова, пока они не перестают падать. Другими словами, малыши учатся исключительно на основе оценки результата: я упал или же мне удалось наконец пересечь комнату.
С той же проблемой «обучения без учителя» сталкивается и искусственный интеллект. Например, когда машина учится играть в видеоигру, перед ней ставят одну-единственную задачу – набрать максимальное количество очков. Никто не говорит ей, какие именно действия необходимо для этого предпринять. Как же быть? Как машине самостоятельно найти эффективный и быстрый способ достичь поставленной цели?
«Очень просто», – сказали ученые и придумали так называемое «обучение с подкреплением», в рамках которого мы не сообщаем системе никаких подробностей о том, что она должна делать (этого никто не знает!), но определяем «награду» – например, в виде количества очков>9. Что еще хуже, машина может узнавать это количество с задержкой, уже после совершения тех или иных действий. Обучение на основе отложенного подкрепления – принцип, на базе которого DeepMind, дочерняя компания Google, построила машину, способную играть в шахматы, шашки и го. В конце партии система получает один-единственный сигнал, свидетельствующий о выигрыше или проигрыше. Во время самой игры обратная связь отсутствует – засчитывается лишь окончательная победа над соперником. Как же тогда машине определить, что нужно делать? И, если уж на то пошло, как она может оценить свои действия, если известен только исход игры?
Ученые нашли хитрое решение. Они программируют машину так, чтобы она делала сразу две вещи: действовала и одновременно оценивала собственный прогресс. Одна половина системы, так называемый «критик», учится предсказывать конечный результат. Цель этой сети искусственных нейронов заключается в том, чтобы как можно точнее оценить состояние игры и предсказать ее исход: я выигрываю или проигрываю? Благодаря «внутреннему критику» система способна оценивать свои действия в любой момент времени, а не только в конце. На основании этой оценки другая половина машины, «актор» (собственно, «исполнитель»), корректирует свое поведение: пожалуй, мне не стоит делать то-то и то-то – «критик» считает, что это увеличит мои шансы на проигрыш.
Испытание за испытанием «актор» и «критик» работают в тандеме: один учится выбирать наиболее эффективные действия, другой – как можно точнее оценивать их последствия. Спустя некоторое время – в отличие от того парня из анекдота, который падает с небоскреба и на лету восклицает: «Пока все хорошо!» – сеть «актор – критик» обретает невероятную прозорливость: способность предсказывать, какие партии скорее всего будут выиграны, а какие неизбежно закончатся катастрофой.
Комбинация «актор – критик» – одна из самых эффективных стратегий современного искусственного интеллекта. При поддержке иерархической нейронной сети она буквально творит чудеса. Еще в 1980-х годах эта система выиграла чемпионат мира по нардам, а недавно позволила