Q-Learning:目标网络与双 DQN

数据挖掘 强化学习
2021-10-14 10:51:10

我很难理解目标网络和双 DQN 之间的区别

这个博客:

Target Network 生成 target-Q 值,用于计算训练期间每个动作的损失。目标网络的权重是固定的,并且经常但少量地向主要 Q 网络值更新。

双 DQN:在计算我们的训练步骤的目标 Q 值时,我们不是在 Q 值上取最大值,而是使用我们的主网络选择一个动作,并使用我们的目标网络为该动作生成目标 Q 值

这听起来和我很相似,这个等式也让我迷失了:(

qTarget = r + γQ(  s’,  argmax(Q(s’,a,ϴ),ϴ’)  )

据我所知,目标网络方法允许我们执行以下操作:

  1. 使用在线网络,获取每个动作的分数作为当前状态的响应。选择最合适的动作a 并记下它的分数 q
  2. 使用该动作,“旅行”到下一个状态并从目标网络获得分数以进行进一步的动作。
  3. 从步骤 2) 中选择最合适的操作并调用它 A. 另外,记下它的分数Q
  4. 惩罚 OnlineNetwork 之间的任何差异 qQ.

注意:梯度流过a “输出向量”的组成部分 {a,b,c,d...}

如果这些步骤有误,请纠正我

1个回答

好的,很简单!

只是“目标网络方法”:

  1. 从记忆库中选择一个项目
  2. 使用目标网络,来自St+1确定最佳动作的索引At+1及其Q值
  3. 像往常一样进行更正

“双 DQN 方法”:

  1. 从记忆库中选择一个项目
  2. 使用在线网络,来自St+1确定最佳动作的索引At+1.
  3. 使用目标网络,来自St+1获得该动作的 Q 值。
  4. 使用该 Q 值像往常一样进行校正

从3可以看出,在线网络给了我们它认为最高的动作。但是,我们让目标网络对此类动作的得分拥有最终决定权。

如果我们让Target Network选择最佳操作,它可能会很好地选择其他一些索引。