Pac-Man появилась на аркадных автоматах 22 мая 1980 года. На разработку игры ушло целых 17 месяцев — ни один проект прежде не требовал столько времени. Ровно 40 лет спустя компания NVIDIA представила нейросеть GameGAN, которая смогла воссоздать всю игру Pac-Man всего за 4 дня.
GameGAN — это игровая генеративно-состязательная сеть (Generative Adversarial Network, GAN), подобная тем, которые используются для создания фотореалистичных изображений несуществующих людей.
В общем понимании GAN состоит из двух нейросетей — генерирующей и дискриминативной. Генерирующую сеть обучают с использованием больших наборов данных, а затем ставят перед ней задачу — создать или воссоздать какое-то изображение на основе полученной информации. Дискриминирующая нейросеть сравнивает результат работы первой сети с тем, что содержится в базе данных, а затем определяет, насколько точным получился этот результат. Совместная цикличная работа обеих нейросетей способна приводить к созданию всё более и более реалистичных изображений.
В случае с GameGAN компания NVIDIA обучила генеративную нейросеть с помощью 50 тыс. игровых сессий в Pac-Man. Затем перед перед ней поставили задачу — воссоздать увиденную игру целиком, начиная от статичных стен и точек и заканчивая двигающимися призраками и самим Пакманом. Обучение и воссоздание игры проводилось с использованием квартета графических ускорителей NVIDIA Quadro GP100.
Самое интересное заключается в том, что GameGAN не предоставили доступ к оригинальному коду игры или её движку. Всё обучение сводилось к тому, что одна нейросеть наблюдала за тем, как в Pac-Man играла другая нейросеть.
«За последние годы было создано множество ИИ, способных играть в игры. Но они лишь агенты в этих играх. Наша GAN способна воспроизводить игры фактически из ничего», — прокомментировал Рев Лебаредян (Rev Lebaredian), вице-президент NVIDIA по вопросам технологий симуляции.
Как указано в блоге компании, одна нейросеть выступает в качестве агента (игрока), GameGAN в свою очередь реагирует на действия первой нейронной сети и покадрово создаёт новое игровое окружение в реальном времени. Более того, на основе изображений из игр с многоуровневой структурой GameGAN способна генерировать новые игровые уровни, которые она никогда не видела раньше.
Это чем-то похоже на методы процедурной генерации, которые использовались ещё с конца 70-х годов.
«Для создания игры, подобной Pac-Man, программисту требуется придумать и прописать правила поведения и взаимодействия всех имеющихся агентов внутри игры. Это очень кропотливая работа. GAN может упростить эту задачу. Нейросеть способна обучаться новым правилам через наблюдение. В идеале алгоритмы, подобные GameGAN, можно будет обучить процедурной генерации правил для той игры, которую вы хотите создать», — пояснил Лебаредян.
Процесс обучения при этом будет таким же простым, как, скажем, установка видеорегистратора в автомобиль с последующей поездкой по городу. Аналог GameGAN сможет обучаться по записанным видео и процедурно генерировать реалистичные уровни на основе того, что покажет камера.
В перспективе подобный метод также сможет ускорить подготовку автоматизированных машин. Использующиеся на тех же складах и сборочных линиях роботы могут представлять опасность для работающих там людей. Поэтому перед запуском в работу эти машины проходят виртуальную подготовку с применением различных сценариев, что в итоге минимизирует возможные риски. Проблема в том, что разработка всех этих обучающих сценариев отнимает большое количество ресурсов и времени. Вполне возможно, что однажды будет создана модель глубокого машинного обучения, с помощью которой можно будет предсказывать те или иные последствия в различных сценариях. Но пока этого нет.
«В конечном итоге мы создадим ИИ, который сможет имитировать правила вождения или законы физики, просто наблюдая за тем, как действуют агенты в этих средах. GameGAN — первый шаг к этому», — добавил Санья Фидлер (Sanja Fidler), директор исследовательской лаборатории NVIDIA в Торонто.
Полноценную версию Pac-Man, созданную нейросетью GameGAN, NVIDIA собирается опубликовать в Сети этим летом.