加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

发布时间:2019-03-26 00:54:12 所属栏目:教程 来源:36氪
导读:编者按:本文节选自《深度学习理论与实战:提高篇 》一书,原文链接http://fancyerii.github.io/2019/03/14/dl-book/ 。作者李理,环信人工智能研发中心vp,有十多年自然语言处理和人工智能研发经验,主持研发过多款智能硬件的问答和对话系统,负责环信中

编者按:本文节选自《深度学习理论与实战:提高篇 》一书,原文链接http://fancyerii.github.io/2019/03/14/dl-book/ 。作者李理,环信人工智能研发中心vp,有十多年自然语言处理和人工智能研发经验,主持研发过多款智能硬件的问答和对话系统,负责环信中文语义分析开放平台和环信智能机器人的设计与研发。

以下为正文。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

本文介绍n步方法、TD-λ、Eligibility Trace和函数近似。

更多本系列文章请点击强化学习简介系列文章。更多内容请点击深度学习理论与实战:提高篇。

n步方法

MC方法是用Episode结束时的回报来作为更新目标,而TD(0)使用一步之后的回报来作为更新目标:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

根据上面的推广,我们可以定义n步回报(n-step Return)为:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

这些方法的backup diagram如下图所示。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:n步方法的backup diagram

有了n步回报之后,我们就可以n步TD学习算法的更新公式: Vt+n(St)←Vt+n1(St)+α[Gt:t+nVt+n1(St)],0≤t

下面是不同的n在一个19状态的Random Walk(由于篇幅,本书不介绍这个任务)中的对比效果如下图所示,可以看出n=1(TD)和n很大(MC)的效果都不如中间的某个n好。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:n步方法的比较

有了n步的预测,再加上ε-贪婪的策略提升,我们就可以实现n步的On-Policy策略n步SARSA算法。由于篇幅,我们就不讨论具体的算法了。同样的我们也可以使用重要性采样方法得到n步的Off-Policy算法。

TD-λλλ-回报

前面我们介绍了n步回报,不同的n有不同的效果,那么还有一种方法就是把多个n步回报进行加权平均。比如我们可以把2步回报和4步如图回报加权平均起来:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

我们甚至可以把无穷多个n步回报加权平均起来,而λ-回报就是一种无穷多个n步回报的加权方式。无穷多个怎么加权呢?

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:λ-回报

如上图所示,我们把无穷多个n步回报加权平均起来(因为当n大于T的时候,Gt:t+n就等于真实的回报Gt了。所有后面无穷项的系数都累加起来是λTt1,读者请先接受这个数字,我们后面会证明它。

从图中可以看出,1步回报的权重是1λ,2步回报的是(1λ)λ,3步回报是(1λ)λ2,…,一共有无穷项:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

我们首先证明这无穷项的和是1。这需要一个简单的无穷级数公式:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

有了这个公式之后,我们就能计算所有回报的系数和:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

注意,因为当n=T-t及其以后Gt:t+n就等于真实的回报Gt了(因为到了Episode结束)。所以从n=T-t之后的项的回报是相同的,所以可以把后面无穷项合并起来:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

因此从n=1到T-t的n步回报的权重分配如图下图所示。这样,我们可以把Gtλ写出有限项的和:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:λ-回报的权重分配

有了λλ-回报的计算公式之后,我们就可以用它得到TD-λ算法的更新目标,从而就可以进行预测了。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

这就是著名的TD-λλ算法了,根据这个算法,Gerald Tesauro在1992年设计了TD-Gammon程序,它会学习西洋双陆棋(backgammon),并且达到了人类顶尖高手的水平。

注意zhong这种TD-λλ算法是所谓的前向视角(Forward View)得出的,和MC一样,它要等到Episode结束才能计算,而且不能用于非Episode的任务。

另外,我们看一下λ的两个特殊值,λ=0λ=0和λ=1λ=1的特例。根据公式,当λ=0λ=0时,第二项是零,第一项只有当n=0时的系数是非零的1,因此变成了TD(0)算法。当λ=1λ=1时,只有第二项,因此变成了MC算法。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:Forward View

Eligibility Trace

到这为止前面所有介绍的方法都可以归为Forward View的算法,在t时刻我们往前看一步或者多步,然后得到更新的目标。如上图所示。接下来我们会介绍另外一种视角Backward View。我们首先需要介绍一个概念Eligibility Trace,Backward View的算法大部分都是基于这个概念。

我们来看一个Credit分配的问题(其实强化学习的本质就是要判断很久以前的某个行为/状态对未来的影响大小,当然机器学习也是分析哪些因素是某个事件发生的重要原因,但是强化学习的难点在于行为会改变未来),如下图所示,有两个行为响铃和开灯,最终导致电击事件的发生。那到底是那个行为造成的呢?也许你会说是响铃,因为响铃了很多次,根据经验,如果某个事件发生前经常有另一件事情发生,那么它们很可能存在某种联系。但也许会有人说是灯光导致电击的发生,因为它就在电击事件的前一刻发生,根据经验,离某个事件越近的事件越有可能是诱因。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:Credit分配问题

那到底哪种说法正确呢?两种都对!因此我们在分配Credit的时候要同时考虑这两个因素。把这两个综合起来就可以得到Eligibility Trace:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

根据上面的公式,Et分为两部分,一部分来自之前的Et1,但是会衰减成原来的λ倍(γ是打折因子,这里暂不讨论);另外一部分就是当前状态是否是s。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

图:Eligibility Trace示例

我们来看上图,开始是E(s)是0,然后连续4次St都是s,因此E(s)不断增加,接着的状态都不是s,因此E(s)逐渐衰减,然后又有两次的状态是s,…。因此我们可以把Et(s)看成状态s对于最终的结果的“责任”,有点像之前反向传播算法的错误δδ。这样我们就可以得到backward view的TD-λλ算法的更新如下:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(19)—— 强化学习简介(五)

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读