首页 > 其他分享 >论文阅读_近端策略优化_PPO

论文阅读_近端策略优化_PPO

时间:2023-04-03 12:03:27浏览次数:43  
标签:策略 梯度 论文 PPO 算法 方法 近端


论文信息

name_en: Proximal Policy Optimization Algorithms
name_ch: 近端策略优化算法
paper_addr: http://arxiv.org/abs/1707.06347
date_publish: 2017-08-28
if: IF 8.665 Q1 B1 Top EI
author: John Schulman
citation: 9685

读后感

PPO近端策略优化是一种强化学习算法,具体是对深度学习策略梯度方法的优化。
策略是强化学习中用于决定在每个时刻采取哪个动作的函数。近端约束用于限制策略的变化,以避免过于激进地改变策略。
文中介绍了两种方法:截断和KL散度,近端约束通常使用梯度截断来实现,即将梯度限制在一个特定范围内,让学习的步调不要太大。

介绍

一种改进版的强化学习策略梯度算法。它从与环境交互的数据中采样。不同于标准的策略梯度方法对每次采样执行一次梯度更新,文中提出了一个新的目标函数,可以实现多个epoch的minibatch数据更新,另外,它是TRPO的改进算法,相对TRPO更为简单,InstructGPT的强化学习用的就是PPO(ChatGPT可能也是)。

方法

优化算法

文章介绍了三种方法,其差别主要在损失函数,公式如下图所示:

论文阅读_近端策略优化_PPO_深度学习

第一种方法的目标是对神经网络theta调参,其中L表示损失Loss,At是时间步t的优势函数,注意这里的r不是奖励,而是新旧策略的变化,当策略不变时r=1:
论文阅读_近端策略优化_PPO_数据_02
第二种是本文中推荐的剪裁方法,它通过限制损失函数,从而限制了后续调参;其中epsilon是超参数,一般是0.2,它将变化范围限制在0.8-1.2之间(上图是论文的截图,我觉得括号位置好像写错了)。
第三种是将KL散度作为惩罚项加入了公式,以保证旧策略pi_old与新策略pi尽量相似,其中Beta是超参数,可以是固定的,也可以自动计算,文中还引入了一种自动计算Beta的方法,dtarg为超参数,先根据当前状态计算d,然后计算beta:
论文阅读_近端策略优化_PPO_论文阅读_03

具体实现

PPO也属于一种A-C方法,即结合策略和价值的方法。为了同时优化价值和策略,设置最终的目标函数如下:
论文阅读_近端策略优化_PPO_强化学习_04
其中c1,c2是超参数,用于设置各方占比;CLIP指的是策略目标,即上面描述的裁剪方法;LV 是状态价值的差;优化的目标是最大化整体L,所以对其中的VF项做减法;和S是熵奖励,用于增强熵,以确保充分的探索。

具体算法如下:

论文阅读_近端策略优化_PPO_强化学习_05

其中优化的点是:使用并行的N个actors分别收集T时间步的数据;然后针对NT数据,通过K次epoch,用小批量数据M调整梯度,实验证明效果更好。

实验

三种方法对比效果如表-1所示:

论文阅读_近端策略优化_PPO_强化学习_06

其中Clipping在epsilon设为0.2时效果最好;对于KL散度方法,测试了通过dtarg自动计算beta和设固定beta两种方式,可以看到自动计算的方式略好。

与其它强化学习相比,从图-3可以看到,在大多数任务中PPO(Clip)都优于其它算法。除此以外,实验部分还针对连续领域及atari游戏对比了PPO与其它算法的效果。

论文阅读_近端策略优化_PPO_深度学习_07


标签:策略,梯度,论文,PPO,算法,方法,近端
From: https://blog.51cto.com/u_15794627/6165953

相关文章

  • 【打怪升级】【juc】关于LockSupport
    通过juc下LockSupport,可以达到阻塞和唤醒线程的操作 LockSupportLockSupport是juc下一个线程阻塞唤醒的工具类。它的主要方法有:每个使用LockSupport的线程,会有一个许可;调用park会立即返回,否则会被阻塞。如果许可不可用,则可以调用unpark供其可使用,......
  • [论文阅读] Diff-Font: Diffusion Model for Robust One-Shot Font Generation
    pretitle:Diff-Font:DiffusionModelforRobustOne-ShotFontGenerationaccepted:arxiv2022paper:https://arxiv.org/abs/2212.05895code:noneref:https://www.zhihu.com/question/545764550关键词:one-shot,字体生成,扩散模型阅读理由:扩散模型在字体这边的第一次应......
  • No supported authentication methods available (server sent: publickey)错误解决
     Nosupportedauthenticationmethodsavailable(serversent:publickey)错误解决 https://blog.csdn.net/cl2227619761/article/details/109840203PasswordAuthenticationyes 实践: #pwd/etc/ssh#vimsshd_config#systemctlrestartsshd  翻译搜索复制......
  • [重读经典论文]VGG——传统串行卷积神经网络的极致
    1.前言VGG是由牛津大学视觉组(VisualGeometryGroup,Vgg的名称也是来源于此)在2014年的论文《VeryDeepConvolutionalNetworksforLarge-ScaleVisualRecognition》中提出的卷积神经网络模型。VGG将LeNet和AlexNet奠定的经典串行卷积神经网络结构的深度和性能发挥到极致,主要......
  • Perceptron, Support Vector Machine and Dual Optimization Problem (3)
    SupportVectorMachinesPerceptronandLinearSeparability假设存在一个lineardecisionboundary,它可以完美地对trainingdataset进行分割。那么,经由上述PerceptronAlgorithm计算,它将返回哪一条linearseparator?当linearseparator(即一个给定的超平面)的margi......
  • youtube点击位置纠偏论文:《Recommending What Video to Watch Next: A Multitask Rank
    背景在推荐系统存在两个难题:1.需要同时优化点击、观看时长、点赞、打分、评论等多个目标,如何同时建模多个目标2.存在positionbias,即同个视频放在不通位置上点击率等会不同,如何建模positionbiasyoutube这篇论文采用了MMOE来建模多目标,并用一个shallowtower来建模position......
  • [重读经典论文]Inception V4
    1.前言InceptionV4是google团队在《Inception-v4,Inception-ResNetandtheImpactofResidualConnectionsonLearning》论文中提出的一个新的网络,如题目所示,本论文还提出了Inception-ResNet-V1、Inception-ResNet-V2两个模型,将residual和inception结构相结合,以获得residual......
  • 大数据经典论文解读 - MapReduce
    MapReduce使用MapReduce框架只要实现一个Map函数和一个Reduce函数,Map函数实现映射,接受一个key-value并转换为多个键值对;Reduce是一个化简函数,接收一个key和对应的vallue,然后组成一组新的value输出出去。map(k1,v1)->list(k2,v2)reduce(k2,list(v2))->list(v3)Map函数的......
  • AutoEmbedding论文阅读笔记
    问题背景目前推荐系统中,在特征维度上低频特征和高频特征的维度是通过遍历mask特征获得到的auc衰减衡量特征对模型的重要度来决定的.如果想提升模型效果,在field层面上......
  • 毕业论文数据分析方法分类汇总
    今天将常用的数据分析方法进行一个分类汇总说明,整理如下图:1、基本描述统计基本描述统计分析包括频数分析、描述分析、分类汇总;是对收集的数据进行基本的说明。频数分......