Soft Actor Critic是伯克利大学团队在2018年的ICML(International Conference on Machine Learning)上发表的off-policy model-free强化学习算法
论文地址为:Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor
无模型(model-free)的深度强化学习算法已经在一系列具有挑战性的决策制定和控制任务中得到了证明。然而,相比于基于模型(model-based)的算法,无模型算法通常面临两大挑战:非常高的样本复杂性和脆弱的收敛特性,这需要细致的超参数调优。这两个挑战严重限制了这些方法在复杂的现实世界领域的适用性。在这个框架中,智能体的目标是最大化期望的回报,同时最大化熵。也就是说,在完成任务的同时尽可能随机行事。
此前,该团队曾经基于最大熵框架和Q-Learning算法提出了Soft Q-Learning(论文地址:Reinforcement Learning with Deep Energy-based Policies)。而Soft Actor Critc(下文简称为SAC)则是把最大熵框架和Actor Critic算法相结合。
包括A2C,A3C在内的Actor Critic算法都是On-policy算法,而SAC的另一个创新就是使用Off-policy更新。On-policy中,Agent与环境进行互动产生样本并更新Agent的策略。这样就导致了每次得到的样本在用来更新一次后就必须丢弃。Off-policy则可以引入Replay Buffer来储存历史样本用来多次学习,大大提高了样本利用率。以学习下棋为例,On-policy必须自己下棋并学习。而Off-policy则可以一边看着别人下棋一边学习。
(推荐台湾大学李宏毅教授的深度强化学习课程 https://www.bilibili.com/video/BV124411S7au?p=1)
直观上来说,我们要优化一个策略使得累计回报最大化,需要使用该策略得到的样本才能获得正确的梯度方向来进行梯度上升。如果使用别人的策略得到的样本就会产生错误的梯度方向。但是在某些环境下获得大量样本的代价是十分高昂的,所以我们要设法使用别人的样本来更新我们自己的策略。
比较常用的一种方法是重要性采样(Importance Sampling)
我们有一个服从分布p的连续型随机变量x,当我们想要计算函数f(x)的期望时,往往通过采样来近似。
如果不能从p分布中采样,只能从另一个分布q中采样的话,要计算f(x)的期望就可以通过重要性采样的方式,使用q中采样的x计算f(x)并乘以一个重要性系数。
基于上述理论,我们就可以利用其他策略得到的样本来更新Agent的策略。
但是,Off-policy并不是完全优于On-policy,Off-policy也有非常明显的缺点:训练过程不稳定以及对超参数非常敏感。
标准的强化学习的目标是找到使回报的期望最大的策略。SAC在计算每一步的奖励时把每一个状态下策略的熵作为正则项加到了奖励中。称为温度系数。
由此我们可以根据reward定义Q函数:
对于现实中的控制任务,能够实现目标的trajectory往往不止一条。Q函数大多是多峰的
在actor-critic中,策略使用高斯分布来表示,策略网络的输入为状态,输出为动作的均值和方差。这样的做法往往忽略了Q函数的其他极大值点,从而只能学到一种完成任务的方法。SAC中用玻尔兹曼分布来表示策略,并使用Q函数作为能量函数,以实现多峰分布。这样的策略能够为每一个action赋一个特定的符合Q值的分布的概率,这样的策略可以学到多个trajectory。由于策略是概率密度函数,使用V函数来进行归一化:
根据Q函数和可以推导出V函数:
由于算法直接采用神经网络拟合价值函数,关于tabular情况下如何进行迭代求解和,这里就不过多展开了,感兴趣的朋友可以参照SAC和SQL的原文。
将Q函数和V函数用神经网络表示,Q网络输入状态s和动作a,输出Q值,V网络输入状态s,输出V值。使用均方误差作为损失函数
真实值分别为
这里使用了我们上面提到的重要性采样来计算,这样SAC就是off-policy的,他的行为策略是策略神经网络的输出结果的采样,目标策略是
接下来使用KL散度作为目标函数,最小化当前策略和目标策略的距离
由于策略网络输出是action分布的均值和方差,故无法对action求导,这里的action采用reparameterization trick来得到
策略网络输出平均值和方差,然后从标准正态分布采样得到。这样f即是可微的。梯度为:
算法:
实验部分一共做了三组,在Mujoco环境里
第一组是平均回报,橙色的是SAC,基本上是第一或第二
第二组是对比确定性策略,随机策略的训练过程更加稳定。
第三组是看超参数对训练的影响,除了个别极端情况以外,训练过程都比较稳定