Обучение агента pacman с использованием любого алгоритма обучения с учителем

Я создал простую игру pacman (без таблеток силы) и обучил ее с помощью алгоритма Q Learning. Теперь я думаю о том, чтобы обучить его с помощью некоторого контролируемого алгоритма обучения. Я мог бы создать набор данных, собирая информацию о состоянии, а затем сохраняя ее против действия, предпринятого каким-либо игроком-человеком, а затем обучая на нем классификатор. Мой вопрос: я иду в правильное направление и правильный ли это подход, чтобы заставить пакмана идеально двигаться по лабиринту, поскольку у него нет системы вознаграждений?


person kenway    schedule 23.08.2015    source источник


Ответы (1)


Что бы вы использовали в качестве состояния? Обучение под наблюдением — это обобщение. Вы определяете некоторую параметризованную модель (например, нейронную сеть), а затем изучаете/оцениваете параметры (например, веса) из ваших данных. Затем вы можете использовать эту модель, чтобы что-то предсказать.

Если все, что у вас есть, это конечный список состояний (как у вас, вероятно, было с Q-Learning), и есть только один «правильный» выбор для каждого состояния (что бы ни говорил учитель-человек). Тогда нечего предсказывать. Нет какой-то «оси, по которой можно обобщать». Вам нужна только простая справочная таблица и очень терпеливый человек, чтобы все это заполнить.

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

Например, вы можете использовать сетку 3x3 вокруг игрока в качестве входных данных и предсказать вероятность того, что игрок-человек будет двигаться вверх/вниз/влево/вправо в этой ситуации. Затем вы можете попытаться имитировать человека, выбирая случайные ходы с предсказанной вероятностью. Очевидно, что этот подход не будет идеально перемещать pac-man, если только вы не используете очень большую сетку (например, 20x20), после чего вы практически снова заполняете единицы и нули в простой справочной таблице.

person maxy    schedule 23.08.2015