2

我正在尝试使用 RLLib 复制 Breakout 的 DQN 分数。在 500 万步之后,平均奖励为 2.0,而使用 DQN 的 Breakout 已知得分为 100+。我想知道这是否是因为奖励削减,因此实际奖励与 Atari 的分数不对应。在 OpenAI 基线中,实际得分放在info['r']奖励值中,实际上是裁剪值。RLLib 的情况是否相同?有没有办法在训练时查看实际的平均分数?

4

1 回答 1

1

根据训练器参数列表,库会默认裁剪 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 的基准相比根本不高,但 5M 步对于 DQN 来说可能不够大,除非您使用类似于彩虹的东西来显着加快速度。即使这样,DQN 的收敛速度也是出了名的慢,因此您可能希望使用更长的运行时间来检查结果和/或考虑升级您的 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他们从他们自己的库中发布一些针对标准基准的结果以及您应该能够获得更好性能的配置更感兴趣。

于 2020-01-20T03:32:59.943 回答