强化学习中 exploration/exploitation 的最佳实践

Best practices for exploration/exploitation in Reinforcement Learning

我的问题是在我检查 PyTorch DQN 教程中的代码之后提出的,但通常指的是强化学习:强化学习中最佳 exploration/exploitation 的最佳实践是什么?

DQN教程中,steps_done变量是全局变量,EPS_DECAY=200,意思是:128步后,epsilon threshold = 0.500; 889 步后,epsilon 阈值 = 0.0600;在 1500 步之后,epsilon 阈值 = 0.05047.

这可能适用于教程中的 CartPole 问题——早期的情节可能很短,任务也相当简单——但是对于需要更多探索的更复杂的问题呢?例如,如果我们有 40,000 个 episode 的问题,每个 epison 有 10,000 个时间步长,我们将如何设置 epsilon 贪婪探索策略? RL 工作中是否有一些经验法则?

提前感谢您的帮助。

好吧,为此我想最好使用线性退火 epsilon-greedy 策略,它根据步骤更新 epsilon:


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