损失没有减少,但性能正在改善

机器算法验证 收敛 损失函数 强化学习
2022-03-06 19:23:33

我正在 OpenAI 健身房的 SpaceInvaders 环境中训练 DQN 的自定义实现。剧集奖励不断增加,大约达到了 DQN 在此环境下获得的最大剧集奖励。然而,最奇怪的是,最初损失增加了,然后它一直在快速振荡,而没有显示出任何持续的减少?

这怎么解释?我的第一个猜测是 DQN 中的移动目标,但在其他游戏(例如 Pong)中,可以观察到平滑的逐渐下降?很明显,学习率的降低可能会修复振荡。但是,我有兴趣解释图像中的具体结果,特别是如果损失没有减少,它是如何学习的。

注意:环境绝对与原始 DQN 论文中使用的环境相同。下面绘制的损失是 L2 损失,没有像原始 DQN 论文中那样在其上应用 huber 损失。相反,所有梯度都被截断为范数 10。

在此处输入图像描述

1个回答

这对于强化学习来说并不罕见,并不表示有任何问题。随着智能体玩得更好,估计奖励确实变得更加困难(因为它不再总是 0)。此外,随着奖励越来越高,平均情节长度越来越长,奖励的方差量也会越来越大,因此即使防止损失增加也具有挑战性。您提到的第三个因素是,不断变化给 Q 网络带来了“移动目标”问题。

我猜为什么 Pong 不会发生这种情况,因为 Pong 是一款比 Space Invaders 更简单且更容易预测的游戏。