【问题标题】:DOUBLE DQN doesn't make any senseDOUBLE DQN 没有任何意义
【发布时间】:2020-05-07 22:53:07
【问题描述】:

为什么要使用 2 个网络,每集训练一次,每 N 集更新目标网络,当我们可以使用 1 个网络并每 N 集训练一次时!从字面上看没有区别!

【问题讨论】:

    标签: reinforcement-learning dqn


    【解决方案1】:

    您所描述的是不是 Double DQN。定期更新的目标网络是原始 DQN 算法(及其所有派生算法)的核心特征。 DeepMind's classic paper 解释了为什么拥有两个网络至关重要:

    对在线 Q-learning 的第二次修改旨在进一步改进 我们的神经网络方法的稳定性是使用单独的网络在 Q-learning 更新中生成目标y_j。更准确地说,每C 更新我们 克隆网络Q获取目标网络Q^并使用Q^生成 Q-learning 目标 y_j 用于以下 C 更新为 Q。与标准在线 Q-learning 相比,此修改使算法更稳定,其中更新 增加Q(s_t, a_t) 通常也会增加Q(s_{t+1}, a) 对于所有a 并因此也增加目标y_j,可能导致政策的波动或分歧。 使用较旧的参数集生成目标会增加对 Q 的更新时间与更新影响目标 y_j 的时间之间的延迟,从而更不可能出现分歧或波动。

    【讨论】:

    • 是的,我知道双 DQN 是什么!我不明白我们为什么要使用它!例如:而不是在每集之后训练并每 100 集更新目标网络,为什么我们不收集 100 次训练的数据,然后一起训练!我们的主网络将提供与使用目标网络相同的输出,因为我们在最后 100 集没有训练它,所以我们将获得与使用双 DQN 相同的结果!好吧,我已经找到了我认为的答案,使用双 dqn 更好,因为每集训练主网络都会对选择动作产生影响。
    • 没错,你可以像这样延迟学习并消除目标网络,但你会根据旧策略选择动作,理论上学习速度会更慢。另一方面,在实践中并不总是很重要。我只是 published a paper 使用了一个名为 DQN(λ) 的算法,它不使用您所描述的目标网络,它仍然在 Atari 2600 游戏的子集上取得了竞争性结果。
    • @BrettDaley 抱歉,我仍然不明白为什么两个网络比一个更好。因为我们只更新预测网络,并且每 100 集只更新目标网络。这意味着我们仍在使用旧政策。那么为什么理论上两个网络的学习速度更快?
    • 对于简单的问题可能没用,但对于更复杂的问题,重要的是不要让我们收敛到局部最优。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-02
    • 2019-01-22
    • 1970-01-01
    • 2020-11-30
    • 2020-08-11
    相关资源
    最近更新 更多