ChatGPT第二弹:PPO算法

开通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)组,大四本科生,师从张伟男教授。研究方向为对话式推荐系统。

THE END
1.深度强化学习离线强化学习(OfflineReinforcementLearnin应用场景:在线强化学习适用于那些需要实时决策和快速适应环境变化的任务,比如机器人控制、自动驾驶等。 离线强化学习更侧重于利用预先收集好的数据进行策略学习,而在线强化学习则更侧重于通过与环境的交互实时地学习和优化策略。https://blog.csdn.net/qq_40718185/article/details/139231769
2.机器学习——强化学习与深度强化学习腾讯云开发者社区近年来,强化学习(Reinforcement Learning, RL)在多个领域取得了巨大的进展。从早期简单的迷宫导航问题到今天 AlphaGo 击败围棋世界冠军,强化学习的潜力得到了充分展现。而随着深度学习的引入,深度强化学习(Deep Reinforcement Learning, DRL)更是将这一技术推向了前所未有的高度。本篇文章将深入探讨强化学习与深度强化学习https://cloud.tencent.com/developer/article/2455966
3.在对齐AI时,为什么在线方法总是优于离线方法?根据人类反馈的强化学习(RLHF)随着大型语言模型(LLM)发展而日渐成为一种用于 AI 对齐的常用框架。不过近段时间,直接偏好优化(DPO)等离线方法异军突起 —— 无需主动式的在线交互,使用离线数据集就能直接对齐 LLM。这类方法的效率很高,也已经得到实证研究的证明。但这也引出了一个关键问题: https://m.thepaper.cn/newsDetail_forward_27434433
4.强化学习的基本概念在线学习和离线学习针对的是在强化学习模型在训练过程中交互数据的使用方式。在线学习的强化学习模型,会在一个交互之后,立即用本次交互得到的经验进行训练。而离线学习的强化学习模型,往往是先将多个交互的经验存储起来,然后在学习的时候,从存储的经验中取出一批交互经验来学习。 https://www.jianshu.com/p/28625d3a60e6
5.机器学习中在线学习批量学习迁移学习主动学习的区别电子decremental learning递减学习,即抛弃“价值最低”的保留的训练样本。这两个概念在incremental and decremental svm这篇论文里面可以看到具体的操作过程。 七、在线学习与离线学习offline learning and online learning. In offline learning, the whole training data must be available at the time of model training. http://eetrend.com/node/100016949
6.离线强化学习因此,离线强化学习(offline reinforcement learning)的目标是,在智能体不和环境交互的情况下,仅从已经收集好的确定的数据集中,通过强化学习算法得到比较好的策略。离线强化学习和在线策略算法、离线策略算法的区别如图 18-1 所示。图18-1 离线强化学习和在线策略算法、离线策略算法的区别https://hrl.boyuai.com/chapter/3/%E7%A6%BB%E7%BA%BF%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/
7.AIR学术李升波:将强化学习用于自动驾驶:技术挑战与发展趋势或使用模型,或使用预先采集的数据,先离线训练一个最优策略,然后部署到自动驾驶汽车,实现在线控制应用。第二,同时训练和应用策略,即SOTI方法:这是利用强化学习的探索试错机制,通过在线探索环境产生数据,实现自动驾驶策略的在线自我更新。这类方法要求强化学习算法必须进行在线部署,从而进行在线地探索和在线地训练。https://air.tsinghua.edu.cn/info/1008/1323.htm
8.仙启仙启,面向行业专家、企业及研发运营人员的智能决策开发平台。通过数据驱动环境虚拟技术,将复杂的决策过程梳理成可操作的业务流程,并依托云计算资源和深度强化学习算法库,为用户提供智能决策全流程一站式服务.https://www.revive.cn/
9.泰语学习App排行榜华为手机泰语学习app推荐莱特葡萄牙语学习背单词软件在你的葡萄牙语学习路上一路相随,贴心定制,一对一服务,随时了解自己的学习进度,解决学习中出现的任何问题,不受时间和空间的限制。学习进度时刻跟进,轻松了解自己的学习情况,省心省力,同时也可以轻松的显示出学习复习进度,便于及时复习强化,学习进度在手,学习计划制定好,葡萄牙语学习不再发愁https://www.diandian.com/phb/1491/
10.叶志豪:介绍强化学习及其在NLP上的应用分享总结雷峰网基于价值函数的强化学习,它先通过对现状进行一个价值函数的估计,进而去提升策略,估计这个策略,再重复循环,再估计当前策略下的函数,再用当前价值函数来提升它的策略,两步,第一步估计价值函数,第二步是提升它的策略,这两步一直循环。 基于值的函数分为在线学习和离线学习两种方式,在线学习的代表学习方法是 Sarsa,离线https://www.leiphone.com/news/201807/sbyafpzV4BgvjLT1.html
11.人工智能一大技术:强化学习(RL)强化学习主要由智能体(Agent)、环境(Environment)、状态(State)和动作(Action)、奖励(Reward)组成。智能体将在环境的当前状态下,根据奖励信号做出动作,从而达到环境中的不同状态并得到奖励。https://www.51cto.com/article/636565.html
12.基于深度强化学习的水面无人艇路径跟踪方法6.针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种基于深度强化学习的水面无人艇路径跟踪方法,无需进行环境和无人艇运动建模并且具备自适应能力,从而能够进一步提高无人艇路径跟踪控制的稳定性和准确性。 7.为了解决上述技术问题,本发明采用了如下的技术方案: https://www.xjishu.com/zhuanli/54/202210772926.html/