lecture6:Policy OptimizatiobⅡ(策略优化2)

3、ACKTR方法

是对TRPO的改进,NIPS,2017
想提升TRPO的计算效率
在这里插入图片描述
通过K-FAC的方法去加速FIM求逆(但是上节课不是说不用直接求逆,只需要转化成无约束优化,然后用共轭梯度法优化就可以吗???)

思想来源于ICML2015(国际机器学习大会)的论文
在这里插入图片描述
这篇论文提出:因为SGD是一阶优化,因此不是那么准确,因此提出了Natural Gradient Descend(上一节讲的),包含二阶信息,同时去除曲率影响。但是需要求逆,因此提出K-FAC方法去分解.

把FIM分解成一个个block(近似???),因为神经网络有多层结构组成,因此每个block对应于一层的参数(所以是对角矩阵)。对于对角线上的每个矩阵,可以做一个Kronecker product分解,因此对每个小矩阵求逆,就是对分解的矩阵求逆。
以下是分解的形式,以及优化过程对比
在这里插入图片描述

link如下:

在这里插入图片描述

4、PPO方法

是TRPO的简化版本,将有约束优化问题转化为无约束优化问题
在这里插入图片描述
就是说在极大化整个函数的同时让第二项最小
同时beta根据KL散度的大小动态调整,以增强约束效果,达到自适应的效果
利用SGD方法,比TRPO效率高
在这里插入图片描述

clipping版本:

因为回报是基于重要度采样的,因此之前讲过的几种方法的objective function如下:
在这里插入图片描述
这里又对ratio进行了限制
在这里插入图片描述

natural 方法中的KL散度约束是关于下一步的pi与当前pi;
TRPO中的KL散度约束是关于两个pi当前状态下所有动作可取动作;
PPO中的KL散度约束与TRPO同,但是多了个ratio约束,这个约束与KL散度约束的不同:
(1)、只与当前动作有关
(2)、是直接的限幅

具体分析:当advantage function取正的时候,我们希望鼓励这种行为,所以这个时候要希望他不要增加太多;当advantage function取负的时候,我们希望不要降低太多,所以这个时候希望他不要怕降低太多。

具体算法
在这里插入图片描述

代码:

Openai官网
在这里插入图片描述
Demo
在这里插入图片描述
他可以嵌入到其他的算法中
在这里插入图片描述

三、价值函数优化

好处:不用重要度采样,同时有贝尔曼方程的保证。

1、DDPG

DQN是输出一个确定性策略(离散动作空间),但是我们希望得到一个连续的动作空间。

DDPG的动作是将s输入到u中,得到的确定性策略,然后再传递给DQN的a。
在这里插入图片描述
对于DDPG,有这样几个objective:
在这里插入图片描述

这里的Q-target的形式与之前advantage function不同,之前是通过条件概率期望得到的。这里就是正宗的方法。
与DQN相同的是都有Reply buffer和target network

步骤

根据s计算u,进而确定动作,然后根据动作走一步得到Q-target,再根据这两步的Q值计算loss,再更新Q函数的参数(两个的)。
对于policy更新,就只需要对待优化的Q取最大就可以。最终得到合适的u函数

注意这里一共有四个network,分别是u和q的,同时每个都有一个正在优化的以及一个target版本。这里我感觉有种类似双Q-Learning的味道。
分别用来更新和评估!!!

代码:

在这里插入图片描述
代码讲解见周老师视频。

2、Twin Delayed DDPG(TD3)

和MC方法对比发现DDPG中对Q的估计存在过大估计。
因此提出三种tricks
在这里插入图片描述
1、双Q学习;2、延时更新策略;3、让target policy smoothing
对于双Q学习的target中用到,注意不是待优化的Q。让target等于两个中更小的那个值。同时看代码发现,他在待优化的target中也用了两个Q的和的loss。等于是用了4个Q。
在这里插入图片描述
对于target smoothing,引入噪声,据说可以达到regularize的目的。同时看代码发现,在policy更新时只用了第一个待优化的Q。即Q1.
在这里插入图片描述

有意思的点:根据比较ddpg,发现比官方的参数更加不敏感(初始条件敏感是所有的一个难题)

代码库:周老师强烈推荐

作者本身的代码库,包括官方和自己的DDPG,以及TD3。在鼠标位置。
在这里插入图片描述

3、soft actor-critic(sac)

引入entropy regularization的思想
在这里插入图片描述

entropy是一个量度,度量随机变量对于概率函数自身的无序程度。当enropy越大的时候,随机变量的概率函数越大。

在这里插入图片描述
因为算法希望对未知空间更多探索。

我们在V函数中加入H,同时在贝尔曼中迭代,以及在采样中的表示:

在这里插入图片描述
也用了两个Qtarget
在这里插入图片描述
可以让a本来看作从pi中的采样看成是和参数无关的采样。而是从高斯中采样。
在这里插入图片描述

Reparameterization

对于这样一个既求对theta梯度,同时x服从关于theta的分布的问题,很难求解,因此用Reparameterization 的trick。可以规避求导。
在这里插入图片描述
对于SAC和Reinforce两者都用技巧规避了求导,link如下:
在这里插入图片描述

代码

在这里插入图片描述
最新的sac论文
在这里插入图片描述

链接

两个现有算法的总结实现
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值