2018 年被提出的 Soft Actor-Critic (SAC) 是最大熵强化学习的代表作。它从 2017 年的 Soft Q-Learning 改进而来,在无模型的在线强化学习算法中,SAC 是一种非常高效且稳定的算法,至今仍被广泛使用。

最大熵强化学习

熵 (entropy) 是对随机变量的随机程度的度量。对于连续随机变量,我们通常使用微分熵。在此后的讨论中,如果没有明确说明,我们默认熵指的是微分熵,随机变量指的是连续随机变量。

香农熵的某些性质在连续随机变量和微分熵上并不成立,例如微分熵可以是负数。在使用微分熵时,要注意这些性质的变化。

如果 是一个连续随机变量,并且它的概率密度函数为 ,那么它的微分熵就定义为

在强化学习中,我们可以使用 来表示策略 在状态 下的随机程度。

最大熵强化学习 (maximum entropy RL) 的核心思想是,为了鼓励策略进行探索,除了要求最大化累积奖励,还要使得策略更随机。为此,在强化学习的目标中加入一项熵的正则项,定义为

其中, 是一个正则化的系数,用来控制熵的重要程度。

熵强化学习增强了强化学习算法的探索程度, 越大,探索性就越强,有助于加速后续的策略学习,并减少策略陷入较差的局部最优的可能性。

软策略迭代

重复交替使用软策略评估和软策略提升,最终策略可以收敛到最大熵强化学习目标中的最优策略。

软策略评估

在最大熵强化学习框架中,由于目标函数发生了变化,其他的一些定义也有相应的变化。贝尔曼方程变为软贝尔曼方程 (Soft Bellman Equation):

其中,状态价值函数为

Soft Q-Learning 中这两个定义的给出方式有所不同,但是实际上定义了相同的函数。这里取了 SAC 中的定义。

软策略评估定理的证明

假定动作空间 (为了保证熵增强奖励是有界的),定义熵增强奖励为:

并将更新规则重写为:

可以通过《Reinforcement learning: An introduction》(Sutton, R. S. and Barto, A. G., 1998) 中的策略评估收敛性完成证明。

软策略提升

有如下软策略提升公式:

或者说

我们可以注意到这里的 实际上是一个基于能量的模型 (EBM)

软策略提升定理的证明

我们首先证明如下的引理:

因为

对两边同时对 取期望得到

右边最后一项与 无关所以取期望后不变。所以有:

在上述引理的基础上有:

损失函数

原始论文中的 SAC 除了 Q 函数之外,还会学习一个值函数 ;但是在更现代的实现中则只学习 Q 函数。本文介绍后者。

SAC 进一步拓展了目标网络DDQN 的思想,使用两个网络 来估计 函数,在每次使用 Q 值时,选择两个网络中 Q 值较小的那个;同时,两个网络分别具有目标网络 ,用于计算目标 Q 值。策略则被策略网络 建模为高斯分布,使用重参数化技巧进行采样。

任意一个 网络损失函数为:

其中, 是策略过去收集的数据 (从 Replay Buffer 中提取)。

的损失函数由 KL 散度得到,化简后为:

可以理解为最大化函数 ,因为有

熵正则项的自动调节

SAC 也有固定熵正则项系数的版本。但是自动调整的版本性能更好。

一些文献也将熵正则项系数 称为温度系数 (temperature parameter), 但是强化学习中充斥着各种意义不同的被称为温度的参数,本文尽量采取更加明确的说法。

熵正则项的系数 是 SAC 中非常重要的一个参数。在不同的状态下需要不同大小的熵:

  • 在最优动作不确定的某个状态下,熵的取值应该大一点
  • 在最优动作比较确定的状态下,熵的取值可以小一点

因此,比较合适的选择是对 进行自动调节。为了自动调整熵正则项,SAC 将强化学习的目标改写为一个带约束的优化问题 (其中 表示策略 采样得到的状态动作对的分布):

也就是最大化期望回报,同时约束熵的均值大于 。化简得到 的损失函数:

即当策略的熵低于目标值 时,训练目标 会使得 的值增大,进而在最小化上述损失函数 的过程中增加了策略熵对应项的重要性;而当策略的熵高于目标值 时,训练目标 会使得 的值减小,进而使得策略训练时更专注于价值提升。