Несмотря на свой солидный возраст, игра Pac-Man, разные ее версии, все еще пользуется бешеной популярностью. Поклонники игры регулярно соревнуются друг с другом в том, кто наберет большее количество очков при прохождении. Изучают ее и разработчики ИИ, совершенствуя навыки своих систем в прохождении игр.
Группе разработчиков из канадского стартапа Maluuba, который был ранее приобретен корпорацией Microsoft, удалось создать программную платформу, которая показала необычайно хорошие результаты при прохождении Ms. Pac-Man, версии этой игры для Atari 2600. Программа побила все ранее поставленные рекорды, набрав 999 990 очков.
Кстати, игра была создана в 1982 году. Тогда компания Atari Inc. выпустила порт хитовой аркадной игры Pac-Man от Namco. Как и в оригинальной версии, управлять протагонистом нужно при помощи джойстика. Главный герой должен двигаться по лабиринту, набирая баллы, при этом требуется избегать призраков. Создателем портированной игры является Тод Фрай.
По мнению некоторых специалистов, то, что программная платформа набрала максимальное количество очков в игре, является значительным достижением в сфере искусственного интеллекта (слабой его формы). Дело в том, что другие программные платформы показывали гораздо менее успешные результаты — игра оказалась достаточно сложной для ИИ. Конечно, далеко не все разработчики создавали свои проекты из расчета на взятие рекорда в Ms. Pac-Man, но те, кто над этим работал, говорили о большом количестве технических проблем при попытке показать сколь-нибудь значимые результаты.
Для того, чтобы достичь успеха, команда Maluuba решила разбить игру на группу мелких элементов, с поиском решения для взаимодействия с каждым из них. Далее эти элементы были распределены среди ИИ-агентов, каждый из которых решал свою определенную задачу. Дойна Прекап, профессор из McGill University в Монреале, заявила о том, что идея, предложенная разработчиками, заслуживает внимания. По ее мнению, именно так работает в некоторых случаях мозг человека — разбивает какую-то проблему на несколько составляющих и решает последовательно каждый из элементов.
Свой метод разработчики назвали Hybrid Reward Architecture, в нем используется более 150 агентов ИИ, каждый из которых работает параллельно с другими в процессе прохождения игры. Причем каждый из агентов получает «награду» при успешном прохождении своего участка игры.
Кроме «мелких» агентов, существует еще один агент высшего уровня, который занимается сведением воедино всех данных, полученных от всех «подчиненных». Он же и принимает решение о том, куда должна двигаться фигурка героя. При этом анализируется большое количество данных. Главный фактор — это направление движения, выбранное максимальным количеством элементарных агентов. С другой стороны, если 100 агентов хотят идти направо, чтобы получить трофей, но 3 агента планируют свернуть налево, поскольку заметили призрака, то главный агент «послушает» этих троих.
По словам главного разработчика, система начала показывать лучшие результаты после того, как агентов запрограммировали на эгоистичное поведение. То есть каждый из них принимает решение без оглядки на других. А вот общее решение о направлении движения героя принимает уже главный агент. Он оценивает различные факторы и командует, куда нужно идти.
«Это баланс между, с одной стороны, необходимостью взаимодействия, и с другой стороны, необходимостью принимать индивидуальные решения», — говорит Харм ван Сейджен, глава исследовательской группы Microsoft.
Но почему вообще было решено выбрать Ms. Pac-Man? Выбор этой игры может выглядеть странно для обычного человека. Но специалисты говорят, что ничего странного здесь нет, поскольку этот класс игр достаточно сложен для машинного интеллекта, поскольку здесь в единицу времени возникает достаточно много «нештатных» ситуаций, для каждой из которых нужен свой вариант развития событий. И для поиска решения нужно «мыслить» почти так, как человек, о чем и говорилось выше.
«Многие компании работают над ИИ для игр, разрабатывая собственные проекты, поскольку для прохождения нужны многие человеческие качества», — заявил Рауль Мехротра, один из программистов Maluuba.
Программная, платформа, разработанная в Microsoft, действует согласно способа машинного обучения, который называется обучение с подкреплением. В ходе работы испытуемая система (агент или агенты) обучается, взаимодействуя со средой. Это, по определению — один из видов кибернетического эксперимента. Метод обучения с подкреплением является одной из разновидностей обучения с учителем, но в роли учителя здесь выступает среда или ее модель. Агент воздействует на среду, а она, в свою очередь — на агента. Возникает обратная связь.
Сам проект — это не чистой воды теория. По словам разработчиков, созданную программную платформу можно использовать во многих сферах. Например, ее можно привлечь к работе внутри компании, которая занимается продажами, чтобы предсказывать динамику наплыва покупателей, популярность товаров и другие важные вещи. Система может работать как с общими тенденциями, так и с отдельными факторами, включая индивидуальных покупателей.
Комментарии (19)
IgorKh
15.06.2017 12:56+5Уже прослеживается индивидуальность современных «ИИ», гугловский любит играть в Го, а микрософтовский в Пакмана.
CrazyRoot
15.06.2017 13:37+7Жулики.
Запихнуть ИИ в корпус, поставить камеру(а еще лучше две — для стереоскопического зрения), пусть смотрит на экран, приделать манипуляторы, пусть жмет клавиши. Только после этого выпускать ставить рекордыRomanArzumanyan
15.06.2017 15:01+1Судя по тому, что робот, собранный из Lego, собирает кубик Рубика значительно быстрее человека, особых трудностей с механическими интерфейсами возникнуть не должно.
Igor_34_rus
15.06.2017 15:57+1Кубик анализируют только один раз, дальше все позиции известны, а тут непонятно куда приведение повернёт. И задержка джостика тоже внесёт нагрузку на расчёт времени поворота.
Это загрузит ИИ и он наберёт не 999 990 очков, а 999 989 очков :)
Boctopr
15.06.2017 16:00+2Вот только программный кубик Рубика он соберет за пикосекунду.
tnenergy
15.06.2017 17:28Даже решение кубика Рубика на специализированной микросхеме вряд ли можно выполнить быстрее, чем за наносекунду, реальнее говорить о десятке наносекунд.
Пикосекунда же пока недостижима. Все же стоит помнить, что под программными алгоритмами лежит вполне себе конкретное железо.
old_bear
15.06.2017 22:53+2Интересно, можно его переучить с игры в Пакмана на написание дежурных статей для Хабра?
henk
16.06.2017 05:18Не являюсь очень большим специалистом в плане ML, но я вот несколько раз прочитал их пейпер на Arxiv: https://arxiv.org/abs/1706.04208 пытаясь понять новизну метода.
Выходит они взяли Хорду, которую проф. Саттон предложил пару лет назад, и DQN на стероидах (V. Mnih & D. Silver @ DeepMind) и таким образом получили профит. Т.е. инновация в том, что они посто скомбинировали то, что до них не комбинировали? Саттон пилил Хорду без DQN используя более классические аппроксиматоры, а ребята из DeepMind использовали DQN без разделения велью и реворд функций? (Хотя, помню, читал их пейпер как они использовали много агентов A3C и мерджили результаты на сервере).
vesper-bot
Ух ты, мета-ИИ! Интересно, если их предположение правильно, и мозг человека работает подобным образом, какой уровень мета-*-ИИ нужен, чтобы объединить под одним "колпаком" достаточно нейросетей, чтобы получился ИИ, сопоставимый с человеческим?
IvanTamerlan
разве существуют технологии объединения нейросетей?
Чтобы было А + В = С; а потом С — А = В. И каждая буква обозначает свою нейросеть.
Слышал только про вариант через переучивание.
vesper-bot
Судя по описанию, здесь как раз каждый "агент" — отдельная нейросеть какого-то типа, а компонент, принимающий итоговое решение, тоже нейросеть. А вообще, вариант объединения сетей похож на управление своими желаниями: "Хочу поиграть в Пакмана! — Нет, ещё не отработал компонент "мытьё посуды", если прервать, получим по башке."
Sadler
daiver19
Вообще, техника сложения множества векторов — это вполне стандартный и известный алгоритм. Здесь было несколько отчетов авторов лучших решений на всяких ИИ контестах, и в большинстве игр использовался именно этот подход.