Как обучить искусственную нейронную сеть играть в Diablo 2 с помощью визуального ввода?

В настоящее время я пытаюсь получить ИНС, чтобы играть в видеоигру, и я надеялся получить некоторую помощь от здесь замечательное сообщество.

Я остановился на Diablo 2. Таким образом, игра проходит в режиме реального времени и с изометрической точки зрения, когда игрок управляет одним аватаром, на котором сфокусирована камера.

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

here

Теперь, поскольку я хочу, чтобы сеть работала исключительно на основе информации, которую она получает от пикселей на экране, она должна изучить очень богатое представление, чтобы играть эффективно, поскольку это по-видимому, требуется, чтобы он знал (по крайней мере, неявно)как разделить игровой мир на объекты и как с ними взаимодействовать.

И всю эту информацию нужно передать в сеть ... каким-то образом. Я даже не могу придумать, как тренировать эту штуку. Моя единственная идея - создать отдельную программу для визуального извлечения с экрана чего-то изначально хорошего / плохого в игре (например, здоровья, золота, опыта), а затем использовать этот показатель в процедуре обучения с подкреплением. Я думаю, что это будет часть ответа, но я не думаю, что этого будет достаточно; существует слишком много уровней абстракции от необработанного визуального ввода до целенаправленного поведения, чтобы такая ограниченная обратная связь могла обучить сеть в течение моей жизни.

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

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

ОБНОВЛЕНИЕ (27.04.12):

Как ни странно, я все еще работаю над это и, похоже, добивается прогресса. Самый большой секрет того, как заставить работать контроллер ИНС, - это использовать самые продвинутые архитектуры ИНС, соответствующие поставленной задаче. Следовательно, я использовал сеть глубоких убеждений , состоящую из разложенных на множители условно-ограниченных машин Больцмана , которые я обучал неконтролируемым образом (на видео, на котором я играл в игру) перед точной настройкой с обратным распространением временной разницы (т.е. обучение с подкреплением со стандартными ИНС с прямой связью).

Тем не менее, все еще требуется более ценный ввод, особенно по проблеме выбора действий в реальном времени и того, как кодировать цветные изображения для обработки ИНС: -)

ОБНОВЛЕНИЕ (21.10.15):

Только что вспомнил, что задал этот вопрос раньше, и подумал, что должен упомянуть, что это уже не безумная идея. Со времени моего последнего обновления DeepMind опубликовал свою статью о природе о том, как заставить нейронные сети играть в игры Atari с помощью визуальных входов . Действительно, единственное, что мешает мне использовать их архитектуру для игры, ограниченного подмножества, Diablo 2, - это отсутствие доступа к базовому игровому движку. Рендеринг на экран с последующим перенаправлением в сеть слишком медленный, чтобы обучаться за разумное время. Таким образом, мы, вероятно, не увидим такого рода ботов, играющих в Diablo 2 в ближайшее время, но только потому, что он будет играть во что-то либо с открытым исходным кодом, либо с доступом API к цели рендеринга. (возможно, землетрясение?)

131
задан zergylord 10 July 2018 в 15:49
поделиться