Результаты поиска по дереву методом Монте-Карло, в свою очередь, используются для обучения нейронной сети. Представьте, что вы AlphaGo и уже осуществили поиск. Его результатами стали новые вероятности, присвоенные всем вашим допустимым ходам на основе того, как часто эти ходы приводили к победам или поражениям в построенных развертках. Далее новые вероятности используются для корректировки выходного сигнала сверточной сети с помощью метода обратного распространения ошибки. Затем вы с противником выбираете ходы, после чего позиция на доске меняется – и процесс продолжается. По сути, СНС учится распознавать паттерны, прямо как мастера го. В конце концов сеть начинает играть роль “интуиции” программы, которая подкрепляется поиском по дереву методом Монте-Карло.
Как и ее предшественница, шашечная программа Сэмюэла, AlphaGo учится, играя сама с собой и проводя огромное количество партий (около пяти миллионов). Во время обучения веса сверточной нейронной сети корректируются после каждого хода на основе различий между выходными ценностями сети и уточненными ценностями после проведения поиска по дереву методом Монте-Карло. Затем, когда AlphaGo играет с человеком вроде Ли Седоля, обученная СНС на каждом ходе присваивает ценности, которые становятся отправными точками для поиска.
Создав AlphaGo, специалисты DeepMind продемонстрировали, что один из давних больших вызовов ИИ покорился хитроумной комбинации обучения с подкреплением, сверточных нейронных сетей и поиска по дереву методом Монте-Карло (а также мощной современной вычислительной техники). В результате AlphaGo заняла заслуженное место в пантеоне ИИ. Но что дальше? Научится ли эта действенная комбинация методов генерализации за пределами игрового мира? Об этом я расскажу в следующей главе.
Глава 10
Не ограничиваясь играми
За последнее десятилетие обучение с подкреплением превратилось из относительно малоизвестного ответвления ИИ в одно из самых перспективных (и активно финансируемых) направлений развития отрасли. Возрождение обучения с подкреплением – особенно в глазах общественности – произошло во многом благодаря проектам DeepMind, которые я описала в предыдущей главе. Достижения DeepMind в играх Atari и го действительно феноменальны и заслуживают признания.
Однако в представлении многих исследователей ИИ разработкой сверхчеловеческих игровых программ дело не ограничивается. Давайте сделаем шаг назад и рассмотрим вопрос об использовании этих достижений для общего прогресса ИИ. Демису Хассабису есть что сказать на этот счет:
Игры – это всего лишь платформа для дальнейшего развития… Это самый быстрый способ разрабатывать и тестировать алгоритмы ИИ, но в итоге мы хотим использовать их так, чтобы они решали реальные задачи и оказывали огромное влияние на такие области, как здравоохранение и наука. Суть в том, что это общий ИИ – и он учится работать [на основе] собственного опыта и данных[212].
Давайте копнем немного глубже. Насколько общим можно считать этот ИИ? Насколько он применим к реальным задачам, помимо игр? В какой степени эти системы действительно учатся “самостоятельно”? И чему именно они учатся?
Общий характер и “перенос обучения”
Когда я искала в интернете статьи об AlphaGo, Сеть подкинула мне громкий заголовок: “Разработанная DeepMind программа AlphaGo на досуге научилась играть в шахматы”[213]. Это утверждение недостоверно, и важно понимать почему. AlphaGo (во всех версиях) не умеет играть ни в одну игру, кроме го. Даже самая общая версия, AlphaZero, – это не единая система, которая научилась играть в го, шахматы и сёги. Для каждой игры выделяется отдельная сверточная нейронная сеть, которую необходимо с нуля обучать конкретной игре. В отличие от людей, эти программы не могут “переносить” знания об одной игре, чтобы им было легче учиться играть в другую.
То же самое относится к различным программам для игры в видеоигры Atari: каждая из них узнает веса сети с нуля. Можно провести такое сравнение: представьте, что вы научились играть в Pong, но затем, чтобы научиться играть в Breakout, должны забыть все, что узнали об игре в Pong, и начать с чистого листа.