Анатомия технологии AlphaGo: раскрытие тайны мозга Go
● Одно слово в неделю.
Не существует стандарта мышления и познания, воплощенного в интеллекте.
Введение
Го, зародившееся в моей стране в периоды Яо и Шунь, пользуется большим спросом с древних времен и содержит богатые коннотации китайской культуры. В отличие от шахмат и международных шахмат, доска в го огромна, и ее игровой процесс постоянно меняется. Возможность его хода еще более неизмерима. Следовательно, это всегда было препятствием, которое шахматный ИИ не мог преодолеть.
Благодаря быстрому развитию глубокого обучения и быстрому продвижению компьютерных аппаратных технологий, программа AlphaGo AI, разработанная командой DeepMind, обошла профессионального дуэта европейского игрока Go Fan Hui с преимуществом 5: 0 в январе прошлого года и в марте следующего года. со счетом 4: 4: 1) Ли Седол, южнокорейский игрок, победивший профессионала с 9 даном го и занявший четвертое место в мире. Чтобы
DeepMind AlphaGo – ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ | Озвучка Hello Robots
Недавно новая версия AlphaGo и китайский шахматист №1 в мире Кэ Цзе снова сыграли три раунда: 23 мая в первом раунде Кэ Цзе пожалел о проигрыше с отставанием в четверть очка. 25-го Ке Цзе признал поражение во второй игре, 27-го Ке Цзе сделал 209 бросков в третьей игре. В итоге Ке Цзе проиграл AlphaGo 0: 3.
Итак, почему AlphaGo так сильна? В чем заключается идея алгоритма? Означает ли это, что Кэ Цзе, сильнейший шахматист, способный охватить современное человечество, открыл дверь в эру сильного ИИ?
AlphaGo
Фактически, в Интернете уже есть много статей, в которых рассказывается о технологии, лежащей в основе AlphaGo, но большинство из них делят AlphaGo на две части: сеть политик и сеть ценностей.Лично я считаю слишком абстрактным и общим. Что касается обучения и общения, я хотел бы проанализировать внутренний механизм реализации AlphaGo с технической точки зрения. Если есть какие-либо отклонения в понимании, пожалуйста, оставьте сообщение. Чтобы
Раскройте тайну AlphaGo, это проект машинного обучения.Поскольку это проект машинного обучения, по крайней мереСодержит эти три модуля: извлечение признаков, обучение модели и прогнозирование модели.Мы могли бы также начать с этих трех аспектов и поговорить об этом «загадочном» проекте машинного обучения.
Извлечение признаков
Для данных GoИзвлечение признаков заключается в оцифровке и структурировании состояния каждого хода.Исходные данные Go, используемые AlphaGo, берутся из 6–9 этапов игры на сервере KGS Go, всего 160 000 игр с почти 30 миллионами ходов. В соответствии с потребностями различных подмоделей AlphaGo извлек в общей сложности две части функциональных данных из этих оригинальных шахматных игр. Чтобы
Программа AlphaGo: Как компьютер научился играть в го
Прежде всего, для нас нетрудно придумать первую наиболее интуитивно понятную функцию шахматной доски, а именно позицию в игре. Как показано на рисунке выше, размер доски для игры составляет 19 × 19, и есть три возможных положения для каждой позиции: черное, белое или пустое. Следовательно, данные признака хода выборки представляют собой три матрицы 19 × 19, и каждая матрица отдельно описывает ход на шахматной доске.
В дополнение к позиции хода, текущее состояние самой доски также может извлекать множество характеристик, таких как текущий черный или белый, раунды каждого хода, ожидаемое количество ласточек после хода и то, является ли ход законный. В качестве примера возьмем функцию «количество раундов, пройденных каждым ходом». 8-битной двоичной строки достаточно, чтобы представить количество раундов, сыгранных любой стороной во всей игре. Таким образом, эта функция может быть представлена 8 матрицами 19 × 19 . На следующем рисунке показан пример формы матрицы характеристик ситуации размещения, и другие функции могут быть выведены по аналогии. Чтобы
плюс ситуация размещения,AlphaGo извлек в общей сложности 48 функций, чтобы сформировать пространство функций размером 19 × 19 × 48.Для удобства последующего описания этот набор данных функции сначала названSetA。SetAЭто эквивалентно набору данных изображения как входу сверточной нейронной сети.
В дополнение к набору данных изображения AlphaGo также извлекает другую локальную функцию, которая передается в сеть регрессии softmax на основе знаний предметной области Go, которая используется для реализации быстрых перемещений и подготовки к поиску по дереву Монте-Карло (MCTS) позже. Для этих локальных функций AlphaGo предоставляет только числовую статистику и не предоставляет конкретных методов извлечения для этих функций. Числовая статистика показана на рисунке ниже. Чтобы
Аналогичным образом, чтобы облегчить дальнейшее описание, этот набор данных функции называетсяSetB。
Модельное обучение
С самого начала он разделен на стратегическую сеть и сеть ценностей, что только увеличит загадку «толстого» AlphaGo. Если честно, на самом деле существует четыре подмодели AlphaGo.: Сеть сверточной стратегии, сеть расширенной стратегии, сеть регрессии softmax и сеть сверточных значений.Ниже я объясню эти четыре сетевые структуры и процесс их обучения одну за другой.
Сеть сверточной стратегии
Необходимо подготовить почву для нескольких слов. Поскольку компания по машинному обучению Taishan Beidou Hinton возобновила бум глубокого обучения в 2006 году с быстрым развитием компьютерных аппаратных технологий, как один из представителей глубокого обучения, сверточная нейронная сеть (Convolutional Neural Network), CNN), каждый в мире алгоритмов никого не знает. CNN умеет решать такие проблемы, как распознавание и классификация изображений, которые имеют потрясающий эффект на эти проблемы.Поэтому команда DeepMind выбрала CNN для обучения базовой модели AlphaGo. Сетевая структура данной модели показана на рисунке ниже. Чтобы
Видно, что набор входных данныхsetAСеть сверточной стратегии имеет 13 сверточных слоев и полносвязный слой softmax. Среди них первый сверточный слой использует сверточное ядро 5 × 5 для вывода Relu одинакового размера, со второго по двенадцатый сверточные слои используют сверточное ядро 3 × 3 для вывода Relu того же размера, а 13-й слой использует 1 × 1 Ядро модуля выполняет линейный фильтр нормализации, и, наконец, полностью связанный слой softmax предсказывает возможность следующей позиции размещения.
Вполне возможно, что уровень ИИ Go, сформированный этой сверточной стратегической сетью, уже очень высок, по крайней мере, он изучил методы большинства человеческих мастеров. Однако для AlphaGo этого далеко не достаточно.
Расширенная сеть политик
Если сеть сверточных стратегий — это этап обучения и превосходства над другими, то расширение сети стратегий — это этап самообучения и самопревосходства. Говорят, что результатом внутреннего тестирования AlphaGo является то, что коэффициент выигрыша сети расширенной стратегии по сравнению с сетью стратегии верхней свертки достигает 80%! Так как же достичь самообучения?
Здесь я должен поговорить об обучении с подкреплением.Обучение с подкреплением, также известное как обучение с подкреплением, — это метод машинного обучения, который находит и мотивирует лучшую стратегию с помощью метода непрерывных проб и ошибок.
В качестве примера возьмем следующий го: это как два человека, которые вообще не умеют играть в шахматы, все они случайным образом перемещаются вначале, пока одна из сторон не выиграет. Победившая сторона оптимизирует свою стратегию ходов в соответствии с ходом, а затем двое продолжают играть, оптимизировать и играть в шахматы, повторяя этот процесс до тех пор, пока не будет выполнено определенное условие. В конце концов, люди, не умеющие играть в шахматы, могут знать, какой ход хороший, а какой плохой. Это популярное объяснение обучения с подкреплением, немного напоминающее технику рукопашного боя Чжоу Ботуна. Чтобы
В расширенной сети стратегии для обучения используется обучение с подкреплением. Это не случайное размещение, а базовый ИИ сети стратегии свертки для начала размещения. Конкретный метод заключается в том, чтобы сначала скопировать параметры сети сверточной стратегии для инициализации сети расширенной стратегии, и, наконец, метка выигрыша или проигрыша и шахматы равны 0, выигрышные шахматы — 1, проигравшие шахматы — -1, а затем сеть с улучшенной стратегией используется для многократной игры в шахматы с самим собой, в зависимости от выигрыша или проигрыша. В результате обратное распространение обновляет параметры сети. После нескольких итераций обновите набор параметров сети противника до тех пор, пока не будут выполнены определенные условия.
Говорят, что только шахматный уровень сети достиг 3-го уровня сома. Однако AlphaGo не использовала эту расширенную стратегическую сеть в окончательной системе.Причина в том, что отсутствие изменений в шахматном стиле расширенной стратегической сети не хорошо для последующего поиска по дереву Монте-Карло.
регрессионная сеть softmax
Вы можете спросить, выше уже есть сильная сеть ходов в шахматы, зачем нам сеть регрессии softmax для ходов? Думаю, причин может быть две:
первый,Структура регрессионной сети имеет только один скрытый слой. По сравнению с 13-слойной структурой сверточной нейронной сети скорость ее размещения намного выше. Это совсем не на порядок, а точность неплохая. Монте-Карло будет обсуждаться позже.Метод поиска по дереву требует очень большого времени поиска, а сверточная сеть не может удовлетворить требованиям;
Во-вторых, набор данных сети регрессии softmax установлен B,противsetAНаходясь в совершенно другом пространстве функций, он может увеличить разнообразие шахматных ходов и увеличить возможность ходов.
Факты доказали, что, используя softmax для выхода в сеть самостоятельно, она достигла 3-го уровня сомов.
Сверточная сеть значений
Это еще одна замечательная особенность AlphaGo, которая означает, что AlphaGo должен не только иметь эффективный план ходов, но также иметь такую сеть для оценки вероятности выигрыша в текущей игре, чтобы вдвое гарантировать, что текущий план ходов является оптимальным решением.
Алгоритмическая идея сети сверточных значений такова: каждый раз, когда раунд T в случайной игре в шахматы, первый раунд до T-1 шахматной игры генерируется сетью стратегии свертки; затем в T-м раунде случайное место — T +. После 1 раунда до конца игры для генерации ходов используется расширенная стратегическая сеть; наконец, вычисляются выигрыши и проигрыши. Выигрышные шахматы — 1, а проигрышные — 0. Ошибка обратного распространения корректирует параметры сети. Структура этой сети сверточных значений показана на рисунке ниже. Чтобы
Наблюдая за приведенным выше рисунком, мы можем видеть, что, за исключением того, что выходной слой заменяет слой softmax на 256 полностью связанных слоев плюс слой активации Tanh, структура других слоев точно такая же то же, что и сеть сверточной стратегии. Кроме того, следует отметить, что здесьВсе входные данные генерируются сетью сверточной стратегии и сетью расширенной стратегии.И чтобы избежать переобучения, вызванного разными входами, но одним и тем же концом в одной игре,Каждая игра будет брать только один образец для обучения, Поэтому 30 миллионов игровых образцов были собраны отдельно в качестве обучающей выборки.
Прогноз модели
После создания вышеупомянутых четырех видов оружия, сети сверточной стратегии, сети расширенной стратегии, сети регрессии softmax и сети сверточных значений, AlphaGo вступила в бой. Он вошел в топ-додзё среди людей, чтобы соревноваться с лучшими игроками. Принятая тактическая стратегия — вышеупомянутая.Поиск по дереву Монте-Карло (MCTS), Схема поиска показана ниже. Чтобы
Поиск по дереву Монте-Карло
Основная идея MCTS:Моделируйте будущую шахматную партию много раз, а затем выберите в качестве текущего хода ход с наибольшим временем моделирования.Конкретные шаги заключаются в следующем:
прежде всего, Используйте сеть стратегии свертки для создания плана размещения для следующего раунда T;
тогда, Используйте сверточную сеть значений, чтобы оценить коэффициент выигрыша плана хода, и сеть регрессии softmax, чтобы продолжить быстрое движение на основе плана ходов до конца игры, чтобы получить выигрышный или проигрышный результат, и объедините два результаты для расчета выигрыша в плане хода Т-раунда;
тогда, В сочетании с коэффициентом выигрыша используйте сеть стратегии свертки для восстановления плана размещения для следующего раунда T. Если произойдет такой же ход, коэффициент выигрыша будет усреднен;
Наконец, Повторите описанный выше процесс несколько раз и выберите в качестве текущего хода ход с наибольшим выигрышем. Чтобы
Теперь я могу резюмировать это, если вы простоРазделите AlphaGo на стратегическую сеть и сеть создания ценности, Тогда сеть стратегий относится к сети сверточной стратегии, упомянутой выше, а сеть значений — это комбинация сети сверточных значений и сети регрессии softmax. Среди них сеть стратегий отвечает за расчет текущей позиции размещения, а сеть создания ценности отвечает за оценку окончательного выигрыша в размещении. MCTS использует эти два результата для поиска и предоставления окончательного плана размещения.
Говорят, что версия AlphaGo Master против Кэ Цзе недавно побила прошлогоднюю версию третьего глаза Ли Шиши.После трех раундов с Кэ Цзе не было никакого поражения из-за бессознательных действий, таких как четвертый раунд в прошлом году. Обсуди причину,Один из них — оптимизация в MCTS, В сочетании с быстрыми перемещениями для поиска узлов вместо использования только сетей сверточной стратегии, чтобы в краткосрочной перспективе не впадать в локальное мышление и полностью игнорировать человеческий «ход магии»;Во-вторых, набор данных полностью отказался от человеческой игры., Он состоит из образцов, выбранных из собственной игры AlphaGo, поэтому стратегическая сеть будет сильнее. Чтобы
Еще одно предложение здесь, только использование узла поиска сети с использованием стратегии свертки имеет недостатки, потому что ядро свертки обычно очень маленькое, в результате локальное представление различных позиций шахматной доски должно быть взаимно после несколько раундов Влияния, поэтому появился так называемый слабый ход.
В конце статьи хочу высказать свое мнение по следующему вопросу.
Победа Фань Хуэй, Ли Шиши и Кэ Цзе, одна за другой, означает ли это, что AlphaGo обладает чувством автономии и движется к эре сильного ИИ?
На этот вопрос я хочу ответить двумя пунктами. Чтобы
Один, Является ли вожделение система распознавания изображений, способная распознавать красивые картинки? Чтобы
Второй, Учитель Тянь Юаньдун, глава темного леса Facebook, сказал, что AlphaGo требовала китайских правил, когда играла против Ли Шиши в марте прошлого года, потому что, если они будут заменены другими правилами и изменится цель прогнозирования, AlphaGo потребуется переобучить значение сеть. Чтобы
Не существует стандарта мышления и познания, воплощенного в интеллекте.В настоящее время проекты крупных компаний по искусственному интеллекту больше похожи на стандартизированные продукты. Так что с этих аспектов, будь то AlphaGo, Google Brain или Baidu Brain, до настоящего интеллекта еще далеко.
Источник: russianblogs.com
Игры роботов: последняя открытая игра пала под натиском искусственного интеллекта
9 марта начался матч между программой AlphaGo и одним из сильнейших игроков планеты, Ли Седолем. Еще месяц назад Седоль был совершенно уверен в своей победе, но проиграл программе в первом же раунде — неожиданно и для себя, и для наблюдавших за матчем других профессиональных игроков. На следующий день он сдал и вторую игру. Чем закончится вся серия игр, станет известно на следующей неделе. Пока же N+1 рассказывает, как устроена система машинного обучения AlphaGo и что об этой истории думают эксперты — профессиональные игроки в го и специалисты по теории игр.
Матч
«Я был уверен, что у нас есть хотя бы 10 лет в запасе. Еще пару месяцев назад мы играли с программами на форе в четыре камня — это примерно как фора в ладью в шахматах. И тут — бац! — сразу Ли Седоль повержен» — так описывает свои впечатления от матча один из самых сильных российских игроков, семикратный чемпион Европы по игре го Александр Динерштейн. «Я прогнозировал счет 5-0 в пользу Ли Седоля. И многие ведущие профессионалы были согласны с этой оценкой. Сейчас все в шоке, никто не знает, что будет».
Впрочем, не для всех такой результат оказался столь неожиданным. Судя по всему, в Google предчувствовали победу: посмотреть на игру приехали не только непосредственные авторы AlphaGo, но и топы компании — один из ключевых инженеров Джеф Дин и сам Эрик Шмидт. Корея, где игра го традиционно популярнее, чем где бы то ни было, встречала создателей алгоритма первыми полосами газет и сюжетами на телевидении.
Все профессиональные комментаторы сходятся в том, что первая игра прошла очень необычно и сильно отличалась о того, что AlphaGo демонстрировала в матче с Фань Хуэем. Среди ценителей го Ли Седоль славится активной, даже агрессивной манерой игры, которой обычно не хватает компьютерам (или так о них принято думать). И в этом матче он в полной мере пытался реализовать это свое преимущество.
Ли Седоль начал с домашней заготовки, призванной выбить AlphaGo из колеи известных партий. «Уже после семи ходов у игры не оказалось аналогов в базе профессиональных партий, — поясняет Динерштейн. —Седоль, очевидно, применил такую стратегию для того, чтобы AlphaGo думал самостоятельно и не мог скопировать ходы других профи. Это одно из преимуществ го, например, перед ш ахматами, где все на пол-игры расписано в справочниках».
Поначалу AlphaGo отвечала на эту стратегию консервативно, пытаясь постепенно выравнивать стратегического преимущество. «Дальше программа несколько раз сыграла пассивно, многие поверили, что Ли Седоль впереди. Это в один голос утверждали все комментаторы матча, корейские и японские профессионалы го. И тут, когда казалось, что человек легко победит, последовал сильнейший удар, вторжение в огороженную зону Ли Седоля, которую он уже считал своей территорией. Партия длилась 186 ходов, но решилась она именно этим одним единственным ударом», — поясняет Александр Динерштейн.
Речь идет о ходе номер 102 (всю партию можно просмотреть здесь). Александр Динерштейн особо подчеркивает, что никто не ожидал такого удара, ни сам Ли Седоль, ни комментаторы матча: «Получилось что-то сродни тому, как бывает у высших профессионалов в боксе: компьютер не показывал ничего особенного, защищался, играл пассивно.
Но стоило человеку чуть-чуть расслабиться, как последовал удар, и партию было уже не спасти. Редко такое бывает. Иногда можно допустить с десяток ошибок и выиграть партию. А тут один красивый ход все решил. Ли Седоль был удивлен: он явно этого не ожидал и дальше просто не смог оправиться от шока».
Важно отметить, что речь не идет о «зевке» — случайной ошибке, допущенной человеком по невнимательности. Все сходятся в том, что партия была выиграна «по делу» и силы в матче равны. Если раньше Ли Седоль безоговорочно верил в свою победу со счетом 5-0 (ну от силы 4-1), то после первой партии он признался, что сейчас его шансы не более чем 50 на 50.
Вторая партия также завершилась поражением корейца. После нее даже «50 на 50» выглядят чересчур оптимистично: «Я видел сотни партий Ли Седоля, но не помню, чтобы он так совсем без шансов проигрывал. В обеих партиях, получив плохую позицию, он не смог ее даже обострить, хотя умение вытаскивать тяжелые позиции — это его конек». Что касается программы, то впечатления чемпиона Европы однозначны:
«Сегодня стало понятно, что у AlphaGo нет слабых мест, это просто монстр какой-то».
О том, что будет к концу матча, наш собеседник предсказать отказывается. «Сейчас игроки всего мира, безусловно, болеют за Ли. Может быть за очень редким исключением. Все-таки быть последней непобежденной игрой — это очень дорогого стоит. Многие приходили в го, как раз зная, что это последняя игра с полной информацией, в которой компьютеры не считались серьезными соперниками.
У нас даже правила касательно электроники во время матча довольно расслабленные: всем понятно, что на высоком уровне компьютер играть в го не может, искать у него подсказки глупо. Если Ли проиграет, все это сильно изменится. Но история с DeepBlue в шахматах растянулась на несколько лет, так что у нас, я думаю, еще есть надежда», — неуверенно резюмирует Александр Динерштейн.
Обрезка и прополка
Чтобы объяснить, как команде Демиса Хассабиса, создавшей AlphaGo, удалось добиться такого впечатляющего результата, придется немного погрузится в теорию игр.
Го, как и шахматы, шашки, нарды и многие другие игры относится к играм с открытой информацией. Это значит, что оба игрока знают все о своей позиции и вариантах ходов, которые им доступны. В такой игре можно ввести функцию, которая для любой позиции на доске s возвращает оптимальный ход для игрока при условии оптимальной игры всех сторон. Иметь такую функцию v*(s) значит, собственно, математически «решить» игру (найти глобальный оптимум).
Сделать ее, казалось бы, несложно: достаточно перебрать все дерево вариантов, которое доступно игрокам. Но проблема, конечно же, в том, что в приличных играх вариантов развития событий слишком много для простого перебора. И го здесь занимает особо почетное место: число допустимых комбинаций камней на гобане (доске для игры в го) превышает число атомов во Вселенной. Так что надеяться получить истинное значение функции v*(s) для го — сейчас или в каком-то отдаленном будущем — бесполезно.
Однако задолго до того, как появились DeepBlue, AlphaGo и другие сильные алгоритмы, математики придумали несколько остроумных методов замены «настоящей» функции v*(s) на ее приблизительный аналог v(s) ≈ v*(s), который можно вычислить уже за какое-то разумное время.
Один из самых очевидных и простых способов решения этой задачи — подрезка «хилых» ветвей у дерева перебора. Он основан на том, что в игре обычно существуют позиции, которые «очевидно плохие» или «очевидно хорошие». Например, какая-то терминальная позиция в шахматах может еще не быть матом, но уже настолько плохой, что ни один игрок не найдет разумным ее доигрывать. Достижение такой позиции уже можно считать проигрышем не в даваясь в детали того, как именно он произойдет, если доводить игру до конца. Такой подход, в котором ветви дерева вариантов подрезаются и заменяются средними значениями их исходов, позволяет сократить глубину перебора.
Другие подходы основаны на сокращении ширины перебора, то есть на уменьшении числа вариантов ходов из всех разрешенных до некоторого набора популярных — на основе баз известных партий. Понятно, что такой подход позволяет существенно сократить число вариантов развития событий и, соответственно, время вычислений.
Но он же делает поведение программы стереотипным, консервативным и предсказуемым — то есть как раз придает те качества, которыми известны слабые алгоритмы. В таком подходе программа фактически не пытается выиграть, а пытается угадать, как в похожей ситуации поступал игрок, матч которого она помнит. Для го, где широта возможностей велика как нигде, данная конкретная партия может стать совершенно уникальной уже за несколько ходов, и программе просто не на что будет опереться в выборе. Эту проблему можно решать, если рассматривать не доску целиком, а локальную ситуацию в отдельном фрагмента доски, где вариантов меньше, но проблемы со стереотипностью те же.
Как реально решают все эти проблемы создатели современных алгоритмов? До сих пор главным подходом к созданию игровых алгоритмов в играх, где открыта информация, но невозможен исчерпывающий перебор, были так называемые методы иерархического поиска Монте-Карло (MCTS). Работают они следующим образом.
Представьте, что вы переехали в новый город и хотите выбрать для себя хороший книжный. Вы заходите в один случайно выбранный магазин, подходите к случайной полке, берете случайную книгу, открываете на случайном месте и читаете, что вам попалось на глаза. Если это хороший текст, магазин в ваших глазах получает плюс к карме, если нет — минус. Проведя несколько таких забегов вы обнаруживаете, что в одном из магазинов вы часто наталкиваетесь на слова вроде «ребятня» или «вкусняшки», а в другом более популярны «нелокальность» или «октатевхи». Постепенно становится понятно, какой из книжных вам больше подходит.
Методы иерархического поиска Монте-Карло работают по такому же принципу: из данной позиции s проводится симуляция игры до самого победного (или проигрышного — это уж как повезет) конца, причем каждый ход на каждом шаге игры выбирается случайным образом. Таким образом, проведя множество случайных симуляций можно грубо оценить выгодность позиции без исчерпывающего перебора.
При этом, конечно, есть вероятность пропустить среди множества проигрышных и победные варианты, но эта вероятность уменьшается с увеличением числа симуляций. Функция v(s), полученная таким перебором, асимптотически приближается к истинной v*(s) полного перебора. И лучшие на сегодняшний день программы го основаны именно на таком подходе. Играют они довольно хорошо для любителя, но на профессиональный уровень ни одна из них до сих пор не вышла. Удалось это только AlphaGo, которая устроена иначе.
Кто здесь альфа
Многие СМИ, писавшие еще о первой победе над Фанем Хуеем, называют AlphaGo нейросетью. Это справедливо, но только отчасти. На самом деле AlphaGo — это гибридная система, где одновременно используется и иерархический поиск Монте-Карло, и новые для подобных систем нейросети.
Интересно, что гибридность AlphaGo разные комментаторы интерпретируют очень по-разному. Либо как очередную убедительную победу нейросетей и глубокого обучения над традиционным формальным подходом к искусственному интеллекту (ИИ), самым известным сторонником которого был Марвин Минский. Либо, наоборот, как признак ограниченности «чистых» нейросетей (последняя точка зрения интересно изложена здесь).
Действительно, последняя громкая победа глубокого обучения, к которой, к слову, также приложил руку Демис Хассабис, была связана с использованием «чистых» нейросетей. Речь идет о создании системы ИИ, которая смогла научиться играть в игры ATARI без использования каких-либо инструкций или сложной ручной настройки. Тогда в качестве данных для обучения программа получала только изображение игрового монитора и результат игры: победа или проигрыш. Имея эти данные, программа могла управлять игрой, например, нажимать на рычаги в пинболе. Оказалось, что длительное обучение с подкреплением без какого-либо вмешательства человека может вывести ИИ в подобной игре на уровень человека или даже выше.
Однако, такой «чисто сетевой» подход не сработал с го.
Вместо него команде Демиса Хассабиса пришлось применить гибридную архитектуру, сочетающую мощь нейросетей и традиционный метод Монте-Карло.
Как была получена эта архитектура? Инженеры Deepmind начали с создания нейросети, задачей которой было предсказать наиболее вероятный ход на основе базы сыгранных партий «человек против человека». Это сверточная нейросеть из 13 слоев, очень похожая на те, которые используются для анализа изображения и распознавания символов. Вводные данные для нее — это фактически просто картинка положения камней на доске 19 на 19 пикселей. «Сверточная» в применении к нейросети означает, что в ней используется математическая операция свертки при переходе от слоя к слою, то есть на каждом уровне по полному изображению пробегает маленькое окно, видимое в котором передается на следующий «нейрон» нейросети.
Главное преимущество нейросетей в том, что они позволяют достигать очень высоких уровней абстракции, вычленяя из изображений их, как бы сказать, чисто абстрактные черты.
Если нейросеть натренирована на распознавание котиков, то в ее первый слой просто загружается изображение, а последующие слои обрабатывают его примерно так: второй распознает контрастность пикселей, третий наличие линий, четвертый их ориентацию, пятый мохнатость, шестой ушастость, а седьмой и последний — «кóтовость».
Важно понимать, что это очень условное представление о нейросетях, поскольку никто их заранее не программирует и не знает, что и как распознает данный слой. Как раз наоборот, все это происходит само собой по мере обучения. Суть в том, что уровень абстрактности очень сильно растет по мере движения от нижних к верхним слоям.
Так вот, на первом этапе в Deepmind создали нейросеть, которая просто предсказывает наиболее вероятный ход, который сделал бы человек из данной позиции s. Результат ее работы — это фактически поле для го с расставленными вероятностными коэффициентами. Эта нейросеть SL (от supervised learning) затем была использована для того, чтобы играть против себя самой, совершенствуясь по мере обучения. Здесь был использован классический метод обучения с подкреплением: шаги, которые вели к победе, поощрялись, и сеть уже не предсказывала поведение игрока-человека, а предсказывала то, какой ход чаще ведет к победе. Идентичная по архитектуре, но уже обученная игрой против самой себя нейросеть получила название RL (от reinforcement learning).
На последнем этапе в Deepmind собрали так называемую оценочную сеть, задачей которой было численно оценить выгодность той или иной позиции на доске, то есть ответить на вопрос, насколько вероятно, что игрок выиграет, если сделает ход, приводящий к такой позиции. Результат ее работы представлял собой уже не поле с весами выгодных ходов, а единственный параметр — вероятность выигрыша.
Фактически, оценочная сеть была призвана заменить поиск веса позиции методом Монте-Карло, который применяется в других программах го. И, если бы эта нейросеть была совершенной, то есть выдаваемое ею значение v(s) приближалось к истинному v*(s), то одной ее было бы достаточно для победы над любым противником. Но это оказалось не так.
Из графиков, которые приводит команда Deepmind, видно, что «чистая нейросеть», хотя и обыгрывает «чистый Монте-Карло», все же играет на уровне хорошего любителя. Профессионального уровня удается достичь только тогда, когда одновременно используется и оценочная сеть, и «предсказательная» сеть RL, и оценки методом Монте-Карло. Для того чтобы принять решение, алгоритм сложным образом складывает их независимые оценки. В скобках отметим, что успешность того или иного подхода сильно зависит от времени, которое, согласно текущим правилам, имеется в распоряжении играющих: понятно, что чем больше времени на вычисления, тем точнее методы Монте-Карло и ниже необходимость в «быстрых и грязных» методах вроде тактической сети.
После го
В играх с совершенной информацией го всегда считалась самой сложной. И выход программ на «нечеловеческий» уровень, безусловно, маркирует качественный переход во всей области исследований искусственного интеллекта. Ушла эпоха, не иначе.
Но думать, что теперь, с созданием AlphaGo, эволюция программ остановится, а «вопрос го» будет закрыт, неправильно. На это обращает внимание другой наш собеседник, доцент кафедры высшей математики ВШЭ, эксперт по теории игр Дмитрий Дагаев: «В том-то и дело, что отступление от полного перебора означает, что мы отказывается от покорения игры.
Программа может научиться играть хорошо, но она не будет знать точное решение в любой возможной позиции, а значит теоретически ее можно будет обыграть. Пали шашки — в шашки компьютер может гарантировать себе ничью, он знает наилучший ход в любой возможной позиции. В шахматах и го решение компьютеру неизвестно. Но играть против компьютера будет все сложнее и сложнее».
Это открывает простор для соревнования между алгоритмами, которые со временем могут становится все совершеннее, но при этом, в отличие от случая шашек, не смогут в обозримом будущем достичь абсолютного совершенства: «DeepBlue умеет определять, что такое неудачный ход, ориентируясь на много ходов вперед в отличие от человека. Значит, любая ошибка человека, которую можно зафиксировать на расстоянии просчета компьютера, будет мгновенно им использована. Однако если, например, DeepBlue считает на 20 ходов, то нельзя исключать, что бывают ошибки, которые можно обнаружить только просчитав все на 25 ходов. Когда появится программа, умеющая это делать, она сможет обыгрывать DeepBlue», – объясняет Дмитрий Дагаев. Впрочем, все это будет интересно уже не для живых игроков, а для архитекторов и создателей программ новых поколений.
Для тех же, кто не желает участвовать в этой гонке и вообще отказывается играть на поле, где компьютеры сильнее, есть и хорошие новости. Это существование игр с несовершенной информацией, где компьютеру будет гораздо труднее проявить себя: «Любую конечную игру с совершенной информацией понятно, как решать: запускаем алгоритм обратной индукции и все.
На каждой подыгре находим наилучший ход и при дальнейших расчетах ориентируемся только на него (рациональному игроку незачем делать неоптимальные ходы). В играх с несовершенной информацией так не получится: когда мы дойдем до ситуации, в которой игрок не будет однозначно понимать текущую позицию, мы не сможем однозначно определить его наилучший ход. Значит, дальше нам тоже придется учитывать несколько вариантов развития ситуации. Рост неопределенности приведет к резкому росту вычислительной сложности», — обнадеживает Дмитрий.
Помимо этого, если говорить конкретно про покер, то там компьютер ждут и другие проблемы: «В шашках, шахматах — три исхода, в го — два. В покере исход — это заработанные деньги. Поэтому приходится решать вопросы, связанные с точностью вычислений для сравнения различных альтернатив». Пока их решать не очень получается.
Последний значимый результат в этом направлении — это победа программы в очень специфическом варианте покера, ограниченном холдеме «один на один». Новость о создании такой программы быстро разлетелась в СМИ в прошлом году, но профессионалы отнеслись к ней очень скептически: в такой (очень ограниченный) вариант покера почти никто не играет, это настоящая экзотика. Так что за покером пока не пришли и его можно считать недоступным для современных алгоритмов. Когда-то такой игрой считалась и го, но что уж теперь об этом вспоминать.
Источник: www.forbes.ru