Лучшие практики для разведки / эксплуатации в обучении подкрепления - PullRequest
0 голосов
/ 04 февраля 2019

Мой вопрос следует за моим исследованием кода в учебнике по PyTorch DQN, но затем относится к обучению с подкреплением в целом: каковы наилучшие практики для оптимального изучения / эксплуатации в обучении подкреплению?

В учебном пособии по DQNпеременная steps_done является глобальной переменной, и EPS_DECAY = 200. Это означает, что: после 128 шагов пороговое значение epsilon = 0.500;после 889 шагов эпсилон-порог = 0,0600;и после 1500 шагов пороговое значение epsilon = 0.05047.

Это может работать для проблемы CartPole, описанной в руководстве - где ранние эпизоды могут быть очень короткими, а задача довольно простой - но как насчет более сложных задач?в каком гораздо больше исследований требуется?Например, если бы у нас была проблема с 40 000 эпизодов, каждый из которых имел 10 000 временных шагов, как бы мы настроили политику жадных исследований эпсилон?Есть ли какое-то эмпирическое правило, которое используется в работе RL?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 06 февраля 2019

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


EXPLORE = 3000000   #how many time steps to play
FINAL_EPSILON = 0.001 # final value of epsilon
INITIAL_EPSILON = 1.0# # starting value of epsilon

if epsilon > FINAL_EPSILON:
            epsilon -= (INITIAL_EPSILON - FINAL_EPSILON) / EXPLORE


...