强化学习-什么是DQN

提示:阅读本系列文章需要有神经网络基础,了解反向传播和梯度下降原理

发现很多博客文章对DQN的描述不是很好理解。本篇尽量用浅显易懂的描述,解释2013版和2015版DQN的原理,欢迎补充指正。

上一篇我们介绍了Q-learning,但是Q-learning的局限在于,处理不了state很复杂的情况,表格过大也会带来各种储存,查询,等等问题。

于是DeepMind在2013年提出了DQN算法,用神经网络来替代表格,并在2015年提出了优化,使用两个神经网络提高训练速度和收敛性。这是强化学习与深度学习的结合。

DQN2013

DQN2013

上图有一个隐藏的细节:
最后一步:perform a gradient descent step on () according to equation3。翻译过来就是根据方程式3对这个方差进行梯度下降更新。
但问题是在原论文中,这个equation3中的y_i,与上图的y_i是不同的:
y_i=r+\gamma max Q(s^、,a^、;\theta_{t-1}) \tag{原论文公式3}
y_i=r+\gamma max Q(s^、,a^、;\theta_{t}) \tag{上面的截图}
差异,为了梯度下降更新参数的时候,y_i这项不参与求导,当做常数计算,据说效果更好。这叫做semi-gradient method
参考链接:强化学习论文复现

上图为Deep Q-learning 2013算法流程,解释如下:

  • 首先初始化Memory D,它的容量为N;
  • 初始化Q网络,随机生成权重ω;
  • 循环遍历episode =1, 2, …, M:
  • 初始化initial state S1;
  • 循环遍历step =1,2,…, T:
    1, 用ϵ−greedy策略生成action a_t
    2, 执行action a_t,接收reward r_t及新的state S_{t+1};
    3, 将transition样本 (S_t,a_t,r_t,S_{t+1})存入D中;
    4, 从D中随机抽取一个minibatch的transitions (S_j,a_j,r_j,S_{j+1})
    5, 令y_j=r_j,如果 j+1步是terminal的话,否则,令 y_j=r_j+γ * maxQ(S_{t+1},a)
    6, 对(y_j−Q(S_t,a_j;ω))^2关于ω使用梯度下降法进行更新,根据方程式3;

与Q-learning对比,关键点在于创建了记忆库Memory D。
实际项目中,我们会先让记忆库积累到一定的数量,才会开始抽取样本,训练神经网络,梯度下降去优化。

Replay Buffer使用过程:

  • 收集样本:按照时间先后顺序存入结构中,如果Replay Buffer经存满样本,那么新的样本会将时间上最久远的样本覆盖。
  • 采样样本:如果每次都取最新的样本,那么算法就和在线习相差不多;一般来说,Replay Buffer会从缓存中均匀地随机采样一批样本进行学习。(下面有针对采样的优化算法DQN with Prioritized Replay的介绍)

DQN2013版流程图也可如下表示:
(样本中只有(S_i,a,r,S_{i+1}),时序差分公式必要的maxQ(s', a')怎么得来??抽取训练样本后,用神经网络处理样本,得到maxQ(s', a'))

image

DQN2015

DQN2015

上图为Deep Q-learning 2015算法流程,解释如下:

  • 首先初始化Memory D,它的容量为N;
  • 初始化Q网络,随机生成权重ω;
  • 初始化target Q网络,权重为ω^−=ω;
  • 循环遍历episode =1, 2, …, M:
  • 初始化initial state S1;
  • 循环遍历step =1,2,…, T:
    1, 用ϵ−greedy策略生成action a_t
    2, 执行action a_t,接收reward r_t及新的state S_{t+1};
    3, 将transition样本 (S_t,a_t,r_t,S_{t+1})存入D中;
    4, 从D中随机抽取一个minibatch的transitions (S_j,a_j,r_j,S_{j+1})
    5, 令y_j=r_j,如果 j+1步是terminal的话,否则,令 y_j=r_j+γ * maxQ(S_{t+1},a)
    6, 对(y_j−Q(S_t,a_j;ω))^2关于ω使用梯度下降法进行更新;
    7, 每隔C steps更新target Q网络,ω^−=ω

它通过使用两个相同的神经网络,以解决数据样本和网络训练之前的相关性。
与DQN2013对比,关键点在于使用两个相同结构的神经网络。其中网络A作为实际Q的计算网络,输出预估的Q值,此为Q估计;使用网络B输出的Q值,以时序差分方程计算Q现实,节课得到loss,然后每一步都对A进行梯度下降更新,每隔C步(一般是几百步),同步A,B网络的权重参数。这就是fix q-target原理。

DQN2015版流程图也可如下表示:


image

既然有了优化版的DQN(2015),以下我们所说的普通DQN指的都是2015版的

下面介绍一些可以提升DQN学习效率的改进算法。

Double DQN

传统DQN使用target-Q network得到target-Q值(现实值),如下,由于预测具有误差,而且去Qmax值来计算,可能导致误差更大

image

于是,Double DQN方法将这个公式优化了一下,不再是取target-Q network中S_{t+1}的Qmax而是取eval-Q network(Q估计)中max(S_{t+1},a),然后用这个动作a取Q现实中的Q值来替代。
更新后的公式为:
image

DQN with Prioritized Replay

这一套算法重点就在我们 batch 抽样的时候并不是随机抽样, 而是按照 Memory 中的样本优先级来抽. 所以这能更有效地找到我们需要学习的样本.


image

优先级定义方式:采用SumTree 有效抽样,本质上是使误差更大的样本有更大的被选中的概率。

原理:

  • 我们设定 TD-error = Q现实 - Q估计 来规定优先学习的程度. 如果 TD-error 越大, 就代表我们的预测精度还有很多上升空间, 那么这个样本就越需要被学习, 也就是优先级 p 越高。
  • 如果使用排序等方式对样本集进行处理,耗时耗力
  • SumTree 是一种树形结构, 每片树叶存储每个样本的优先级 p, 每个树枝节点只有两个分叉, 节点的值是两个分叉的合, 所以 SumTree 的顶端就是所有 p 的合. 正如下面图片, 最下面一层树叶存储样本的 p, 叶子上一层最左边的 13 = 3 + 10, 按这个规律相加, 顶层的 root 就是全部 p 的合了
image

Dueling DQN

用一句话来概括 Dueling DQN 就是. 它将每个动作的 Q 拆分成了 state 的 Value 加上 每个动作的 Advantage.

其他文章推荐:
DQN原理详解l
莫烦大佬的强化学习系列

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270