为什么需要目标网络? [英] Why is a target network required?

查看:24
本文介绍了为什么需要目标网络?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想了解为什么目标网络在DQN中是必需的?我正在读一篇关于"通过深度强化学习实现人的水平控制"的论文

我理解Q-Learning。Q-Learning是一种基于值的强化学习算法,它学习状态-动作之间的"最佳"概率分布,从而在一系列时间步长上最大化其长期贴现回报。

q学习使用Bellman方程进行更新,q学习更新的单个步骤由

给出
Q(S, A) = Q(S, A) + $alpha$[R_(t+1) + $gamma$ (Q(s’,a;’) - Q(s,a)]

其中α和γ是学习和贴现因子。 我可以理解强化学习算法会变得不稳定和发散。

  • 使用体验重放缓冲区,以便我们不会忘记过去的体验,并取消为了解概率分布而提供的数据集的关联。

  • 这就是我失败的地方。

  • 让我把下面报纸上的这段话打断一下,以便讨论
    • 对$Q$进行少量更新可能会显著更改策略,从而更改数据分布-了解这一部分。周期性地改变Q网络可能会导致不稳定和分布的改变。例如,如果我们总是左转或类似的情况。
    • 以及操作值(Q)和目标值之间的相关性r + $gamma$ (argmax(Q(s’,a’))-这表示奖励+伽马*我对回报的预测,假设我采取了我认为在当前状态下最好的操作,并从那时起遵循我的政策。
    • 我们使用迭代更新来针对仅定期更新的目标值调整操作值(Q),从而降低与目标的相关性。

总而言之,目标网络是必需的,因为网络在每个时间步都在不断变化,并且"目标值"在每个时间步都在更新?

但是我不知道它将如何解决它?

推荐答案

总而言之,目标网络是必需的,因为网络在每个时间步都在不断变化,并且"目标值"在每个时间步都在更新?

Q-Learning和DQN之间的区别在于您用函数近似器替换了精确值函数。使用Q-Learning,您在每个时间步只更新一个状态/操作值,而使用DQN,您可以更新许多状态/操作值,这一点您是理解的。这导致的问题是,您可能会影响您将处于的下一个状态的操作值,而不是保证它们在Q学习中保持稳定。

在使用标准深层网络(完全连接的相同大小的层)时,使用DQN基本上总是会发生这种情况。你通常看到的这种效果被称为"灾难性的遗忘",它可能是相当壮观的。如果你用这种网络(简单的,而不是像素的)做一些类似月球着陆器的事情,并跟踪过去100场左右的滚动平均得分,你很可能会看到得分有一条不错的曲线上升,然后突然之间,它完全崩溃了,开始再次做出糟糕的决定,即使你的alpha变小了。无论您让它运行多长时间,此循环都将无休止地继续。

使用稳定的目标网络作为误差度量是对抗此影响的一种方法。从概念上讲,这就像是说,"我有一个如何玩好这个游戏的想法,我要试一试,直到我找到更好的东西",而不是说"我要在每一步之后重新训练自己如何玩这整个游戏"。通过让您的网络有更多时间考虑最近发生的许多操作,而不是一直更新,它有望在您开始使用它执行操作之前找到更健壮的模型。


顺便说一句,DQN在这一点上基本上已经过时了,但那篇论文的主题是导致过去几年RL爆炸的导火索。

这篇关于为什么需要目标网络?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆