强化学习之SAC(soft actor-critic)算法

强化学习之SAC(soft actor-critic)算法

PPO算法是目前最主流的DRL算法,但是PPO是一种on-policy算法,存在sample inefficiency的缺点,需要巨量的采样才能学习。DDPG及其拓展是面向连续控制的off-policy的算法,相对于PPO来说更sample efficient,但是它存在对其超参数敏感,收敛效果差的问题。SAC算法是面向最大熵强化学习开发的一种off-policy算法。与DDPG相比,SAC使用的是随机策略,相比确定性策略具有一定的优势。

随机策略相比于确定性策略具有什么优势?

我们在寻求最优动作的时候,很多时候并不是说最优动作就只有一个的。比如说我们想要机器人去追一个小球,机器人其实有无数条路径可以去实现这个目标,而不是说只有唯一的一种路径。我们需要DRL算法能够给出一个随机策略,在每一个状态都能输出每个动作的概率,比如说有3个动作是最优的,概率是一样大的,那么就可以在这三个动作中随机选择一个。

基于最大熵的RL算法有什么优势?

在这里插入图片描述
上式为DRL的学习目标,与传统的DRL学习目标不同,不仅想要长期的回报最大,还想要policy的每一次输出的action的熵最大。这样做其实就是为了让策略随机化,也是在鼓励探索,为具有相似的Q值的动作分配近乎均等的概率,不会给动作范围内任何一个动作分配非常高的概率,避免了反复选择同一个动作而陷入次优。同时通过最大化奖赏,放弃明显没有前途的策略(放弃低奖赏策略)。总的来说,具有以下几个优势:
1.更强的探索能力;
2.更鲁棒,面对干扰的时候能更容易做出调整;
3.训练速度加快(最大熵使探索更加均匀)。
下面会根据SAC算法论文来介绍。

最大熵强化学习

通常强化学习的目标是最大化累计reward:
在这里插入图片描述
最大熵强化学习中考虑的是最大化带熵的累计奖励:
在这里插入图片描述
上式中的α确定了熵项对于奖励的相对重要性。

soft策略迭代

下面所有的推导都是基于表格型的。
soft policy evaluation
对于一个固定的策略π,其软Q值可以通过Bellman backup 算子迭代出来:
在这里插入图片描述
论文中的引理1告诉我们soft policy evaluation可以通过:
在这里插入图片描述
进行迭代,若迭代无数次,最终会收敛到策略π的软Q值函数。
此为引理1
policy improvement
在策略改进中有:
在这里插入图片描述
与往常的off-policy方法最大化Q值不同的是,在SAC中策略是向正比于Q的指数分布更新的。在实际操作中,为了方便策略的处理,我们还是将策略输出为高斯分布,通过最小化KL散度去最小化两个分布的差距。
在这里插入图片描述
其中:在这里插入图片描述

为对Q值进行归一化分布。由论文中的引理2我们可以知道,对于所有的:
在这里插入图片描述
满足:在这里插入图片描述
这样保证每次更新的策略至少是由于旧策略的。
引理2
在这里插入图片描述
与传统强化学习的策略迭代一样,不断重复策略评估和策略改进两个过程,最终能够得到最优策略。即为论文中定理1所述:
在这里插入图片描述

Soft Actor-Critic

由于是非常大的连续域的情况,就需要引入函数逼近。
定义软状态值函数:
在这里插入图片描述
定义软Q值函数:
在这里插入图片描述
定义策略函数:
在这里插入图片描述
对应的参数分别是:
在这里插入图片描述
软状态值函数的目标函数为:
在这里插入图片描述
梯度:
在这里插入图片描述
软Q值函数的目标函数是:
在这里插入图片描述
其中:
在这里插入图片描述
梯度:
在这里插入图片描述
策略更新的目标函数:
在这里插入图片描述
我们策略的目标就是最小化两个分部之间的KL散度
由于策略是一个分布,动作a采样后无法对其进行求导,所以要用到重参数化技巧来对动作采样。在这里,策略表示为一个带噪声的神经网络:
在这里插入图片描述
其中epsilon t为一个输入的噪声向量。那么策略的目标函数可以重新写为:
在这里插入图片描述
少了:在这里插入图片描述
是因为它与参数在这里插入图片描述无关,求导为0,所以可以直接省略。
梯度:
在这里插入图片描述
整个算法流程就如下所示:
在这里插入图片描述
参考:

1.https://blog.csdn.net/u011501388/article/details/78447839
2.https://zhuanlan.zhihu.com/p/70360272
3.https://zhuanlan.zhihu.com/p/114236301

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值