Другое

AlphaGo: что это за программа и как она навсегда перевернула мир ИИ?

Кинематограф постоянно твердит нам, что в скором времени искусственный интеллект захватит Землю и поработит всех людей, а предвестниками такого расклада являются программы типа «АльфаГо».

АльфаГо — это несколько версий программ на основе искусственного интеллекта, которые играют в игру Го. Из всех версий этой программы настоящий фурор навела версия AlphaGo Zero, которая обыграла в Го все предыдущие версии этой программы и чемпиона мира по этой игре. Но самое важное, что AlphaGo Zero тренировалась самостоятельно и без вмешательства людей. А как мы знаем, любой искусственный интеллект обучается и тренируется только при помощи человека.

Что это за игра такая «Го»

Го — это очень старая настольная игра, по разным данным, ей около 5000 лет. Суть ее в том, что:

  • есть игровое поле, которое расчертили перпендикулярными линиями на множество «квадратиков»;

  • в нее играют 2 игрока с черными и белыми камнями;

  • в порядке очереди игроки расставляют камни в местах пересечения линий;

  • когда камни одного цвета окружают со всех сторон камни другого цвета, то те камни, что внутри, снимаются с игрового поля;

  • победу одерживает тот, кто к концу игры «окружил» максимальную площадь территории.

Там есть и другие правила, но для понимания того, что такое «АльфаГо», этого будет достаточно.

Сложная ли игра Го?

Не все понимают, что такое игра Го и насколько она сложная. Но многие знают такие игры, как шашки и шахматы, поэтому давайте сравним игру Го с ними.

Когда игрок играет в шашки, у него есть примерно 10 вариантов, как осуществить ход, поэтому шашки считаются не очень сложной игрой. Однако в 1994-м году была написана программа, которая в том же году обыграла чемпиона мира по шашкам.

Когда игрок играет в шахматы, то у него в течение игры в среднем появляется около 25 вариантов, как осуществить ход. И таких ходов у него может быть около 45 за игру. Однако в 1997 году была создана программа, которая выиграла партию у тогдашнего чемпиона по шахматам Гарри Каспарова.

Когда игрок играет в Го, то перед ним поле с 361-м вариантом, куда можно выставить камень. Количество вариантов со временем уменьшается, однако если учесть, что за партию игрок делает около 45-75 ходов, то видно, что ему нужно проводить просто огромный анализ игрового поля. Ведь ему нужно выстраивать фигуры, чтобы окружить камни соперника. Поэтому поставленный камень на 5-м ходу может принести пользу только на 45-м ходу. А может и не принести пользу вообще. Все эти комбинации нужно уметь просчитывать, поэтому профессиональная игра в Го считается довольно сложной. Однако в 2016 году была разработана программа АльфаГо и проведена игра в Го с тогдашним чемпионом Ли Седолем. Человек проиграл со счетом 4:1, сумев выиграть один раз у программы.

Как видно, временной промежуток между разработкой программ для шахмат и игры Го очень большой. Это обусловлено по большей степени сложностью игры в Го. Алгоритм программы для шашек, шахмат и Го одинаков: выстраивается дерево возможных вариантов игры, и программа просто идет по ветке, которая приводит ее к обязательной победе. А так как в игре Го игровых вариаций очень и очень много, то и дерево получилось очень разветвленным и глубоким, и только на его разработку потребовалась масса времени.

Программа АльфаГо

Продолжая отвечать на вопрос: «AlphaGo что это за программа?», хочется остановиться немного на том, как она обучалась. При построении алгоритма AlphaGo одновременно тренировались две нейронные сети, которые старались предугадывать ход, который сделал бы человек:

  • медленная — показывала хороший процент предсказаний, 57% верных, но делала все это по-настоящему медленно;

  • быстрая показывала процент предсказаний намного хуже, однако работала очень быстро.

Обе эти нейронные сети тренировались на реальных человеческих ходах и играх. Данные о человеческих играх игроков высокого уровня собирались с различных серверов игры Го и «скармливались» обеим нейронным сетям. Данные нейронные сети самостоятельно «дописывали» собственные деревья, если вдруг, двигаясь по какой-либо ветке, они достигали ее конца. Потом эти две сети сталкивали между собой и давали им возможность играть друг с другом, тем самым они еще больше «прокачивались».

Чуть позже к этим натренированным сетям подключили третью сеть, в чью задачу входила оценка конкретной ситуации всего на два значения: «выиграешь» или «проиграешь». Вот и получается, что AlphaGo состоит из трех разных функций, каждая из которых осуществляет собственную задачу.

Первой проверкой программы АльфаГо стала игра в 2015 году с тогдашним чемпионом Европы по Го, которую программа выиграла со счетом 5:0. Это первая проба программы AlphaGo, однако она не получила широкой огласки из-за того, что «чемпион Европы» по меркам игры Го — это не очень значимый титул. 

Но вот игра 2016 года запомнилась навсегда. Во-первых, это была уже вторая версия программы AlphaGo. Во-вторых, в соперниках был один из самых титулованных и лучших игроков по Го Ли Седол. А в-третьих, это единственный игрок, который обыграл компьютер, хоть и проиграл по партиям. В честь этого та версия программы стала называться AlphaGo Lee.

После этого были еще игры в 2017-м между программой AlphaGo и топовыми игроками в Го, но все они проигрывали программе. Противостояние между игроками и AlphaGo пока окончено с убедительной победой программы над человеком.

Заключение

АльфаГо — это не конец противостояния между компьютером и человеком. На сегодняшний день ведутся активные разработки по нескольким играм. Го относится к тем играм, где все данные открыты и можно просчитать все возможные ходы наперед, если правильно выстроить систему. Человек научился строить такие системы, именно поэтому он не способен обыграть компьютер в подобных играх. Но что будет, когда в играх и системах не будет рамок, когда придется анализировать и думать, как поступить? Подобные противостояния нам еще предстоит посмотреть.

Схожие статьи

GameMaker Studio 2: обзор лучшего движка для вашей инди-игры
Другое

GameMaker Studio 2: обзор лучшего движка для вашей инди-игры

Как создать свой прокси-сервер на компьютере для игр онлайн
Другое

Как создать свой прокси-сервер на компьютере для игр онлайн

Какой язык программирования самый востребованный на рынке труда?
Другое

Какой язык программирования самый востребованный на рынке труда?

Функция в контексте программирования: что это может значить
Другое

Функция в контексте программирования: что это может значить

×