zoukankan      html  css  js  c++  java
  • 文献笔记:Deep Reinforcement Learning with Double Q-learning

    该文章是针对Hado van Hasselt于2010年提出的Double Q-learning算法的进一步拓展,是结合了DQN网络后,提出的关于DQN的Double Q-learning算法。该算法主要目的是修正DQN中max项所产生的过高估计问题,所谓过高估计,在前面的博客Issues in Using Function Approximation for Reinforcement Learning阅读笔记中已经有所讨论。

    主要方法是采用下面公式替代DQN算法中从经验池采样针对$y_{j}$的计算:

    [Y _ { t } ^ { ext { DoubleQ } } equiv R _ { t + 1 } + gamma Q left( S _ { t + 1 } , underset { a } { operatorname { argmax } } Q left( S _ { t + 1 } , a ; oldsymbol { heta } _ { t } ight) ; oldsymbol { heta } _ { t } ^ { - } ight)]

    上式即通过online network选择最好的action的,再用target network计算state-value function值,这与2015 Nature版DQN直接利用target network计算有所区别。

    论文采用了一个简化的强化学习例子说明这一观点,假设a的选择并不影响Q(s,a)值,即满足$Q_*(s,a)=V_*(s)$。我们希望找到一个Q(s,a)的估计函数,满足:

    [sum_a(Q_t(s,a)-V_*(s,a))=0]

    但是由于估计误差的存在,假设有$frac{1}{m}sum_a(Q_t(s,a)-V_*(s,a))^2=C$成立,且C>0,m>=2表示当前s可选动作数。作者证明,采用max计算将会产生以下偏误:$max_a Q_t(s,a)geq V_*(s) + sqrt{frac{C}{m-1}}$,但是采用Double Q-learning,则绝对误差为0,即满足:

    [left| dot { Q } _ { t } ^ { prime } left( s , operatorname { argmax } _ { a } Q _ { t } ( s , a ) ight) - V _ { * } ( s ) ight|=0]

    在这里,作者声明$Q _ { t } ^ { prime } left( s , a _ { 1 } ight) = V _ { * } ( s )$。(个人理解是:误差是由于Q _ { t } ( s , a )产生的。结合DQN算法,即作者认为online network是产生误差的主要来源,而target network并没有产生误差。这里有点不能理解,可能需要再去读一下2010年Double Q-learning的原文进行进一步研究)

  • 相关阅读:
    React Native 安卓 程序运行报错: React Native version mismatch(转载)
    RN用蓝牙接入热敏打印机和智能电子秤(转载)
    安装加密用包
    React Native 调用 Web3(1.x) 的正确姿势
    Unable to resolve module crypto
    点击<tr>表格行元素进行跳转
    Phonegap环境配置
    登录记住密码功能的实现
    php+sqlserver实现分页效果
    php日期格式转换
  • 原文地址:https://www.cnblogs.com/statruidong/p/10512661.html
Copyright © 2011-2022 走看看