Как научить искусственный интеллект играть

0
20

Обучение ИИ на примере Sonic the Hedgehog: алгоритм NEAT

Определение поколения, печать статистики обучения и прочее

Впереди будут и другие. В теории Universe может запустить любое программное обеспечение под любой компьютер, позволяя ученым вставлять и обучать свои ИИ по желанию. Это как отправить ребенка в летний лагерь: выбираешь свою нишу, тип деятельности, ждешь, пока он ее освоит, затем другую и так далее, искупаться и повторить.

Но игры — это лишь малая часть нашего взаимодействия с цифровым миром, и Universe уже выходит за свои ограничения с проектом Mini World of Bits («Мини-мир битов»). Биты — это собрание различных взаимодействий с браузерами, с которыми мы сталкиваемся, бороздя пучины Интернета: когда вводим текст или выбирает опции из выпадающих меню, нажимая «отправить».

На этом этапе оценивается приспособленность генома и определяется, выполнилось ли требование done . Смотрим на переменную « x » из data.json и проверяем, превысила ли она длину уровня. Если это так, повышаем приспособленность до нашего порога, и это означает, что задание выполнено.

Все ИИ, что подключены к Universe, обучаются при помощи так называемого обучения с подкреплением, мощного метода, который привел к успеху AlphaGo. Под этим термином скрывается, впрочем, то, как мы, люди, тренируем дельфинов, собак и даже детей. Это обучение методом проб и ошибок: выберите действие, и если вас за него вознаградили, продолжайте в том же духе. Если нет, попробуйте что-нибудь еще.

Оба эти файла содержат информацию, которая нужна для игры и обучения. Как видно из названия, файл data.json содержит информацию и данные о специфических переменных игры (т. е. х-положение Соника, количество жизней и т. д.). Файл scenario.json синхронизирует выполнение действий со значениями переменных из данных. Например, можно давать вознаграждение 10.0 Сонику каждый раз, когда увеличивается его x-положение. Или поставить условие done в true , когда жизни Соника достигли 0 .

По своей сути, Universe это мощная платформа, которая включает тысячи сред, обычно обеспечивающих стандартные методы для обучения агентов ИИ. Будучи программной платформой, Universe обеспечивает площадку для запуска чужого программного обеспечения, чтобы программы обучались в разных средах — Atari и флеш-игры, приложения и веб-сайты, например, уже приняты.

Возможно, и дорога будет долгой. Но ИИ, который знает, как выиграть в любую игру, которую вы ему подбросите, умеет только думать логически и в несколько шагов добиваться победы. ИИ, который может передвигаться по хаотическому миру GTA V, уже должен понимать основы физики реального мира, жестокости и ответных мер. ИИ, который может работать в Интернете, уже знает, как люди обычно общаются друг с другом и может использовать эти знания, чтобы получить информацию, создать свою собственную веб-идентичность или даже заглянуть в вашу.

ЧИТАТЬ ТАКЖЕ:  Тест на определение искусственного интеллекта какой знаменитый

В репозитории OpenAI по адресу /retro/retro/data/stable увидите папку для Sonic the Hedgehog Genesis. Разместите здесь образ игры и убедитесь, что он называется rom.md . Эта папка также содержит файлы .state . Выберите один и установите параметр состояния равным ему. Разработчик выбрал GreenHillZone.Act1 , так как это первый уровень игры.

Обучение ИИ: ключевые тезисы

И это только начало. Universe только растет и ширится. Платформа Malmo от Microsoft, которая использует Minecraft для обучения ИИ, должна интегрироваться с Universe. Популярная игра со складыванием белка fold.it, приложения для Android, игры на HTML5 и многое другое стоят в очереди.

Пока что наши системы ИИ — сверхэффективные лошадки для одного трюка. Виновен в этом отчасти метод обучения: исследователи начинают с чистого листа ИИ, проводя его через миллионы испытаний, пока он не преуспеет в одной задаче и не решит ее. ИИ никогда не испытывает что-то еще, так как он узнает, как решить любую другую проблему?

Нет никаких сомнений в том, что ИИ становится пугающе умным. Теперь компьютеры могут точно видеть, слышать и переводить языки, иногда даже опережая людей. Только в начале этого года, в серии громких игр в го, AlphaGo от DeepMind разгромил 18-кратного чемпиона мира Ли Седоля, на десять лет раньше, чем ожидали некоторые эксперты.

Мы в состоянии обучить ИИ выполнять конкретные задачи с использованием алгоритма NEAT (Neuroevolution of Augmented Topologies, нейроэволюции нарастающих топологий). Проще говоря, NEAT – алгоритм, который берёт группу ИИ (геномов), которые пытаются выполнить поставленную задачу. Топовые ИИ «размножаются» для создания следующего поколения. Этот процесс продолжается до тех пор, пока не появится поколение, способное выполнить то, что нужно.

Не так давно некоммерческий институт OpenAI открыл виртуальный мир для ИИ, чтобы он его исследовал и играл с ним. Цель проекта Universe (Вселенная) такая же большая, как и его название: научить отдельный ИИ выполнять любую задачу, которую человек может выполнить при помощи компьютера.

Это стало возможным благодаря Virtual Network Computing (VNC), по сути, систему совместного использования рабочего стола, которая позволяет передавать движения клавиатуры и мыши с одного компьютера (ИИ) другому (среда обучения). При изменении окружающей среды, VNC отправляет обновленные скриншоты обратно ИИ, что позволяет ему выполнять следующий шаг. VNC выступает как глаза и руки ИИ.

Наконец, определяем переменные: current_max_fitness (наивысшая приспособленность в текущем поколении), fitness_current (текущая приспособленность генома), frame (количество кадров), counter (количество шагов, которые предпринимает агент), xpos (x-положение Соника), и done (достигли ли целевой приспособленности или нет).

Если у вас многоядерный процессор, обучение ИИ можно проводить на нескольких обучающих симуляторах одновременно, экспоненциально увеличивая скорость работы! Хотя в этой статье не будем подробно останавливаться на том, как это сделать, рекомендуем посмотреть реализацию sonicTraning.py в том же репозитории.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь