开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2023.02.07北京
在接下来的部分中,我们会在第二章中介绍强化学习的基础知识,第三章中介绍PPO算法论文并对其中的公式进行推导。
以下内容参考OpenAISpinningUp[5],其为OpenAI公开的一份关于深度强化学习的教育资源。
强化学习(ReinforcementLearning)是一个马尔科夫决策过程,可定义为五元组,其中为状态空间,为动作空间,是状态转移函数,是奖励函数,是初始状态分布。状态转移函数是一个到的映射,有,即状态采取动作后状态转移到的概率,又可以写为或者等;奖励函数是一个到实数域的映射,可以写作,但多数情况下会根据问题的实际定义简化为,表示状态下执行动作的奖励,也可以记为或其他。
须知:
关于Q、V值的定义和转换关系可以参考图2
图2Q、V值的定义和转换关系[6]
可以看到PPO算法是无模型的强化学习算法,属于策略优化类算法,并且是on-policy的。本节中我们将对这些概念进行介绍,让大家对PPO算法有一个更好的认识。这些概念一共可分为三组,分别是:
根据问题求解思路、方法的不同,我们可以将强化学习分为基于模型的强化学习(Model-basedRL)、无模型的强化学习(Model-freeRL),在这里“模型”的含义是对环境进行建模,具体而言,是否已知其知和,即和的取值。
如果有对环境的建模,那么智能体便可以在执行动作前得知状态转移的情况即和奖励,也就不需要实际执行动作收集这些数据。否则便需要进行采样,通过与环境的交互得到下一步的状态和奖励,然后仅依靠采样得到的数据更新策略。
上述是较为复杂的基于模型的强化学习算法,不考虑对环境的建模,基于模型的强化学习可以简单的使用动态规划求解,任务可定义为预测(prediction)和控制(control)。预测的输入是和策略,目的是评估当前策略的好坏,即求解状态价值函数。控制的输入是,目的是寻找最优策略和。
相比于基于模型的强化学习,无模型的强化学习方法更具有研究价值,也更复杂。我们首先介绍强化学习领域中存在已久的两大类方法:基于值的强化学习(Value-basedRL)和基于策略的强化学习(Policy-basedRL)。基于值的强化学习方法会学习并贪婪的选择值最大的动作,即。该方法往往得到确定性策略(DeterministicPolicy)。而基于策略的强化学习方法则对策略进行进行建模,直接对进行优化。该类方法一般得到随机性策略(StochasticPolicy)。
确定性策略是在任意状态下均选择最优动作,它是将状态空间映射到动作空间的函数。它本身没有随机性质,因此通常会结合-greedy或向动作值中加入高斯噪声的方法来增加策略的随机性。一般基于值的强化学习方法学习到的是确定性策略。随机性策略是在状态下按照一定概率分布选择动作。它本身带有随机性,获取动作时只需对概率分布进行采样即可。一般基于策略的强化学习方法学习到随机性策略。
需要注意的是,上文中提到的策略迭代、值迭代算法与此处基于值的强化学习方法、基于策略的强化学习方法并无对应关系,他们均是基于值函数来完成策略的更新,可以划入基于值的强化学习方法中。
我们最后简要介绍两种基于值的强化学习算法Q-Learning和SARSA(State-Action-Reward-Sate-Action)并以此为例说明on-policy和off-policy的强化学习。
我们称式(4)为行为策略(BehaviorPolicy),智能体遵循该策略选择动作与环境进行交互获取数据(奖励值、转移到的状态),与之相对的为目标策略(TargetPolicy),目标策略依赖行为策略获取的数据进行更新,更新也会同步到行为策略,目标策略是我们优化的对象,也是强化学习模型推断时使用的策略。式(5)即为目标策略的更新公式,其中来自于行为策咯,、来自于环境,而则取决于目标策略,SARSA算法的目标策略同样为-greedy,目标策略与行为策略保持一致,我们称SARSA是on-policy算法。Q-learning算法的目标策略是,目标策略与行为策略并不一致,我们说Q-learing是off-policy算法。
两者的伪代码如图4、图5所示。可以看到图4中来自于,而图5中A′来自于上一句代码中-greedy策略。
图6on-policyvsoff-policyvsofflineRL[8]
行为策略与目标策略的不一致有多种情况,Q-learning中选择-greedy作为行为策略目的是在数据获取过程中有一定的探索性,而在图6(b)中行为策略与目标策略的不一致在于行为策略会累积一定数据后更新目标策略,或者说目标策略的更新不会马上同步到行为策略中,此时行为策略是旧的目标策略。图(a)则是on-policy算法,图(c)是offline算法,可以看到仅有简单的数据收集->策略学习->模型部署过程。
在上文中,我们首先介绍了强化学习的定义与优化目标,并介绍了重要的两个值函数:状态值函数,状态动作值函数,无论是基于值或是基于策略的强化学习方法中他们均有着重要的作用。在第二节中我们首先简要介绍了基于模型的强化学习,分为预测和控制两种形式,学习控制其本质是为了寻找最优策略,而学习预测是为了对策略找到一种评价标准。在无模型的强化学习方法中,我们首先介绍了基于值的强化学习法方法,并以Q-learning和SARSA为例介绍了on-policy和off-policy。基于策略的强化学习方法的介绍,我们将通过阅读PPO论文进行。
图7强化学习示意图
3.PPO论文讲解
PPO算法的提出来自于论文《ProximalPolicyOptimizationAlgorithms》,该论文内容只有8页,首先回顾了策略梯度算法的发展,提出了两种形式的PPO算法,并比较了其他强化学习算法的效果。在本章我们首先跟随作者的思路,从最简单的策略梯度算法开始,然后拓展到TrustRegionPolicyOptimization(TRPO)算法,进一步得到PPO算法的两种形式:、,最后进行实验验证效果。不同于论文中仅给出公式的做法,我们补全了一些公式的推导过程,并对PPO算法的特点进行了一点讨论。
3.1策略梯度定理
“SometimesinRL,wedon’tneedtodescribehowgoodanactionisinanabolutesense,butonlyhowmuchbetteritisthanothersonaverage.Thatistosay,wewanttoknowtherelativeadvantageofthataction.Wemakethisconceptprecisewiththeadvantagefunction.”
该方法下,模型容易在一次轨迹中进行多步优化,这并不准确,因为一次优化后其轨迹信息理应再次采样,后续的实验中也会证明这一方法容易导致较大的策略迭代,并造成严重影响。
下面我们从基本定义开始推导。
策略梯度定理以轨迹的期望收益作为优化目标,即,为了推导方便,此处将会是有穷的、无折扣的累积奖励,但无穷的、有折扣情况下的推导也几乎完全相同。
在代码实现上与原来不同的仅仅只有轨迹生成后loss值的计算,loss值的计算需要(s,a)对的权重,原公式中权重均为轨迹的总收益,此处为(s,a)对之后总的奖励。
EGLP引理(ExpectedGrad-Log-ProbLemma)
显然
这一公式的来历我们参考了论文[10]。策略梯度算法对策略的更新均使用公式:。在这里更新步长非常重要,当步长不合适时,更新的参数所对应的策略是一个更不好的策略,当利用这个更不好的策略进行采样学习时,再次更新的参数会更差,因此很容易导致越学越差,最后崩溃。
在这一节中,我们使用表示策略对应的累积奖励函数,如果可以将新的策略所对应的奖励函数分解成旧的策略所对应的奖励函数加其他项。只要新策略所对应的其他项大于等于零,那么就能保证奖励函数单调不减。
现证明
我们定义
以此去掉时间序列求和操作。得到:
但由于近似误差和估计误差的存在,可能会存在一些状态不满足,即。
旧策略的状态分布代替新策略的状态分布
这个式子告诉我们:在一个很小的步伐上(相当于旧策略,或者说未更新的当前策略),若可以得到优化,那同样可以被优化。但这个公式并未给出一个合适的步长。
式(11)提供了一个思路,就是想办法在旧策略的邻域内去提升,但问题在于难以找到合适的值。为了解决这个问题,Kakada提出了一种叫ConservativePolicyIteration的算法,它给出了关于的下界。
定义,将新策略表示为当前策略和贪婪策略的混合:
接下来Kakada就推导出了不等式
记
作者在此给出了一个具有普适性的不等式
该不等式给了的下界,我们定义这个下界为,下面利用这个下界,我们证明策略的单调性:
且
重要性采样
对于
变换成
上式为CPI(ConservativePolicyIteration)算法的目标函数,正如其名,CPI算法使用了一种非常保守且复杂的方式对目标函数进行优化[12]。相比之下TPRO算法并未改变目标函数的形式,而是引入约束项,使用拉格朗日对偶法处理之后采用共轭梯度法进行优化,而PPO算法的改进之处同样是解决这一目标函数难以优化的问题:如何控制更新步伐,避免策略更新步伐过大导致效果下降、更新步伐太小导致训练速度缓慢的问题,即使TRPO算法,也仍然遗留了实现困难,求解过程计算量大的缺点。
我们首先来看PPO算法对此问题的第一种优化方式,将上述目标函数修改为如下形式:
下图也说明了CLIP相比于CPI区间范围更小。
算法涉及3个超参数:、、,但这三者的敏感性很低,调节并不是很麻烦。效果比CLIP要差,但是可作为一个baseline。采用SGD做一阶优化。
上一章中第三节介绍了基于TRPO的函数;第四节介绍了基于TRPO的函数。这一节开始介绍完整的PPO算法。PPO算法的完整目标函数:
论文随后给出PPO算法伪代码如下:
图16雅达利游戏中效果
陈一帆,就读于哈尔滨工业大学社会计算与信息检索研究中心,对话技术(DT)组,大四本科生,师从张伟男教授。研究方向为对话式推荐系统。