美文网首页DeepMind理科生的果壳
解析 DeepMind 采用双 Q 学习 (Double Q-L

解析 DeepMind 采用双 Q 学习 (Double Q-L

作者: 朱小虎XiaohuZhu | 来源:发表于2016-02-25 18:57 被阅读7594次

    Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist,致力于推进世界人工智能化进程。制定并实施 UAI 中长期增长战略和目标,带领团队快速成长为人工智能领域最专业的力量。
    作为行业领导者,他和UAI一起在2014年创建了TASA(中国最早的人工智能社团), DL Center(深度学习知识中心全球价值网络),AI growth(行业智库培训)等,为中国的人工智能人才建设输送了大量的血液和养分。此外,他还参与或者举办过各类国际性的人工智能峰会和活动,产生了巨大的影响力,书写了60万字的人工智能精品技术内容,生产翻译了全球第一本深度学习入门书《神经网络与深度学习》,生产的内容被大量的专业垂直公众号和媒体转载与连载。曾经受邀为国内顶尖大学制定人工智能学习规划和教授人工智能前沿课程,均受学生和老师好评。

    原文

    背景

    为了解决序列决策问题,我们可以学习每个行动的最优值的估计,即采取该行动并根据后续最优策略的未来回报的期望和。在一个给定策略 π,在状态 s 的行动 a 的真实值为

    其中 γ ∈ [0, 1] 是折扣因子。最优值就是 Q∗(s, a) = max_π Q_π(s, a)。最优策略就可以通过在每个状态选择最高值的行动给出。

    最优行动之的估计可以通过 Q-学习获得 (Watkin, 1989),这也是一种形式的 td 学习 (Sutton, 1988)。大多数有趣的问题涉及遍历的状态空间太大使得学习所有的行动值难以进行。所以,我们可以通过学习一个参数化的值函数 Q(s, a; θ_t)。标准的 Q-学习在状态 S_t 下进行行动 A_t 更新参数,观察及时回报 R_{t+1} 和结果状态 S_{t+1} 变成:

    其中 α 就是标量的步长,目标 Y_t^Q 定义如下:


    类似于 SGD,将当前的值 Q(S_t, A_t; θ_t) 更新为目标值 Y_t^Q

    深度 Q 网络

    深度 Q 网络 是多层神经网络,给定状态 s 输出一个行动值得向量 Q(s, .; θ),其中 θ 是网络的参数。对一个 n-维状态空间和一个包含 m 个行动的行动空间,该神经网络是从 R^n 到 R^m 的映射。DQN 算法的两个最重要的特点是目标网络 (target network) 和经验回顾 (experience replay)。目标网络,其参数为 θ^-,其实除了其参数每 τ 次从在线网络复制外都和在线网络相同,所以 θ^-_t = θ_t,在其他步都是固定大小。DQN 使用的目标就是:

    对经验回顾,观察到的转换被存放一段时间,并会均匀地从记忆库采样来更新网络。目标网络和经验回顾都能大幅提升算法的性能 (Mnih et al., 2015)。

    双 Q-学习

    公式 (2) 和 (3) 中,在标准的 Q-学习和 DQN 中的 max 操作使用同样的值来进行选择衡量一个行动。这实际上更可能选择过高的估计值,从而导致过于乐观的值估计。为了避免这种情况的出现,我们可以对选择衡量进行解耦。这其实就是双 Q-学习 (van Hasselt, 2010)。

    最初的双 Q-学习算法中,两个值函数通过将每个经验随机更新两个值函数中的一个,这样就出现了两个权重集合,θθ'。对每个更新,一个权重集合用来确定贪心策略,另一个用来确定值。为了更好地比较这两者,我们可以将 Q-学习中的选择和衡量分解,将 (2) 重写为

    双 Q-学习误差可以被写成:

    注意到在 argmax 中行动的选择仍旧取决于在线的权重 θ_t。这表示,如同 Q-学习中那样,我们仍然会根据当前值来估计贪心策略的值。然而,我们使用了第二个权重集合 θ'_t 来公平地衡量这个策略的值。第二个权重的集合可以对称式地通过交换 θθ' 的更新。

    相关文章

      网友评论

        本文标题:解析 DeepMind 采用双 Q 学习 (Double Q-L

        本文链接:https://www.haomeiwen.com/subject/mmoikttx.html