第6章强化学习 6.强化学习概述 1 从技术层面上讲,机器学习(machinelearning)无疑是人工智能研究的核心领域之 一,其研究动机就是让机器具有人的学习能力以便实现人工智能。为了实现人工智能,智 能控制是不可或缺的,例如,智能机器人在执行任务时需要根据环境变化做出相应的决 策。基于智能化的体现,该决策绝不是由专家规划完成,而是机器人通过与环境的不断交 互获得经验知识自发产生的。能够实现这种智能决策控制的学习方法便是强化学习 (enocnerig,它是机器学习领域中的重要学习方法之一。 rifremetlannRL), 强化学习除了在智能机器人领域得到了广泛应用以外,还被广泛应用于智能调度系 统、智能对话系统、存储系统、智能电网、智能交通系统、多智能体系统、无人驾驶车、航空 航天系统、游戏及数字艺术智能系统等其他智能系统。可见,强化学习是最有希望实现人 工智能这个目标的学习方法之一。 强化学习作为解决现实世界问题的重要学习方法,始终是研究者们备受关注的研究热 点。最近,谷歌公司的DepMind团队在《自然》杂志上公布了能够击败人类专业玩家的游戏 智能体,这一研究成果令人工智能专家震撼,使得强化学习再次成为当今研究焦点。 强化学习研究的是智能体(agent)如何根据当时的环境做出较好的决策,它不需要任 何先验知识,也无需专家给定准确参考标准,而是通过与环境的交互来获得知识,自主的 进行动作选择,最终找到一个适合当前状态的最优动作选择策略(policy),使得在整个决 策过程中得到最大的累积奖赏,如图6-1所示。例如,训练一个游戏智能体时,为了完成 游戏任务,智能体必须对游戏画面有所认识,根据游戏经验选择合理的动作,动作选择操 作结束后游戏画面进入下一帧,智能体获得过关或得分等奖赏。如此循环,直到游戏结 束。这里的游戏经验指的是策略,即什么场景下选择什么动作。由此可见,为了实现强化 学习的目标,要求智能体能够对周围环境有所认知,理解当前所在状态,根据任务要求做 出符合当前环境情境的决策。 图6-1 强化学习 强化学习是解决机器学习领域中序列决策过程的学习范式,成为人工智能热点研究 方向之一。目前,解决强化学习问题的方法主要包括基于值函数的策略学习方法与策略 ·63· 搜索(Policysearch)两大主要算法。 (1)基于值函数的策略学习方法。基于值函数的策略学习方法是早在20世纪80年 代末就被提出且得到广泛使用的传统强化学习算法,其中最具代表性的算法包括 Watkins提出的Q-Learning、Suton提出的TD算法及Rummery等提出的SARSA算 法。南京大学的高阳及MIT的Kaelbling等人对策略迭代算法进行了系统的分析与总 结,此类算法首先要计算每个状态-动作对的值函数(valuefunction),然后根据计算的值 函数贪婪地选择值函数最大的动作。基于值函数的策略学习方法能够有效地解决离散的 状态动作空间问题。面对连续状态空间问题,启发式的方法是网格离散化状态空间,北京 理工大学的蒋国飞等人理论性地研究了Q-Learning在网格离散化中的收敛性问题,指出 随着空间离散化后的网格密度增加,使用Q-Learning算法求解到的最优解依概率1收 敛。然而,当状态空间过大时,网格化无法遍历整个状态空间,即遭遇了“维度灾难”问题。 蒋国飞等人将Q-Learning与神经网络相结合,在未离散化连续状态空间的情况下成功完 成了倒立摆的平衡控制。随后,Lagoudakis等人提出了通过值函数估计来解决连续状态 问题,极大地提高了策略迭代算法在处理连续状态空间问题中的性能。南京大学的陈兴 国通过引入核函数形式提高值函数的泛化能力,为复杂值函数表达提供技术支撑。基于 值函数的策略学习方法可以有效解决连续状态空间问题,但是由于值函数的极度非凸性, 难以在每一个时间步骤上都使用最大化价值函数来进行动作选择。由此可见,此类方法 不适用于解决现实世界中具有连续动作空间的决策问题。并且Suton等人指出,此类方 法的策略是通过值函数而间接得到的,即使极小的值函数误差也可能导致不恰当的决策。 (2)策略搜索方法。策略搜索算法是斯坦福大学的AndrewNg等人提出的一种较 新的强化学习算法,该类方法直接对策略进行学习,能够突破基于值函数的策略学习方法 中所存在的局限性,适用于解决具有连续动作空间的复杂决策任务。目前为止,最具代表 性的策略搜索算法包括PEGASUS 、策略梯度、自然策略梯度、EM及NAC等。其中,策 略梯度算法(policygradients)是最实用、最易于实现且被广泛应用的一种策略搜索方法, 此类算法非常适用于具有连续状态及动作空间的智能系统。此外,由于策略梯度方法中 策略的更新是逐渐变化的,能够确保系统的稳定性,尤其适用于机器人等复杂的智能系统 决策控制问题。然而,Wiliams等人提出的传统策略梯度算法,REINFORCE梯度估计 方差过大,使得算法不稳定且收敛慢。为了解决梯度估计方差过大的实质性问题,Sehnke 等人提出了基于参数探索的梯度估计算法(parameter-exploringpolicygradients,PGPE),该 算法通过探索策略参数分布函数的方式大大减少了决策过程中的随机扰动,从而根本性地 解决了传统策略梯度算法中所存在的梯度估计方差过大的问题。 6.强化学习问题建模———马尔可夫决策过程 2 强化学习任务通常用马尔可夫决策过程(MDP)来描述:(A,PI ,γ), S,PT ,r,其中 S 为状态空间; A 为动作空间,状态 S 和动作 A 均可以为离散空间,也可以是连续空间, 取决于具体问题;PT (t+1|a)为在当前状态st 下执行动作a后,转移到下一状态 st,tst+1的状态转移概率PI((s) 为初始状态s1 的概率;sat(t) ·64· 密度;s) r(t,t,+1)为在当前状态 st 下执行动作a后转移到下一状态st+1 的瞬时奖赏;0<γ<1 为未来奖赏折扣因子。 MDP 的动态(t) 过程如下:首先,某智能体(t)从初始状态概率分布p(中随机选 agens1) 择状态s1 后根据当前策略 π 选择动作a1,然后智能体根据状态转换函数p(s1, s2|a1) 状态s1 随机转换到s2,获得此次状态转移的瞬时奖赏r(a1,)。此过程重复T 次,(从) s1,s2 snannn 得到一条路径hn ∶1,…, T ], 此处的 T 为时间步长。 强化学习的核心是动作选择策略,即状态到动作的映射。简单地说,策略是从感知到 的状态到采取的动作的映射,它既可以是确定性的也可以是随机的。确定性策略是给定 状态st, at=st随机性策略是将状态空间映射到动作空间的 =[1,sT ,a 可以得到确定的动作a:π(); 分布,即aπ(), 表示在状态s下执行动作a的条件概率密度。另外,随机性策 略含有动作的探索,所谓探索是指智能体尝试其他动作以便找到更好的策略。 强化学习的目标是找到最优策略,从而最大化期望累积回报。当得到一条路径后,便 可计算该路径的累积回报 t~at|sttt t-1 h)∶γsas R( = Σ(T) r(t,t,t+1) = 其中, γ 是折扣因子,通常0≤γ<1,折扣(t) 因(1) 子 γ 决定了回报的时间尺度。令往后的状态 所反馈回来的瞬时奖赏乘上这个折扣系数,这样意味着当下的奖励比未来反馈的奖赏更 重要。注意,一条路径不是确定的,它的累积回报是一个随机变量,不是一个确定值,因此 无法衡量与描述它的好坏,但是其期望是一个确定值。因此用累积回报的期望来衡量一 p(R(d 个策略,累积回报期望表示为 Jπ∶=∫h)h) h T 其中,h)p(p(t+1|t,tπ(t| p(=s1)Π ssa)ast)为发生路径的概率密度函数。强化学习 t=1 的目标是找到最优策略π*,该策略可以最大化期望奖赏Jπ : π*∶=argmaxJπ π 6.强化学习算法简介 3 目前,解决强化学习问题的方法主要包括基于值函数的策略学习方法与策略搜索 (policysearch)两大主要算法。下面,一一学习两类算法中的经典方法。 6.1 基于值函数的策略学习方法 3. 本节介绍基于值函数的策略学习方法。基于值函数的策略学习方法是强化学习算法 的一个主要类别,它学习值函数,最终的策略根据值函数贪婪得到,即在任意状态下,当前 的最优策略为值函数最大时所对应的动作。本节将首先介绍状态值函数Vπ (和状态 动作值函数Qπ (a)的定义,随后介绍一种传统的学习值函数的方法:QLasn) n然后 s,-erig, 介绍策略迭代算法的框架,最后讲述基于值函数估计的最小二乘策略迭代算法(LSPI )。 1. 值函数 值函数可以分为两类:状态值函数Vπ (s)、-动作值函数Qπ (a)。状态值函数 状态s, ·65· Vπ(s)可以用来衡量采用策略π 时,状态s 的价值。即状态值函数Vπ (s)是从状态s 出 发,按照策略π 采取行为得到的期望累积回报,用公式表示为 Vπ(s)∶=Eπ,PT Σ∞ t=1 γt-1r(st,at,st+1)|s1 [ =s] 其中,Eπ,PT 表示在初始状态为s1=s,策略为π(at|st)和状态转移概率密度函数为 PT (st+1|st,at)下的期望值。 另一类是状态-动作值函数Qπ(s,a),该值函数可以用来衡量在策略π 下,智能体在 给定状态下采取动作a 后的价值。即状态-动作值函数是从状态s 出发,采取行为a 后, 根据策略π 执行动作所得到的期望累积回报: Qπ(s,a)∶=Eπ,PT é . êê Σ∞ t=1 γt-1r(st,at,st+1)|s1 =s,a1 =a ù . úú 其中,Eπ,PT 是在初始状态为s1 =s,采取动作a1 后,按照策略π (at|st )和转移模型 PT (st+1|st,at)下所得到的条件期望累积回报。可以看到状态-动作值函数与状态值函 数唯一的不同是动作值函数不仅指定了一个初始状态,而且也指定了初始动作,而状态值 函数的初始动作是根据策略产生的。价值函数用来衡量某一状态或者状态-动作对的优 劣,对于智能体来说,就是是否值得选择这一状态或者状态-动作对。因此,最优策略自 然对应着最优值函数。 在实际实现算法时,不会按照上述定义进行计算,而是通过贝尔曼方程(Bellman equation)进行迭代。下面,将介绍状态值函数和状态-动作值函数的贝尔曼方程求解方 法。对于任意策略π 和任意状态s,可以得到如下递归关系: Vπ(s)=Eπ,PT [r(s,a,s')+γVπ(s')] 其中,s'为s 的下一状态。这就是贝尔曼方程的基本形态,它表明在策略π 下,当前状态 的值函数可以通过下一个状态的值函数来迭代求解。同样地,状态-动作值函数的贝尔 曼方程可写成相似的形式: Qπ(s,a)=Eπ,PT [r(s,a,s')+γQπ(s',a')] 其中,(s',a')为下一个状态-动作对。 计算值函数的目的是为了找到更好的策略,最优状态值函数表示所有策略中值最大 的值函数,即 Vπ* (s)=max π Vπ(s) 同样地,最优状态-动作值函数可定义为在所有策略中最大的状态-动作值函数,即Qπ* (s,a)= max π' Qπ(s,a)。 状态值函数更新过程为,对每一个当前状态s,执行其可能的动作a,记录采取动作所 到达的下一状态,并计算期望价值V(s),将其中最大的期望价值函数所对应的动作作为 当前转态下的最优动作。最优状态值函数Vπ* (s)刻画了在所有策略中值最大的值函数, 即在状态s 下,在每一步都选择最优动作所对应的值函数。 状态值函数考虑的是每个状态仅有一个动作可选(智能体认为该动作为最优动作), 而状态-动作值函数是考虑每个状态下都有多个动作可以选择,选择的动作不同转换的 ·66· 下一状态也不同,在当前状态下取最优动作时会使状态值函数与状态-动作值函数相等。 最优状态值函数Vπ* (s)的贝尔曼方程表明:最优策略下状态s 的价值必须与当前状态 下最优动作的状态-动作值相等,即 V* (s)=max a Q* (s,a) =max a Eπ,PT Σ∞ t=1 [ γt-1r(st,at,st+1)|s1 =s,a1 =a] =max a Eπ,PT [r(s,a,s')+γV* (s')|s1 =s,a1 =a] 状态-动作值函数Q* (s,a)的最优方程为 Q* (s,a)=Eπ,PT [r(s,a,s')+γ max a' Q* (s',a')] 从最优值函数的角度寻找最优策略,可以通过最大化最优状态-动作值函数Q* (s,a) 来获得 π* (a|s)= 1, a =argmaxa∈AQ* (s,a) 0, 其他{ 2.Q-Learning 本节从值迭代的角度,讲述一种学习值函数以及求解最优策略的最传统的方法——— Q-Learning。所谓值迭代方法是指首先学习值函数到收敛,然后利用最优值函数确定最 优的贪婪策略。 根据状态-动作值函数的贝尔曼方程可以发现当前值函数的计算用到了后续状态的 值函数,即用后续状态的值函数估计当前值函数,这就是bootstrapping方法。然而,当没 有环境的状态转移函数模型时,后续状态无法全部得到,只能通过实验和采样的方法每次 试验一个后续状态s'。而计算一个值函数,需要等到每次试验结束,所以学习速度慢,效 率低下。因此,考虑在试验未结束时就估计当前值函数。时间差分法(temporal difference,TD)是根据贝尔曼方程求解值函数最核心的方法。这里介绍更新值函数的最 传统的方法:Q-Learning。根据状态-动作值函数的贝尔曼方程,Q-Learning利用TD偏 差更新当前的值函数: Q(st,at)=Q(st,at)+α[r(st,at,st+l)+rmaxαQ(st+l,a)-Q(st,at)] 其中,δt=r(st,at,st+l)+rmaxαQ(st+l,a)-Q(st,at)表示TD偏差。将Q-Learning算 法总结如图6-2所示。值得注意的是,这里Q-Learning采用的是异策略方法,即行动策略与 目标策略所采用的策略不一致,其中行动策略采用ε贪婪策略,而目标策略为贪婪策略。 3.策略迭代 严格来说,策略迭代是用来解决动态规划问题的方法。而强化学习又称为拟动态规 划。动态规划为求解复杂问题提供了思路,它将原本复杂、规模较大的问题划分成若干个 小问题。动态规划与强化学习的区别就是动态规划假设MDP模型是全知的,而强化学 习中MDP可能是未知的。 策略迭代是运用值函数来获取最优策略的方法,也就是在策略未知的情况下,根据每 次的奖励学到最优策略的方法。策略迭代算法分两个步骤:策略评估和策略改进。对一 个具体的MDP问题,每次先初始化一个策略π1,针对每次迭代所执行的过程,计算当前 ·67· 图6-2 Q-Learning算法伪代码 策略πl 下的贝尔曼方程,从而得到状态-动作值函数Qπ(a), 该过程称为策略评估。 s, t 根据该值函数使用贪心策略来更新策略πl+1: πl+1(a|s)=argmaxQπl (a), s, a 上述过程称为贪心策略改进。将上述过程不断迭代直至收敛,最终可得到最优策略: a|s)πl( 其中, ‖πl+1(-a|s)‖≤k,. s ∈S,. a ∈ A k>0 且一般取一个非常小的正数;‖·‖为L2 范数。 图6-3 策略迭代算法框架 图6-3所示为强化学习中的Actor-Critic算法。策略改进为Actor部分,决定智能体 的行为,而策略评估作为Critic,用来评判智能体行为的优劣。贪心策略改进能确保策略 s,s, 的性能是提高的,这就是策略改进定理:Qπl (a)≤Qπl+1()。 s,该定理表明,策略πl+1 的性能一定比策略πl 性能更好或等(a) 同。当且仅当Qπl+1(a) l+1(a| 为最优状态-动作值函数,且πa|s)与πl (s)均为最优策略时等号成立。故在执行 策略改进时除非当前策略已经是最优策略,否则要求将要更新的策略必须比原策略更好。 在策略迭代中,可以通过求解Qπl s,的优化问题来进行策略改进,而关键部分是策略 评估,即值函数的估计。 (a) 前面已从值迭代的角度介绍了一种求解离散状态-动作问题的值函数方法,然而使 用上述的表格型方法来计算每个状态-动作对的值函数的方法代价是很大的,特别是当 状态-动作空间是连续的且很大时,会产生维数灾难,难以求解。为解决此问题,提出了 值函数逼近方法。接下来将介绍基于最小二乘法的策略迭代方法。 ·68· 4.基于最小二乘法的策略迭代算法 上述基于动态规划的强化学习方法要求状态空间和动作空间不能太大且该空间为离 散的。而当状态空间为连续的,或维度较大时,无法直接利用上述方法解决问题,这时就 需要考虑值函数逼近(valuefunctionapproximation)方法。值函数逼近方法更新的是值 函数中的参数,因而,任意状态或状态-动作对的值都会被更新;对于之前介绍的方法而 言,值函数更新后改变的只有当前状态或状态-动作对的值函数。 最小二乘策略迭代(Leastsquarespolicyiteration,LSPI)是一种参数化策略迭代算 法,其利用线性模型估计学习状态-动作值函数来提高策略性能,令Qπ (s,a|ω )是Qπ (s,a) 的参数化逼近,可表示为 Qπ(s,a|ω )=ω T.(s,a) 其中,.(s,a)为k 维基函数.(s,a)=[.1(s,a),.2(s,a),…,.k (s,a)]T,ω 是待估计的 参数。当值函数的模型确定时,适当调整参数ω ,使得值函数的估计值与真实值逼近。参 数的更新是不断迭代,直到收敛而完成的。 在监督学习中,函数逼近通常是使用样本的目标值作为训练集来估计函数,但是强化 学习中目标函数值不是直接可得的,必须由已收集到的路径样本计算后才能得到。此处 样本是在策略π 下转移模型为Pt 时得到的,可表示为(s,a,r,s')。假设在第l 次迭代 中,收集N 个样本的样本集表示为D ={(si,ai,ri,s'i)}N i=1。 现在,令Qπl 为第l 次迭代时,在策略πl 下得到的N 个样本的值函数,将其向量化表 示为Qπl =[(Qπl (s1,a1),Qπl (s2,a2),…,Qπl (sN ,aN )]T。令Qπl 是第l 次迭代时,当前 参数为ωl,基函数为Φ 的样本的值函数的估计值:Qπl=[Qπl (s1,a1),Qπl (s2,a2),…, Qπl (sN ,aN )]T。Qπl可表示为Qπl=Φωl,其中ωl是长度为k 的列向量,基函数Φ 是N ×k 的矩阵: Φ = .(s1,a1)T .(s2,a2)T . .(sN ,aN )T . è ..... . . ÷÷÷÷÷ Φ 矩阵中每行代表某一样本(s,a)基函数的值,每列表示的是所有样本对某一基函数 的值。状 态-动作值函数的Bellman方程:Qπ(s,a)=R (s,a)+γEπ,PT [Qπ (s',a')],其中 R(s,a)=Ep(s'|s,a)[r(s,a,s')]。将Bellman方程转化为基于N 个样本的矩阵形式,方程 变为 Qπl =R +γEπl ,PT [Q'πl ] 其中,Qπl 和R 是N 维向量。现在,Qπl 代替Qπl,使得估计值函数逼近贝尔曼方程,可得 Φωl=R +γEπ,PT [Φ'ωl] 函数估计的目标是最小化贝尔曼残差的L2范数,即 wl* =argminwl* ‖Φwl -γEπ,PT (Φ',wl)-R‖2 由于基函数的列是线性无关的,通过对上式求解,可得唯一的最优解为 ωl={(Φ -γEπl ,PT [Φ'])T (Φ -γEπl ,PT [Φ'])-1 (Φ -γEπl ,PT (Φ')}TR ·69· 这就是目标函数的贝尔曼残差最小化逼近。得到值函数的估计后,便可根据估计的 值函数进行策略的更新,这就是所谓的基于最小二乘算法的策略迭代方法,具体流程如 图6-4所示。在任何给定状态 s 下,通过使值函数的估计值在动作空间 A 上最大化,可 以得到该估计值函数上的贪婪策略π。 s)s,wT s, πl+1(=argminaQπl (a)=argmaxal.(a) 图6-4 最小二乘策略迭代算法框架 截至目前,所使用到的策略更新方法都是确定性的贪心策略,但是在实际情况中,由 于在大的状态动作空间中需要探索新的状态动作对以获得更好的策略,故随机策略相对 于确定性策略更有优势,因此在随机概率改进中考虑了所得到的策略的随机性。在这里, 引入一个改进的随机策略技术: πl+1(Qπl (a)/ a|s)s, τ p(s,τ) a τ 是一个确定新策略πl+1(s)∫e(=) xQπl (a)/ d 其中,a|随机性的正参数。该策略称为吉布斯策略更新技术 (Gibbspolicyupdate)。 由于策略是通过策略迭代中的值函数间接学习得到的,然而,提高值函数逼近的质量 不一定能产生更好的策略。值函数的微小变化可能会导致策略的极大变化,因此使用基 于值函数的方法来控制昂贵的动态系统(例如类人机器人)是不安全的。此外,基于值函 数的策略学习方法难以处理连续动作空间问题,因为需要找到值函数的最大值来进行动 作的选择。解决上述问题的一种方案是策略搜索算法,将在6.2节中进行讲述。 3. 6.2 策略搜索算法 3. 策略搜索是将策略参数化,利用参数化的线性函数或者非线性函数表示策略,寻找最 优的策略参数,使得强化学习的目标,即累积回报的期望最大。在值函数的方法中,迭代 计算的是值函数,再根据值函数改善该策略;而在本节要讲解的策略搜索方法中,直接对 策略进行迭代计算,也就是迭代更新策略的参数值,当累积回报的期望达到最大时,策略 模型参数所对应的策略就是想要的最优策略。 在正式学习策略搜索方法前,先认识一下值函数方法和直接策略搜索方法的优缺点: ·70· (1)策略搜索算法是对策略进行参数化表示,与值函数方法中对值函数进行参数化 表示相比,策略参数化更简单,更容易收敛。 策略改善需要求解agmaxas,当动作 (2)利用值函数方法求解最优策略时,rQ(a), 空间极大或为连续动作空间时,无法进行求解。 (3)策略搜索算法通常采用随机策略,因此可以将探索更好地融入策略的学习过 程中。与 值函数方法相比较,策略搜索方法同时也存在一些不足,例如: (1)策略搜索方法容易陷入局部最小值。 (2)策略评价的样本不充足时,会导致方差较大,最终影响收敛。 最近几年,研究者们针对这些缺点研究了各种解决方案。接下来先对策略搜索进行 Δ 建模,再学习一些比较经典的策略搜索方法,如策略梯度方法,自然策略梯度方法,基于参 Δ 数探索的策略梯度方法以及基于EM 的策略搜索方法。 1. 策略搜索方法建模 法的目的就是找到可以使得期望回报值J(最大化的最优参数,: θ*∶=agmaJ( 策略搜索方法使用的是参数化策略,即π(s,:其中 θ 是策略参数。策略搜索方 θ ) a| θ ) 即最优策略参数θ* rx θ) 其中,期望累积回报可表示为策略参数 θ 的函数(θ) : J(p(R(d θ )∶=h| θ )h) h 这里路径 h 发生的概率密度取决于策略∫,根据马尔可夫随机性质,可将其表示为 T p(h|θ)=s1)Π st+1|sat)at, p(p(t,π(t|sθ ) t= 下面,介绍寻找最优策略参数的经典(1) 方法,比如传统的策略梯度方法,自然策略梯度 方法,基于参数探索的策略梯度方法以及期望最大化(ExpectationMaximization,EM) 策略搜索方法。 2. 策略梯度方法 寻找最优策略参数的最简单、也是最常用的方式是梯度下降法,在强化学习领域将其 称为策略梯度方法(REINFORCE), εθJ(其中 ε 为学习率, θ ), 梯度 它是直接通过梯度上升学习策略参数 θ 的: θ ← θ + 它是一个非常小的正数。因此,问题的关键是如何计算策略 θJ( θ )。 对期望累积回报求导,得 ΔΔ θJ(=∫ θ ) h| θ )h) θp(R(dh Δ h| θ ) ∫p(θ h) gp(h| θ )R(dh lo = T p( =∫h| θ )Σ t=1 gπ(t,R( Δ θ loat|sθ )h)dh h| θJ( =p(h| θ ) θ ) 这里使用了l 函数p(θ) h| Δ Δ og() 函数求导:θp(θ) Δ θgp(h| θ )。然而,路径的概率密度 不能直接计算得到。可以利用经验平均估算: lo 未知,因此,策略梯度 ·71· 利用当前策略采样得到n 条路径,然后用这n 条路径的经验平均估计策略梯度,即 ΔθJ^(θ )=1 NΣN n=1ΣT t=1 Δθlogπ(an t |sn t ,θ )R(hn) 其中,hn ∶=[sn1 ,an1 ,…,sn t ,an t ]为采样的n 条路径样本。由此可以看出,梯度策略的计算 最终转换为动作策略的梯度值。 为了更好地进行探索,通常选择随机策略。可以将其表示为确定性策略加随机部分。 高斯策略是最常用的一种策略模型,假设此处的策略参数为θ =(μ ,σ),其中μ 为均值向 量,σ 为标准差,高斯随机策略可表示为 π(a|s;θ )= 1 σ 2πexp - [a -μ T.(s)]2 2σ2 { } 其中.(s)为基函数向量。在高斯随机策略模型下,可以很容易求得动作策略梯度的解 析解: Δμlogπ(a|s,θ )= a -μT.(s) σ2 .(s) Δσlogπ(a|s,θ )= [a -μT.(s)]2 -σ2 σ3 到此为止,可以通过梯度下降法,计算策略梯度,改进策略参数,直到收敛为止,但是 该方法的问题是估计策略梯度的样本数不足时,上述策略梯度的方差较大,容易导致收敛 速度较慢的问题。 3.自然策略梯度(naturalpolicygradient) REINFORCE使用欧几里得距离来更新参数的方向,这意味着所有参数的维度对所 得到的策略均具有较大影响。在更新策略时,使用策略梯度方法的一个主要原因是可以 通过小幅度调整参数来稳定地改变策略,然而对策略参数的小幅度调整可能会造成策略 的大幅度改变。为了能够使策略更新过程相对稳定,就需要分布π(at|st,θ )保持相对稳 定,在每次更新后分布不会产生较大变化。这就是自然策略梯度方法的核心思想。 每次迭代后对参数θ 进行更新,策略π(at|st,θ )自然也随之改变。策略分布在更新 前后存在一定差异。在自然梯度法中使用KullbackLeibler(KL)散度来测量当前策略下 的路径分布与更新的策略下路径分布之间的距离。KL散度是两个随机分布距离的度 量,记为DKL(p||q)。它衡量两个分布p 和q 的相似程度。Fisher信息矩阵可以用来近 似当前策略下的路径分布p(h|θ )和更新θ 至θ +Δθ 后策略下的路径分布p(h|θ +Δθ ) 之间的距离(Δθ 非常小),将Fisher信息矩阵用Fθ 来表示 KL[p(h|θ )||p(h|θ+Δθ )]≈ Δθ TFθΔθ Fθ =∫p(h|θ ) Δθlogp(h|θ ) Δθlogp(h|θ )Tdh 与传统策略梯度更新ΔθJ(θ )类似,自然梯度也更新策略参数,使得策略更新前与更新后 的路径分布之间的KL散度不大于ε: KL[p(h|θ )||p(h|θ+Δθ )]≤ε 其中ε 很小,趋于0。也就是说自然梯度策略方法可以保证策略参数得到最大程度的改 变时,策略更新前后的路径分布只发生微小的变化,从而保证策略更新过程相对稳定。我 ·72·