Проблемы в обучении подкреплению: ошибка, настройка параметров и период обучения
В настоящее время я обучаю агента обучения подкреплению, используя простую нейронную сеть со 100 скрытыми элементами, чтобы решить игру 2048. Я использую алгоритм обучения подкрепления DQN (т.е. Q-learning с памятью воспроизведения), но с 2-х уровневой нейронной сетью вместо Deep Neural Network.
Однако я оставил его на своем ноутбуке на ночь (~7 часов, ~1000 игр сыграно, > 100000 шагов), и счет, похоже, не увеличился. Я подозреваю, что в моем коде может быть 3 источника ошибок: ошибка, плохо настроенные параметры или, может быть, я просто не жду достаточно долго.
Есть ли способ выяснить, что не так с кодом? И как лучше всего улучшить результаты тренировок?
1 ответ
Я расскажу обо всех трех ваших гипотезах.
Если вы используете стандартный DL-фреймворк, такой как caffe или tenorflow, вероятность того, что это будет ошибкой, невелика.
Попробуйте уменьшить скорость обучения. Возможно, вы установили его слишком высоко, чтобы сеть сходилась.
Время тренировки 100000 шагов не так уж и много. Для простой игры в понг вам нужно тренироваться около 500000 шагов, чтобы получить хорошую точность. Таким образом, вы можете попробовать тренировать это дольше.
Кроме того, 2048 - довольно сложная игра, поэтому, возможно, ваша сеть недостаточно глубока, чтобы научиться играть в нее. Два слоя не так много для такой сложной игры. Попробуйте увеличить количество скрытых слоев. Возможно, вы можете использовать сеть, представленную здесь