一种基于PPO算法的强化学习方法及其应用与流程
未命名
07-23
阅读:196
评论:0
一种基于ppo算法的强化学习方法及其应用技术领域:
:1.本发明属于深度学习
技术领域:
:,具体涉及一种基于ppo算法的强化学习方法及其应用。
背景技术:
::2.我国许多地区的池塘、小型河流、人工湖泊等水域,其表面漂浮着众多水面垃圾,每年都要花费大量的人力去清理。而目前的无人机清理水面机器因工作在水面,视野受限,其寻找水面垃圾的能力较差,工作效率较低。3.随着民用无人机技术的不断发展,民用无人机用途越来越广泛、能够在各个领域发挥的作用也越来越大。而无人机所具备的广阔视野的优势正式目前的水面清理机器所缺失的。因此,将无人机和无人船相结合,使其能够协同工作,可以在较大程度上提高工作效率。4.而强化学习技术对于可以描述成或转化成序列决策问题的问题,可以通过对状态、动作、奖赏进行定义来获取最优解,达到高效的水上目标捕获策略。因此我们需要结合基于ppo算法的强化学习的特征,考虑无人集群使用需求,针对性的设计可用于无人机与无人艇集群对于水上目标最高效率捕获的技术方案,实现适用于无人艇加无人机集群的协同处理。技术实现要素:5.为了解决上述现有技术存在的问题,本技术提出一种基于ppo算法的强化学习方法及其应用,包括以下步骤:6.对连续型动作的输出进行处理;7.对网络参数进行更新。8.进一步的,对连续型动作的输出进行处理包括以下步骤:9.将目标策略和行为策略分开;10.离线更新策略。11.进一步的,行为策略是复用先前学习到的策略。12.进一步的,行为策略是模仿学习人类策略。13.进一步的,离线更新策略具体包括以下步骤:14.给误差乘以一个重要性权重;15.获得目标函数。16.进一步的,误差的表达式为:17.δ(t)=rt+1+γv(st+1)-v(st)。18.进一步的,所述重要性权重为某动作行为在目标策略中出现的概率除以所述动作行为出现在行为策略中出现的概率,具体如下公式:[0019][0020]进一步的,目标函数通过将目标策略和行为策略从在线策略转换成离散策略,具体如下公式:[0021][0022]进一步的,还使用离策略更新技术,具体如下公式:[0023][0024]上述基于ppo算法的强化学习方法应用于协同水上目标捕获。[0025]本发明与现有技术相比,其有益效果在于:[0026]本发明提出的基于ppo算法的强化学习方法应用于协同水上目标捕获时,可以向无人艇集群提供最优水上目标捕获的策略与方案;同时利用强化学习的试错机制,对无人艇集群的每步动作进行奖励或惩罚处理,使动作可以量化,保证捕获方案的可靠性、最优性和可进化性。附图说明[0027]图1为本发明分布q(x)在某点采样之于分布p(x)在某点采样的示意图。具体实施方式[0028]为使本领域技术人员能够更好的理解本发明的技术方案,下面对本发明做进一步的说明。[0029]1、本技术的总体框架[0030]强化学习场景设计的关键影响因素包括状态空间设计、奖励设计、算法选择与超参探索等。[0031]此外,由于强化学习涉及大规模的数据采集与训练支撑,还需要考虑强化学习环境的分布式实时数据采集能力与大规模并行计算能力的部署架构设计与准备。[0032](1)状态空间设计[0033]在一个强化学习场景中,状态信息代表了智能体(agent)所感知到的环境信息,以及因自身的行为(action)带来的变化。状态信息是agent制定决策和评估其长期收益的依据,而状态设计的好坏直接决定了强化学习算法能否收敛、收敛速度以及最终性能,是一个强化学习场景开发过程中的关键设计因素之一。[0034]通常在一些公共平台,如gym,大部分实验的状态空间都是现成的,可以评估谁的算法收敛快、性能好;然而,在实际项目中,状态空间设计工作需要进行专门的设计,增加一个优秀的新状态信息所带来的性能提升明显高于其他方面的工作(如调参),状态空间的优化工作会贯彻整个项目始终。[0035]虽然状态空间的设计等同于特征工程(featureengineering),可以把所有原始信息一股脑堆砌起来,让神经网络自动去挑选其中有用的成分并学习它们与决策间的相关性,也就是深度强化学习。但是端到端的深度强化学习需要耗费非常大的资源,即使经过大量训练神经网络能够最终提取到有用信息,因为训练时间的延长也会导致算法实用性的下降。同时,一些不相关的干扰信息还可能起到反作用。[0036]因此,要想在可控时间内训练得到比较好的策略(policy),的确需要人为筛选出一些好的状态信息,既可以是原始信息(rawinformation),也可以是经过二次加工的信息,来帮助神经网络更轻松准确地建立起决策相关性,这就是状态空间设计。[0037](2)奖励设计[0038]奖励函数(reward)设计在深度强化学习应用中是极其重要的一环,通过将任务目标具体化和数值化,reward就如同一种特殊语言,实现了目标与算法之间的沟通,算法工作者在这里面承担了翻译的角色,翻译的好坏体现了其对任务逻辑的理解深度,决定了agent最终是否能学到期望的技能,并直接影响算法的收敛速度和最终性能。深度强化学习算法中reward负责引导神经网络挖掘状态信息中的决策相关因素并经过提炼后用于action的计算生成。[0039]奖励设计需要结合场景的实际情况进行设计,通常奖励回报是非常稀疏的,比如防空任务中,击落敌方导弹是最终的奖励,过程中我们也需要设计其他的奖励来引导智能体形成有效的policy,对于敌方有一颗导弹袭来和两颗导弹袭来这两个场景,从想定角度看差别非常小,就是多了一个导弹元素,但是对于防空体系作战的奖励设计来讲,面对两颗导弹,在什么状态下聚焦先击落哪个导弹,可能需要有面对一颗导弹差别很大的奖励设计才能实现更好的训练效果和收敛速度,进而影响前面提到的状态空间设计。[0040](3)算法的选择与调参优化[0041]强化学习有很多种算法,不同算法面对不同的算法效果有很大的差异,需要探索合适的算法和合适的超参,这需要算法工程师反复的尝试,会占用大量的时间。[0042]本项目所用的强化学习平台提供自动强化学习能力,自动选择算法、自动探索超参,可以大量节约算法工程师的精力,去进行状态空间、奖励设计,从而大幅提高强化学习场景落地效率。[0043]2、本技术的技术方案[0044]ppo算法是基于actor-critic框架的,但是它又含有强烈的policygradient的风格,因此先介绍actor-critic算法。[0045]actor-critic两部分,其中actor网络即输出策略函数,负责选择动作action并与环境交互;critic网络类似于策略梯度中的轨迹回报r(τ),用价值函数评估actor的表现,即每个动作的分数,actor根据critic的评价修改选择下一动作的概率。[0046]因此actor-critic框架需要有两组近似,第一组是策略函数的近似:[0047]πθ(s,a)=p(a|s,θ)≈π(a|s)[0048]另一组是价值函数的近似,状态价值函数和动作价值函数分别是:[0049][0050][0051]在蒙特卡洛策略梯度reinforce算法中,其策略的参数更新方式为:其中vt由蒙特卡洛方法得到,但是该方法需要经历完整的episode过程并达到最终状态才能回溯计算收获值。这种回合值更新的学习效率比较低下,因此希望在每个单步step都进行更新。在critic中我们使用一个输入为状态s,输出为每个动作的价值或最优动作的价值的q网络,通过q网络计算状态的最优价值vt,并得到反馈以及新的状态,以此更新q网络参数ω。critic会使用新的网络参数ω为actor计算状态的最优价值vt。[0052]对于critic的评估点,除了选择策略梯度中的状态价值vt以外,还可以用使用td误差。需要注意的是,critic网络是评估动作,但是预估的是状态价值v,而不是行为价值q值呢。假设直接使用神经网络估算q值作为更新值,那么使用q值作为策略梯度的带权重方法更新策略,会陷入“正数陷阱”。因为软中是一个正数,那么就会提高选择该动作的概率,因此可能会存在更好的动作没有被采样到的情况。因此,需要在q值上减去一个基线,也就是状态价值v(q值的期望),权重就有正有负了。因此td误差的表达式为:[0053]δ(t)=rt+1+γv(st+1)-v(st)[0054]则actor的策略函数参数更新公式为:[0055][0056]其算法流程如下:[0057][0058][0059]处理连续动作[0060]ppo算法既能处离散动作,又能处理连续动作。在离散动作场景下,动作是可数的,比如在cartpole例子中,离散动作0表示向左走、离散动作1表示向右走,每个动作都有对应的概率值,随机进行抽取,获取一个随机性策略。[0061]而在连续动作场景中,输入的是某一个浮点类型的动作。比如对于车辆价值而言,不是简单的通过上下左右四个离散动作来控制的,方向盘需要转多少度、油门需要踩多少、刹车需要踩多少等等,都是连续动作。[0062]在dqn算法中,状态行为价值函数q本质上是一个q-table,将状态下选择的每个动作所产生的价值都分布到一张大表中。可以把连续型动作也进行类似的处理:将连续型概率切分成很多个小份,每一个小份的数值就代表动作的概率,这其实是一种穷举的思想。在连续型动作中,使用函数来代替数组,如策略分布函数p=(action)表示在该策略下选择某一行为动作的概率为p。[0063]但是在引入深度神经网络时,网络输出的的策略一个固定格式,并不是连续的。因此可以用分布的方式去表示连续型的概率。先假设策略分布函数服从一个可以用有限个参数所表示的特殊的分布,比如正态分布可以用μ,σ这两个参数来表示:μ是分布图像的中心轴,表示平均值,影响图像左右移动;σ表示方差,σ越大图像越扁平,σ越小图像越高瘦。这样神经网络的输出是两个参数,根据这两个参数,就可以获得该策略的概率密度函数。只要按照概率选取一个动作,就可以在整个概率密度函数中抽样出来即可。[0064]ppo算法是off-policy的,将目标策略和行为策略分开,智能体已有的是目标策略,但是不针对这个策略进行采样,而行为策略上进行采样,进行更新价值函数。行为策略可以是复用先前学习到的策略,可以是模仿学习人类策略等一些较为优化成熟的策略。这样,可以在保持探索的同时,更能求到全局最优值。比如在智能体与环境交互时为交互数据做上版本标记,在使用新版本数据进行策略优化时,老版本数据的同样是可用的。[0065]需要注意的是,on-policy只在一个策略上进行采样,不能使用其他策略。假设在状态s下可以选择a1和a2两个动作,现在有策略π:选择两种动作的概率都是0.5;策略μ:0.1的概率选择a1、0.9的概率选择a2。那么在策略μ上进行采样得到的数据,是不可以用来更新策略π的。这是因为在on-policy如策略梯度算法中,会将td误差作为权重去更新策略,更新幅度与权重大小成正比。策略μ所产出的数据中动作a1的td误差比动作a2要大,但是出现的概率远小于a2,因此会是策略π的中动作a2的概率也变大了。而在off-policy算法,如dqn则可以多次重复使用数据,这是因为dqn并不是优化策略,而是去更新q值,在某一动作后,可能会达到不同的状态,但是概率并不是由策略决定的,而是从环境中得到的,所以所产生的数据和策略不相关。并且在dqn是“有目标”的更新,会向目标靠近并逐渐收敛;而策略梯度算法的是不断远离原来的策略分布,远离多少以及远离次数的比例需要把控好。[0066]ppo算法是通过重要性采样来实现离线更新策略,要想用策略μ来更新策略π,需要给td误差乘以一个重要性权重importanceweight:[0067]重要性权重:[0068]也就是说在ppo算法中,用行为a在目标策略中出现的概率除以这个动作出现在行为策略中出现的概率。以上面的策略π和策略μ为例,可以计算出:[0069]策略π策略μ重要性权重td误差带权重的td误差a10.50.15.001.57.5a20.50.90.561.00.56[0070]在将td误差乘以重要性权重后,α1的td误差大幅度提升,α2的误差减少,这是即使用策略μ去更新策略π,动作α1提升的概率会变大。但是要注意重要性采样的公式表示如下:[0071][0072]需要注意的是,重要性采样所使用的行为策略分布π(x)与目标策略分布μ(x)要求相差不大,如果二者分布相差较远,就需要非常多次的采样才能得到近似的结果。[0073]很显然,在x服从分布p(x)时,f(x)的期望为负,此时我们从q(x)中来采样少数的x,那么我们采样到的x很有可能都分布在右半部分,此时f(x)大于0,我们很容易得到f(x)的期望为正的结论,这就会出现问题,因此需要进行大量的采样。结合图1可以看出,实际上只是做了一个技巧,通过两个采样的概率密度比值来明确分布q(x)在某点采样之于分布p(x)在某点采样的参考程度,将f(x)对于分布p(x)的期望值转化为相对于另一个分布q(x)的期望值,即在已知分布q(x)各点采样值时,通过各采样点的重要性权重p(x)/q(x)是可以还原出分布p(x)在该点的采样值,因此可以将策略q下的采样数据用于策略p的训练。[0074]在ppo算法中应用了重要性采样方法,可以使用行为策略获取的数据更新目标策略,从而将actor-critic框架从在线策略转换成离散策略。得到目标函数为:[0075][0076]由于以上近似的原因,实际上所使用的异步策略与原策略之间的差距不应过大,否则会方法则不适用。因此,对于距离约束后便得到ppo算法。[0077]ppo算法流程[0078]ppo算法除了对连续型动作的输出进行处理并引入重要性采样,还使用n-step更新技术,实际上对td(0)算法进行引申得到td(n)算法。实际上只要我们计算最后的状态价值v(s′),根据这个估算的v(s′)就可以反推所有经历过的状态的价值。与策略梯度算法中对收获值进行估算不同的是,并不需要经历完整的episode,而是在中途进行终端,并用神经网络进行估算。[0079]在ppo算法中,使用参数n表示并行运行的actor格式,并设置截断长度t,每次对网络参数进行更新的过程中,所有的actor共产生nt各数据。对这些数据进行epochs为k,batchsize为m的网络更新。[0080]其算法为代码如下:[0081][0082][0083]综上,仅为本发明之较佳实施例,不以此限定本发明的保护范围,凡依本发明专利范围及说明书内容所作的等效变化与修饰,皆为本发明专利涵盖的范围之内。当前第1页12当前第1页12
技术特征:
1.一种基于ppo算法的强化学习方法,其特征在于,包括以下步骤:对连续型动作的输出进行处理;对网络参数进行更新。2.根据权利要求1所述的一种基于ppo算法的强化学习方法,其特征在于,对连续型动作的输出进行处理包括以下步骤:将目标策略和行为策略分开;离线更新策略。3.根据权利要求2所述的一种基于ppo算法的强化学习方法,其特征在于:行为策略是复用先前学习到的策略。4.根据权利要求2所述的一种基于ppo算法的强化学习方法,其特征在于:行为策略是模仿学习人类策略。5.根据权利要求2所述的一种基于ppo算法的强化学习方法,其特征在于,离线更新策略具体包括以下步骤:给误差乘以一个重要性权重;获得目标函数。6.根据权利要求5所述的一种基于ppo算法的强化学习方法,其特征在于,误差的表达式为:δ(t)=r
t+1
+γv(s
t+1
)-v(s
t
)。7.根据权利要求6所述的一种基于ppo算法的强化学习方法,其特征在于,所述重要性权重为某动作行为在目标策略中出现的概率除以所述动作行为出现在行为策略中出现的概率,具体如下公式:8.根据权利要求6所述的一种基于ppo算法的强化学习方法,其特征在于,目标函数通过将目标策略和行为策略从在线策略转换成离散策略,具体如下公式:9.根据权利要求1所述的一种基于ppo算法的强化学习方法,其特征在于,还使用离策略更新技术,具体如下公式:10.一种如权利要求1-9任意一项所述的基于ppo算法的强化学习方法,其特征在于:所述基于ppo算法的强化学习方法应用于协同水上目标捕获。
技术总结
本发明提出了一种基于PPO算法的强化学习方法,包括以下步骤:对连续型动作的输出进行处理;对网络参数进行更新。本发明应用于协同水上目标捕获时,可以向无人艇集群提供最优水上目标捕获的策略与方案;同时利用强化学习的试错机制,对无人艇集群的每步动作进行奖励或惩罚处理,使动作可以量化,保证捕获方案的可靠性、最优性和可进化性。最优性和可进化性。最优性和可进化性。
技术研发人员:赵亮 何晓 顾启佳 王博 田思佳
受保护的技术使用者:中国船舶集团有限公司系统工程研究院
技术研发日:2022.12.23
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种微量蛋白检测方法 下一篇:一种铜杆连铸连轧生产线废弃氧化铜颗粒的处理方法与流程
