Atari得分与rllib DQN实施中的奖励

时间:2019-11-03 09:02:06

标签: reinforcement-learning openai-gym ray rllib dqn

我正在尝试使用RLLib复制“突破”的DQN分数。经过5M步后,平均奖励为2.0,而使用DQN突围的已知分数为100+。我想知道这是否是因为奖励削减,因此实际奖励与Atari的分数不符。在OpenAI基准中,实际分数位于info['r']中,奖励值实际上是裁剪后的值。 RLLib是否也是这种情况?训练时有什么方法可以查看实际的平均得分

1 个答案:

答案 0 :(得分:1)

根据list of trainer parameters,该库将默认裁剪Atari奖励:

# Whether to clip rewards prior to experience postprocessing. Setting to
# None means clip for Atari only.
"clip_rewards": None,

但是,在张量板上报告的episode_reward_mean仍应与实际的非剪切分数相对应。


尽管平均得分2相对于Breakout基准而言根本不算多,但是对于DQN来说5M步可能还不够大,除非您采用类似于彩虹的方法来显着加快速度。即使如此,DQN is notoriously slow to converge也是如此,因此您可能希望使用更长的运行时间来检查结果和/或考虑升级DQN配置。

我已经进行了一次快速测试,看起来奖励削除对Breakout的影响不大,至少在训练的早期就是如此(未剪成蓝色,剪成橙色): enter image description here

我对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

您可能对他们的rl-experiments感兴趣,他们将自己库中的一些结果与标准基准一起发布,而configurations则可以使您获得更好的性能。