强化学习中 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
我的问题是在我检查 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