Reinforcement learning rllib DQN实施中的Atari分数与奖励

Reinforcement learning rllib DQN实施中的Atari分数与奖励,reinforcement-learning,openai-gym,ray,rllib,dqn,Reinforcement Learning,Openai Gym,Ray,Rllib,Dqn,我正在尝试使用RLLib复制突破的DQN分数。5米步后,平均奖励为2.0,而使用DQN突破的已知分数为100+。我想知道这是否是因为奖励剪辑,因此实际奖励不符合雅达利的分数。在OpenAI基线中,实际分数被放置在info['r']中,奖励值实际上是剪裁值。RLLib也是这样吗?有没有办法在训练时查看实际平均分数?根据,默认情况下,图书馆将剪辑Atari奖励: # Whether to clip rewards prior to experience postprocessing. Setting

我正在尝试使用RLLib复制突破的DQN分数。5米步后,平均奖励为2.0,而使用DQN突破的已知分数为100+。我想知道这是否是因为奖励剪辑,因此实际奖励不符合雅达利的分数。在OpenAI基线中,实际分数被放置在
info['r']
中,奖励值实际上是剪裁值。RLLib也是这样吗?有没有办法在训练时查看实际平均分数?

根据,默认情况下,图书馆将剪辑Atari奖励:

# Whether to clip rewards prior to experience postprocessing. Setting to
# None means clip for Atari only.
"clip_rewards": None,
然而,tensorboard上报告的
事件\u奖励\u平均值
仍应与实际的非剪辑分数相对应


虽然2的平均分数相对于突破的基准来说并不算多,但5米的台阶对于DQN来说可能不够大,除非你使用类似彩虹的东西来显著加快速度。即使这样,你也可能想用更长的时间来检查你的结果,和/或考虑升级你的DQN配置。 我已经做了一个快速测试,看起来奖赏剪辑对突破没有太大影响,至少在训练的早期是这样(蓝色的未剪辑,橙色的剪辑):

我对Breakout了解不多,因此无法评论它的评分系统,但如果随着我们取得更好的表现(比如说,与获得相同的小奖励但频率更高的奖励相反),我们应该开始看到两者的分歧。 在这种情况下,我们仍然可以将奖励标准化或将其转换为对数标度

以下是我使用的配置:

lr: 0.00025
learning_starts: 50000
timesteps_per_iteration: 4
buffer_size: 1000000
train_batch_size: 32
target_network_update_freq: 10000
# (some) rainbow components
n_step: 10
noisy: True
# work-around to remove epsilon-greedy
schedule_max_timesteps: 1
exploration_final_eps: 0
prioritized_replay: True
prioritized_replay_alpha: 0.6
prioritized_replay_beta: 0.4
num_atoms: 51
double_q: False
dueling: False
您可能更感兴趣的是他们在哪里发布了他们自己的库中针对标准基准的一些结果,以及您应该在哪里获得更好的性能