我正在尝试使用RLLib复制DQN分数以获取Breakout。经过5M步后,平均奖励为2.0,而使用DQN突围的已知分数为100+。我想知道这是否是因为报酬削减,因此实际报酬与Atari的分数不符。在OpenAI基准中,实际分数位于info['r']
中,奖励值实际上是裁剪后的值。 RLLib是否也是这种情况?训练时有什么办法可以查看实际的[[平均分数?
# 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的影响不大,至少在训练的早期就是如此(未剪成蓝色,剪成橙色):
我对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
更感兴趣,他们在rl-experiments
中将自己库中的一些结果与configurations一起发布到标准基准中。