浙江科技学院学报

一般的PPO算法在学习效率和收敛性上表现得不够理想,为此本研究提出一种改进的PPO算法:首先将泛化优势估计(generalizeddominanceestimation,GAE)作为优势函数来估计优势;然后参考文献[13]在actor网络结构中选取网络参数θ的损失函数,参考文献[14]在参数θ的更新过程中选取对相对熵(Kullback-Leibler,KL)散度项的限制,以此来更新参数θ,再参考文献[14]在critic网络结构中选取网络参数Φ的损失函数;最后提出一种新的主副网络参数更新方式。为验证算法的效果,我们在OpenAIgym模块的经典控制环境及复杂的mujoco环境中进行了仿真试验。

图1强化学习的过程Fig.1Processofreinforcementlearning

在强化学习过程中,状态到行为的映射关系可称之为策略[17],指在各个状态下智能体所采取的行为或行为概率。值函数是强化学习算法中最基础的评价指标,这个指标反映算法的优劣,它是智能体在给定的状态和最优策略下采取某个动作或行为时的优劣程度。值函数[18]主要分两种:一种为状态值函数Vπ(s),是从状态s开始,按照某种策略行为产生的长期回报期望;另一种为状态动作值函数Qπ(s,a),是在状态s和策略π下,采取动作a,按照某种策略行为产生的长期回报期望。

优势函数指智能体在状态s下,采取动作a时,其相应动作下产生的平均优势,从数量关系来看,就是随机变量相对均值的偏差,是将状态行为值函数归一化到值函数的基线上。这样有助于提高智能体学习的效率,减小方差及避免方差过大带来的过拟合。本研究采取了GAE作为优势函数的估计方式,其作用是能够平衡偏差和误差给价值函数及回报带来的影响。优势函数的表达式如下:

式(1)~(2)中:δt为时序差分误差,是每一时刻的现实值与估计值之间的差距;λ为超参数,用于调节方差与偏差之间的平衡,当λ=0时,就是计算时序差分误差;当λ=0时,就变成了蒙特卡罗[19]目标值和价值估计之间的差。

本研究选取变量β来控制约束项和目标项之间的权重关系,将KL散度作为目标函数的惩罚项,其目标函数也称为actor网络的损失函数,表达式如下:

式(3)中:(πθ(at|st))/(πθold(at|st))为新老策略概率的比例;θold为策略未更新前的参数;yKL(πθold(·|st),πθ(·|st))为KL散度项,表示新老策略之间的差距,主要是限制新老策略的更新幅度。

用来更新critic网络参数Φ的损失函数

本研究根据A3C算法及在DPPO算法中用多线程训练智能体[14]的方式,将单线程的PPO算法改成了多线程的PPO算法。DPPO算法与PPO算法的网络结构都是基于actor及critic结构,与A3C算法均有两套网络结构,即主副网络。其中副网络相当于主网络的参数,但主副网络的参数更新方式不同。在此基础上,本研究提出了一种新的主副网络参数更新方式。

由A3C算法原理可知,其工作原理就是将AC算法放到多线程中进行同步训练,其主副网络的参数更新方式是:1)各个线程均采用一个CPU(核)参与训练;2)各个线程将主网络的参数复制过来与环境交互;3)交互之后各个线程均会计算出各自的梯度,并将其推送给主网络,用来更新主网络的参数;4)参数更新后,主网络再将其推送回副网络(各个线程)。如此循环。

而对于DPPO算法,其主副网络参数更新方式是:1)将各个线程推送到不同的环境中(环境的个数取决于电脑CPU核的个数),主网络会控制各个线程在各自的环境中去收集数据(数据是由智能体训练时产生的);2)分别对actor与critic中的网络参数θ和Φ求梯度;3)把这些梯度传送到主网络中,主网络会对所有线程推送过来的梯度求平均后,更新主网络的参数;4)将更新后的参数推送回各个线程。如此循环。

图2改进的PPO算法主网络运行程序流程图Fig.2FlowchartofprimarynetworkrunningprogramofimprovedPPOalgorithm

图3改进的PPO算法副网络运行程序流程图Fig.3FlowchartofsecondarynetworkrunningprogramofimprovedPPOalgorithm

图4“Pendulum-v0”Fig.4“Pendulum-v0”

图5“Ant-v3”Fig.5“Ant-v3”

图6“Hopper-v3”Fig.6“Hopper-v3”

本研究利用Python下深度学习框架tensorflow进行编程,利用多线程来把单线程变成了多线程和队列来存放单线程收集的数据。运行硬件环境为处理器Intel(R)Core(TM)i5-1035G1CPU(8核),显卡AMDRadeon(TM)630及Intel(R)UHDGraphics。

将改进的PPO算法及PPO算法在gym试验环境中进行测试。其中经典控制环境中“Pendulum-v0”仿真试验为试验一;复杂的mujoco环境中“Ant-v3”“Hopper-v3”分别为试验二和试验三。其中训练过程中相同参数设置如下:actor的学习率为0.0001,critic的学习率为0.0002,λ为0.98,γ为0.9,β为0.5,yKLtarget值为0.01。

图7“Pendulum-v0”仿真结果Fig.7“Pendulum-v0”simulationresult

图8“Ant-v3”仿真结果Fig.8“Ant-v3”simulationresult

图9“Hopper-v3”仿真结果Fig.9“Hopper-v3”simulationresult

强化学习是一类重要的机器学习方法。为提升强化学习的算法效率,我们提出了一种改进的近端策略优化(PPO)算法:在更新网络参数θ的损失函数中的散度项上加了限制,优损失函数;采取泛化优势估计作为优势函数的估计方式,平衡了偏差和误差给价值函数及回报带来的影响;采用多线程的方式,加快了训练的效率;在主副网络的参数更新方式上做了调整改进。改进的PPO算法与PPO算法均在gym环境中进行了仿真对比测试,结果表明改进的PPO算法会使智能体更快地学到经验,获得更多的奖励,且训练过程中收敛性更好。

THE END
1.强化学习的主流算法:从基础到实践强化学习的主要应用场景包括机器人控制、游戏AI、自动驾驶、推荐系统等。随着数据量的增加和计算能力的提升,强化学习在近年来取得了显著的进展。本文将从基础到实践的角度介绍强化学习的主流算法,包括值函数方法(Value-based methods)、策略梯度方法(Policy-gradient methods)和模型基于方法(Model-based methods)。 https://blog.csdn.net/universsky2015/article/details/137307363
2.强化学习详解:理论基础与核心算法解析本文详细介绍了强化学习的基础知识和基本算法,包括动态规划、蒙特卡洛方法和时序差分学习,解析了其核心概念、算法步骤及实现细节。 关注作者,复旦AI博士,分享AI领域全维度知识与研究。拥有10+年AI领域研究经验、复旦机器人智能实验室成员,国家级大学生赛事评审专家,发表多篇SCI核心期刊学术论文,上亿营收AI产品研发负责人。https://www.jianshu.com/p/09c44358b4a6
3.强化学习算法.pptx策略迭代算法强化学习算法 策略迭代算法策略迭代算法简介1.策略迭代算法是强化学习中的一种重要方法,通过迭代优化策略来获取最优解。2.该算法包括两个主要步骤:策略评估和策略改进,通过不断交替执行这两个步骤来逐步优化策略。3.策略迭代算法具有收敛性,可以证明在一定条件下可以收敛到最优策略。策略评估1.策略评估是指https://max.book118.com/html/2023/1220/7024023032006021.shtm
4.强化学习算法(精选五篇)关键词:生产调度,强化学习,遗传算法 1 强化学习概念及模型 强化学习技术是从控制论、统计学、心理学等相关学科发展而来的,有着相当长的历史,但到目前强化学习技术才在人工智能、机器学习中得到广泛研究,由于强化学习具有无导师的自适应能力,因而被认为是设计智能体的核心技术之一。智能体为适应环境的学习过程应有如下https://www.360wenmi.com/f/cnkey71spb70.html
5.强化学习算法与应用综述摘要:强化学习是机器学习领域的研究热点, 是考察智能体与环境的相互作用, 做出序列决策、优化策略并最大化累积回报的过程. 强化学习具有巨大的研究价值和应用潜力, 是实现通用人工智能的关键步骤. 本文综述了强化学习算法与应用的研究进展和发展动态, 首先介绍强化学习的基本原理, 包括马尔可夫决策过程、价值函数、探索-https://c-s-a.org.cn/html/2020/12/7701.html
6.深度强化学习数据预处理深度强化算法DQN,即深度Q网络(Deep Q-network),是指基于深度学习的Q-Learing算法。 回顾一下Q-Learing:强化学习——Q-Learning算法原理 Q-Learing算法维护一个Q-table,使用表格存储每个状态s下采取动作a获得的奖励,即状态-价值函数Q(s,a),这种算法存在很大的局限性。在现实中很多情况下,强化学习任务所面临的状态空间是连续的https://blog.51cto.com/u_16099241/10763517
7.多智能体强化学习(一)IQLVDNQMIXQTRAN算法详解简介:多智能体强化学习(一) IQL、VDN、QMIX、QTRAN算法详解 ?一个完全合作式的多智能体任务(我们有n个智能体,这n个智能体需要相互配合以获取最大奖励)可以描述为去中心化的部分可观测马尔可夫决策模型(Dec-POMDP),通常用一个元组G GG来表示: IQL https://developer.aliyun.com/article/1296845
8.TensorFlow机器学习常用算法解析和入门上图为基于ICA的人脸识别模型。实际上这些机器学习算法并不是全都像想象中一样复杂,有些还和高中数学紧密相关。 后面讲给大家一一详细单独讲解这些常用算法。 强化学习 13)Q-Learning算法 Q-learning要解决的是这样的问题:一个能感知环境的自治agent,怎样通过学习选择能达到其目标的最优动作。 https://www.w3cschool.cn/tensorflow/tensorflow-s8uq24ti.html
9.人民网三评“短视频之困”:弊端日显恶性竞争,应强化担当完善算法,强化担当 子川 在数字化时代,互联网公司拥有巨大的能量,既可以推动社会各项事业发展,也可能带来一系列挑战,其动能愈强,则愈需筑牢责任之堤坝。 当前,受短视频行业发展红利吸引,互联网公司纷纷挤入赛道。事实上,在经历了多年爆发式增长后,短视频行业市场规模的增速已开始呈现放缓迹象。未来,短视频行业要稳居可https://www.thepaper.cn/newsDetail_forward_27433944
10.科学网—[转载]强化学习在资源优化领域的应用基于这种行业趋势,本文针对强化学习算法在资源优化领域的应用展开调研,帮助读者了解该领域最新的进展,学习如何利用数据驱动的方式解决资源优化问题。鉴于资源优化问题场景众多、设定繁杂,划分出3类应用广泛的资源优化问题,即资源平衡问题、资源分配问题、装箱问题,集中进行调研。在每个领域阐述问题的特性,并根据具体的问题特性https://blog.sciencenet.cn/blog-3472670-1312677.html
11.强化学习——价值迭代算法悬崖漫步为例C++saionjisekai强化学习——价值迭代算法 悬崖漫步为例 C++ #include<bits/stdc++.h> using namespace std; #define N 100 #define cliff cliff_map int row,col; struct State{ int next_i,next_j,flag; double reward; State(){ next_i=next_j=flag=0; reward=0; } }; double pi[N][N][4]; State P[N]https://www.cnblogs.com/saionjisekai/p/16664313.html
12.如何使用强化学习玩21点?腾讯云开发者社区本文将比较分析Monte-Carlo控制算法与时域差分控制算法在解21点(Blackjack)博弈中的应用。 我们注意到很少有文章详细解释Monte-Carlo方法,而只是直接跳到深度Q-learning应用程序。 在本文中,您将了解强化学习中无模型算法背后的动机和内部工作原理,同时应用它们来解决Blackjack。 https://cloud.tencent.com/developer/article/1673200
13.强化学习比传统的优化决策算法优势在什么地方?其实强化学习本质上属于启发式算法,只能找到局部最优,至于是不是全局最优,并不重要。https://www.zhihu.com/question/427723884
14.7个流行的强化学习算法及代码实现!目前流行的强化学习算法包括 Q-learning、SARSA、DDPG、A2C、PPO、DQN 和 TRPO。这些算法已被用于在游戏、机器人和决策制定等各种应用中,并且这些流行的算法还在不断发展和改进,本文我们将对其做一个简单的介绍。 1、Q-learning Q-learning:Q-learning 是一种无模型https://mp.weixin.qq.com/s?__biz=MzU0MzMxNDY5Ng==&mid=2247501617&idx=1&sn=98a530bc441767434d77e75d48265367&chksm=fb0fc156cc784840f8afe633ec50c7a548ed409386411eeaf69a8ef3ab12e2987ec1fa903165&scene=27