gpt4 book ai didi

deep-learning - 为什么需要目标网络?

转载 作者:行者123 更新时间:2023-12-03 14:31:01 26 4
gpt4 key购买 nike

我有一个了解,为什么在DQN中需要目标网络?我正在阅读有关“通过深度强化学习进行人为控制”的论文

我了解Q学习。 Q学习是一种基于值(value)的强化学习算法,可学习状态 Action 之间的“最佳”概率分布,该分布将在一系列时间步长上最大化其长期折扣奖励。

使用Bellman方程更新Q学习,q学习更新的单个步骤由下式给出:

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

其中alpha和gamma是学习和折扣因素。
我可以理解,强化学习算法将变得不稳定并且会发散。
  • 使用了经验重播缓冲区,这样我们就不会忘记过去的经验,并且可以取消提供学习概率分布的数据集的相关性。
  • 这是我失败的地方。
  • 让我从本文中分解该段进行讨论
  • 对$ Q $进行小的更新可能会显着更改策略,从而更改数据分布,这一事实-了解这一部分。定期更改Q网络可能会导致不稳定和分布变化。例如,如果我们总是向左转或类似的事情。
  • 以及操作值(Q)与目标值之间的相关性r + $gamma$ (argmax(Q(s’,a’)) —这表示奖励+ Gamma *我对 yield 的预测,因为我采取了我认为是当前状态下的最佳操作并遵守了我的政策从那时起。
  • 我们使用了迭代更新,将操作值(Q)调整为仅定期更新的目标值,从而减少了与目标的相关性。

  • 那么,总而言之,由于网络在每个时间步长不断变化并且“目标值”在每个时间步长都在更新,因此需要一个目标网络吗?

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

    最佳答案

    So, in summary a target network required because the network keeps changing at each timestep and the “target values” are being updated at each timestep?



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

    使用标准深度网络(完全连接的相同大小的层束)时,DQN基本上总是发生这种情况。您通常会看到的这种效果被称为“灾难性遗忘”,并且可能会非常壮观。如果您正在使用这种网络(简单的网络,而不是像素的网络)做类似月球着陆器的工作,并跟踪过去100场左右的滚动平均得分,您可能会看到得分有很好的上升趋势,那么所有突然之间,即使您的alpha值变小,它也会完全消失,重新开始做出糟糕的决定。无论您让它运行多长时间,此循环都会无休止地持续下去。

    使用稳定的目标网络作为您的错误度量标准是抵御这种影响的一种方法。从概念上讲,这就像在说:“我对如何玩得很好有一个想法,我会尝试一下,直到找到更好的东西为止”,而不是说“我要重新训练自己如何玩这个游戏”一举完成整个游戏”。通过给您的网络更多的时间来考虑最近发生的许多操作而不是一直进行更新,它有望在您开始使用它进行操作之前找到一个更健壮的模型。

    从侧面讲,DQN在这一点上已经过时了,但是该论文的主题是导致最近几年RL爆炸的导火索。

    关于deep-learning - 为什么需要目标网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54237327/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com