版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录行动者-评论家架构14.114.3
A3C算法的实验结果及分析14.2
A3C算法14.5
A2C算法的实验结果及分析14.4
A2C算法114.6
小结2在基于随机策略的AC(Actor-Critic,AC)框架深度强化学习系列方法中,一个最核心的算法是由Mnih等人提出的异步优势行动者评论家算法(AsynchronousAdvantageActorCirtic,A3C):该算法基于异步强化学习(AsynchronousReinforcementLearning,ARL)思想,在AC框架中加入异步操作,使多个AC网络异步并行地工作,加快算法运行速度,使深度强化学习算法能够在CPU上快速地运行。此外,A3C算法不再使用经验回放机制,节省了内存,实现了完全在线式的强化学习方式。引言(1)3优势AC算法(AdvantageActorCirtic,A2C):
但由于A3C采用了多个异步并行的网络结构,所以参数多,占用内存空间大。针对A3C算法存在的问题,提出了优势AC算法(AdvantageActorCirtic,A2C)算法,该算法不再使用异步并行的网络结构,只用一个AC网络,其异步并行结构只用于收集样本,每次样本收集完成后再进行更新网络。引言(2)14.1
行动者-评论家架构(1)行动者-评论家(Actor-Critic,AC)方法:
行动者-评论家方法是一类结合了值函数方法和策略梯度方法的学习方法。
如图14.1所示。表示策略函数的结构被称为行动者,其根据当前的环境状态信息来选择Agent所执行的动作。表示值函数的结构被称为评论家,其通过计算值函数来评价行动者选择动作的好与坏。4图14.1AC结构示意图14.1
行动者-评论家架构(2)右图中的TD误差表示的是当前状态的1-步回报或者n-步回报与其值函数之间的差值,TD误差的计算公式如下:(14.1)5其中::表示TD误差;:表示在状态根据策略采取动作所获得的立即奖赏;:表示在状态的期望回报值;
行动者-评论家TD方法误差:图14.1AC结构示意图14.1
行动者-评论家架构(3)当时表示1-步回报,
时表示k-步回报。TD误差可以用来评估当前正在被选择动作的好与坏。当TD误差为正时,表明未来选择动作的趋势应该加强;当TD误差为负时,表明未来选择动作的趋势应该减弱。假设动作产生于Gibbs软最大化方法:其中:,为正的步长参数。6
14.2
行动者-评论家架(4)AC算法是一种策略梯度算法,与值函数方法相比,AC方法在选择动作时所需的计算量相对较小。因为在值函数方法中,需要计算出当前状态下所有可能的动作的函数值,并且值函数方法无法用在连续动作空间任务中。AC方法的策略是明确的,行动者的动作选择仅通过策略参数直接选择,不需要计算当前状态下的所有行动的函数值。即使动作空间是连续的情况,AC算法在选择动作时也不需要在每次的选择动作时,在无穷的动作空间中做大量的计算。7AC算法具有的两个显著的优点:14.2
行动者-评论家架(5)AC算法通过对策略的直接更新对策略进行改进,该方式能使Agent学习到一个确定的随机策略。而值函数方法是通过状态-动作值函数来选择动作,Agent往往学习到的是确定策略。AC方法甚至可以用来解决非MDP问题。8目录行动者-评论家架构14.114.3
A3C算法的实验结果及分析14.2
A3C算法14.5
A2C算法的实验结果及分析14.4
A2C算法914.6
小结14.2
A3C算法(1)10深度Q网络方法的优势与缺陷:深度Q网络方法通过利用深度神经网络强大的特征识别能力,使强化学习算法在大规模状态空间任务、高维状态空间任务甚至连续动作空间控制任务中取得了令人瞩目的成果。深度Q网络方法将Agent与环境交互获得的数据存储在经验回放池中,每次通过选取一定小批量的数据进行更新。该方式可以打破数据之间的相关性,提升DQN算法的性能。经验重放机制需要更多的存储资源和计算资源,并且要求使用异策略算法。14.2
A3C算法(2)11A3C算法的引入:异步深度强化学习方法,如A3C,通过将异步方法引入深度强化学习方法中替代经验重放机制,利用多线程技术使多个模型同时训练,来打破数据间的相关性,提升算法的学习效果、学习速度和学习稳定性。Mnih等人提出的A3C算法,其核心思想在于:通过创建多个Agent,在多个环境实例中并行且异步地执行和学习。A3C算法中异步方法的引入使得同策略和异策略的强化学习算法均能用于深度强化学习中。14.2
A3C算法(3)12通过A3C架构,可以将1-步Sarsa、1-步Q-learning、n-步Q-learning等经典算法扩展为多线程异步学习算法。A3C算法能够运行在单个机器的多个CPU线程上,而不必使用参数服务器的分布式系统,这样就可以避免通信开销,也无需利用lock-free的高效数据同步方法。另外A3C算法既可以处理离散动作空间任务,又可以处理连续动作空间任务。由于算法采用并行异步方式,在学习过程中可以大幅度减少训练时间。14.2
A3C算法(4)1314.2.1A3C算法的核心思路:A3C算法利用异步方法,减少了算法对存储资源和计算资源的开销,同时加快了Agent的学习速度。尤其是在处理高维状态空间任务以及大规模状态空间任务时,使用异步方法的A3C算法相比于使用经验重放机制的深度强化学习算法,能够使Agent更快地获得较好的学习效果。14.2
A3C算法(5)141.A3C异步算法:DQN仅处理一个Agent与环境的交互信息。A3C在AC框架中加入了异步学习的机制,利用多个Agent与多个环境进行交互,使得训练时可以使用多线程的CPU,而不是只依赖于GPU来处理图像网络。A3C异步架构如图14.2所示,它主要由环境(Environment)、工作组(Worker)和全局网络(GlobalNetwork)组成。工作组代表不同线程的Agent,每个工作组对应一个独立的Agent,并拥有属于自己的网络模型,分别与一个独立的环境进行交互。14.2
A3C算法(6)15图14.2A3C异步架构图14.2
A3C算法(7)16A3C异步工作组:每个工作组的网络与全局网络都共用一个网络结构,每个网络有两个输出端,一个通过softmax输出随机策略,另一个通过线性函数输出状态值函数。图14.3A3C网络架构图14.2
A3C算法(8)17A3C算法工作流程:(1)初始化线程和网络:先初始化一个全局网络,包括一个策略网络和一个价值网络;然后再创建多个与全局网络相同的子线程,即工作组,然后将全局网络的参数拷贝到各个工作组中。在实际应用时,还会创建一个全局目标价值网络,用于构成工作组网络的双价值网络架构。(2)训练工作组网络:
每个工作组采用不同的策略,与独立的环境进行实时交互,产生不同的经验。利用这些经验,每个工作组计算各自网络的损失函数梯度和策略梯度,并更新相关梯度信息。14.2
A3C算法(9)18(3)更新全局网络:由于每个工作组训练的时间存在差异,所以通常可以设定,当有一个工作组优先完成训练时(假定它是最优工作组),就利用这个工作组的梯度信息,对全局网络的参数进行更新;同时,再将全局网络的参数拷贝至所有工作组中,以此保证所有工作组的网络参数都是最新的。同时,初始化所有工作组的梯度信息。(4)算法终止:
循环(2)(3)过程直到全局网络收敛,算法结束。14.2
A3C算法(10)初始化线程和网络训练工作组网络更新全局网络全局网络收敛不收敛算法终止收敛19图14.4A3C算法工作流程14.2
A3C算法(11)20A3C算法具有的优势:不同的工作组使用不同的探索策略,能够学习到不同的经验,保证了算法的有效探索性。通过并行的工作组采样到的经验,进行独立的训练学习,从而降低了样本的相关性,而无需采用经验回放机制。在达到同样的效果时,A3C比DQN更节省时间。14.2
A3C算法(12)212.价值网络-评论家:回顾DQN损失函数:(14.3)A3C引入优势函数思想,于是将目标Q值替换为目标V值:(14.4)该损失函数是基于Q-learning预测算法的,其缺点是过度考虑每一步环境的变化,使得算法学习速度较慢。在表格法算法中,介绍了一种n-步TD算法,它能够更好地模拟历史经验,降低方差,提高算法性能。14.2
A3C算法(13)22采用函数逼近方法,基于状态值函数的n-步回报
计算公式为:(14.5)A3C算法采用n-步回报,构建损失函数:(14.6)然后采用SGD更新价值网络参数
:(14.7)其中,n-步TD误差被替换为优势函数;为价值网络的学习步长。14.2
A3C算法(14)233.策略网络-行动者:策略网络使用n-步回报
替代动作值函数估计值,构建SPG方程如下所示:(14.8)然后使用SGA法更新行动者参数
:(14.9)其中,为策略网络学习步长。A3C引入优势函数能够更好地对动作值进行估计,减少评估策略梯度时的偏差。14.2
A3C算法(15)244.策略熵:在实际计算过程中,A3C将策略熵加入到目标函数中:
(14.10)其中,为温度参数。直观上,加上该正则项后目标函数更倾向于寻找熵更大的,即形状更为“扁平”的策略函数,增加了探索性,这样就不容易在训练过程中聚集到某一种策略(或者动作)上,也避免了容易收敛到次优解的问题。14.2
A3C算法(16)25在Atari2600,TORCS,MoJoCo等平台上做了一系列的实验,实验证明,在一些游戏中n-步方法比1-步方法学习速度更快。A3C还讨论了多线程方法的可扩展性,结果显示当工作线程增多时,算法可以获得显著的加速,而且在一些算法中(如1-步Q-learning和Sarsa)还达到了超过线性的加速比,产生这一现象的原因在于多线程减少了1-步TD的有偏性。14.2
A3C算法(17)2614.2.2异步1-步Q-学习算法:异步方法通过多线程技术实现工作组之间的并行操作。在训练算法时,每个工作组线程均创建一个独立的环境和Agent,并且创建一个所有线程共享的Agent。线程Agent的网络模型参数从共享的Agent中获取,并与自己私有的环境进行交互,然后计算出每一个状态-动作的价值梯度值:(14.11)其中,和分别为第i个工作组线程的预测价值网络参数和目标价值网络参数。14.2
A3C算法(18)27当线程Agent与环境交互t时间步或者遇到情节结束时,计算累积梯度值:(14.12)利用该梯度值来更新共享Agent的网络模型参数。此外还可以采用目标网络来提升算法的稳定性,目标网络的参数取自当前网络,与当前网络存在一定的延时,即目标网络参数是一定时间步之前的当前网络的参数,更新方式为:(14.13)14.2
A3C算法(19)28在异步方法中并未采用经验重放机制,不需要存储大量的历史样本,节省了大量的存储空间;同时利用共享的模型,使得Agent之间可以充分利用各自探索到的环境知识来更新模型参数,加速了训练过程。14.2
A3C算法(20)29算法14.1描述了用于构建价值网络模型的异步1-步Q-学习算法,算法为单个工作组的工作流程:14.2
A3C算法(21)30异步深度强化学习,如算法14.1异步1-步Q学习算法,利用多线程技术同时训练多个Agent,其中不同的Agent可能会探索到环境的不同部分,使得算法能够充分探索环境。此外,同时训练多个Agent存在两方面的优点:可以在不同的Agent中采取不同的探索策略,来最大化Agent探索环境的多样性,从而提升Agent的最终学习效果;与单个Agent相比,多个Agent同时训练更能够打破数据间的相关性,可以在不利用经验重放机制的情况下,提升算法的稳定性。14.2
A3C算法(22)3114.2.3A3C算法算法14.2描述了A3C算法中单个工作组的工作流程。目录行动者-评论家架构14.114.3
A3C算法的实验结果及分析14.2
A3C算法14.5
A2C算法的实验结果及分析14.4
A2C算法3214.6
小结14.3
A3C算法的实验结果及分析(1)3314.3.1A3C算法实验环境设置为了验证A3C算法的性能,本节选取4个连续动作空间的环境,分别是Pendulum、Ant、HalfCheetah和Humanoid对A3C算法进行验证。主要的超参数如下表所示:序号超参数取值具体描述15截断长度21000000最大全局计数器3learningrate0.0001用于SGD算法的学习率4strengthoftheentropy0.01策略熵温度参数5discountfactor0.9折扣因子表14.1A3C算法主要超参数14.3
A3C算法的实验结果及分析(2)34在实验中,评论家网络和行动者网络均采用线性神经网络,每个网络含有两个隐层,每个隐层含有256个神经元。评论家网络输出状态动作值,行动者网络则输出均值和方差,以高斯分布描述当前策略。14.3
A3C算法的实验结果及分析(3)3514.3.2实验结果分析根据14.3.1中的超参数,A3C算法能够在所给出的4个连续动作空间的环境中训练至收敛,结果如图14.5所示:在Pendulum环境和HalfCheetah环境中,A3C算法收敛后较为稳定。而在Ant环境和Humanoid环境中,A3C算法收敛后波动较大,即方差大。因为A3C算法采用同策略的方式进行训练,Agent采取的策略随着策略网络的更新而变化,从而导致A3C算法训练时会产生波动。若采取柔性更新策略,可有效解决该问题。14.3
A3C算法的实验结果及分析(4)36图14.5连续环境A3C性能14.3
A3C算法的实验结果及分析(5)37强化学习的目标是得到回报最大化的策略,这就要求在策略的训练过程中,增强探索性,找到更多可能的动作来获得更好的策略。但是,过强的探索性也会导致策略在训练过程中,获得大量没有学习价值的动作,导致算法难以收敛。在A3C算法中,引入策略熵增强算法的探索性,为获得最佳的策略熵温度参数,通过设置不同的温度参数,在Pendulum环境上进行对比实验,得到以下结果。14.3.3A3C算法中不同温度参数与学习率的性能比较14.3
A3C算法的实验结果及分析(6)38如右图所示:当选取温度参数为1e-1时,此时策略虽然能够探索到更多的动作,但是随机性太强,导致算法无法收敛。当选取温度参数为1e-3和1e-4时,此时策略的探索性不足,无法从更多的动作中学习,导致算法无法收敛。由实验可知,当选取1e-2作为温度参数时,算法能够有效收敛。14.3.3.1A3C算法中不同温度参数的性能比较图14.6A3C算法中不同温度参数的性能比较14.3
A3C算法的实验结果及分析(7)39学习率的选取对于评论家网络和行动者网络具有重要的作用。较大的学习率,不利于算法收敛,而较小的学习率则会影响算法的训练时间。利用A3C算法,在Pendulum环境中选取学习率为1e-3、1e-4和1e-5进行对比实验,结果如图14.7所示:14.3
A3C算法的实验结果及分析(8)40如右图所示:当选择学习率为1e-3时,开始收敛速度较快,但是训练不稳定,无法收敛。当学习率为1e-5时,收敛速度较慢。实验表明,在Pendulum环境中,最佳学习率为1e-4。14.3.3.2A3C算法中不同学习率的性能比较图14.7A3C算法中不同学习率的性能比较目录行动者-评论家架构14.114.3
A3C算法的实验结果及分析14.2
A3C算法14.5
A2C算法的实验结果及分析14.4
A2C算法4114.6
小结14.4A2C算法(1)42A2C算法简介A2C为A3C的改进版本,也是一种简化形式。A3C用多个异步并行的工作组进行梯度累积,然后对全局网络进行异步更新,若并行的工作组过多,则网络的参数也会变得巨大,占用较多内存。为了节省内存,A2C仅使用工作组来独立采样,而不再用于累积梯度。当所有工作组的采样总量到达mini-batch大小时,就全部停止采样;全局网络再根据这些样本进行参数更新,具体更新方式与A3C相同。最后再更新工作组参数。14.4A2C算法(2)4314.3.1A2C算法用于构建策略网络模型的A2C算法如下所示:目录行动者-评论家架构14.114.3
A3C算法的实验结果及分析14.2
A3C算法14.5
A2C算法的实验结果及分析14.4
A2C算法4414.6
小结14.5
A2C算法的实验结果与分析(1)4514.5.1A2C算法实验环境设置为了验证A2C算法的性能,选取4个连续动作空间的环境,分别是Pendulum、Ant、HalfCheetah和Humanoid对A2C算法进行验证。主要的超参数和A3C算法相同,如表14.2所示:序号超参数取值具体描述15截断长度21000000最大全局计数器3learningrate0.0001用于SGD算法的学习率4strengthoftheentropy0.01策略熵温度参数5discountfactor0.9折扣因子表14.2A2C算法主要超参数14.5
A2C算法的实验结果与分析(2)46在实验中,与A3C算法一样,A2C算法的评论家网络和行动者网络均采用线性神经网络,每个网络含有两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论