引言(Introduction)#
Soft Q-Learning (SQL) 是强化学习中结合 最大熵强化学习(Maximum Entropy Reinforcement Learning) 思想的 Q-Learning 扩展算法。
它的核心目标不仅仅是找到那一条获得最高分的路,而是要找到所有能获得高分的路。它在最大化累积奖励的同时,强制策略保持随机性(即最大化策略的熵),从而提升策略的探索能力、鲁棒性和泛化性。
最大熵强化学习(Maximum Entropy RL)#
基本定义#
熵(Entropy) 是表示随机变量不确定性的度量。对于随机变量 X,如果其概率密度为 p,熵 H 定义为:
H(X)=Ex∼p[−logp(x)]=−∫Xp(x)logp(x)dx
在强化学习中,我们关注的是策略 π 在状态 s 下的随机程度,记为 H(π(⋅∣s))。
目标函数#
最大熵强化学习的思想是:除了最大化累计奖励,还要使得策略更加随机。因此,目标函数中加入了一项熵正则项:
πMaxEnt∗=argπmaxt=0∑∞Eπ[r(st,at)+αH(π(⋅∣st))]
- α (Temperature):正则项系数,用来权衡熵的重要程度。
- α→0:退化为标准 RL(贪婪)。
- α 越大:越鼓励探索,策略分布越平坦。
💡 直觉理解:
这一项 αH 的加入,意味着智能体如果不去探索新的动作,或者太早确定一个动作(熵变低),就会受到“惩罚”。这能有效防止智能体陷入局部最优。
基于能量的模型 (Energy-Based Model, EBM)#
SQL 使用基于能量的模型来建模策略。这源于统计物理学:能量越低的状态,出现的概率越高。
在强化学习中,我们将状态-动作对 (s,a) 映射到能量值 E。策略分布定义为:
π(a∣s)=Z(s)exp(−E(s,a))
其中,Z(s) 是配分函数(Partition Function),用于归一化,确保概率之和为 1:
Z(s)=∫Aexp(−E(s,a))da
在 Soft Q-Learning 中,我们通常用 Soft Q 值来代替负能量 −E(s,a),即 Qsoft(s,a) 越大,选择该动作的概率越大。
Soft 贝尔曼方程 (Soft Bellman Equation)#
为了推导 SQL,我们需要重新定义价值函数 V 和 Q,将熵包含进去。
回顾:普通贝尔曼方程#
普通 Q 值:
Qπ(s,a)=r(s,a)+γEs′∼p(⋅∣s,a)[Vπ(s′)]
普通 V 值:
Vπ(s)=Ea∼π(⋅∣s)[Qπ(s,a)]
定义:Soft 贝尔曼方程#
在最大熵框架下,价值函数的定义发生了变化。
Soft 状态价值函数 Vsoft 推导:
Vsoft 不仅包含未来的奖励,还包含未来的熵。
Vsoftπ(s)=Eπ[l=0∑∞γl(Rt+l+αH(π(⋅∣St+l)))∣St=s]=Eπ[Rt+αH(π(⋅∣St))∣St=s]+γEπ[l=0∑∞γl(Rt+1+l+αH(π(⋅∣St+1+l)))]=Ea∼π(⋅∣s)[r(s,a)]+αH(π(⋅∣s))+γEa∼π(⋅∣s),s′∼p(⋅∣s,a)[Vsoftπ(s′)]
将 H(π) 展开为期望形式 E[−logπ],可以合并项:
Vsoftπ(s)=Ea∼π(⋅∣s)[r(s,a)−αlogπ(a∣s)+γEs′∼p(⋅∣s,a)[Vsoftπ(s′)]]=Ea∼π(⋅∣s)[r(s,a)+γEs′∼p(⋅∣s,a)[Vsoftπ(s′)]]+αH(π(⋅∣s))
Soft 动作价值函数 Qsoft 推导:
与 V 类似,展开递归形式:
Qsoftπ(s,a)=r(s,a)+γEs′∼p(⋅∣s,a),a′∼π(⋅∣s′)[Qsoftπ(s′,a′)−αlogπ(a′∣s′)]
两者关系总结:
-
V 与 Q 的关系:
Vsoftπ(s)=Ea∼π(⋅∣s)[Qsoftπ(s,a)−αlogπ(a∣s)]=Ea∼π(a∣s)[Qsoftπ(s,a)]+αH(π(⋅∣s))
💡 笔记:这说明 V 值等于 Q 值的期望加上当前的熵红利。
-
Q 与 V 的关系(Soft Bellman):
Qsoftπ(s,a)=r(s,a)+γEs′∼p(⋅∣s,a)[Vsoftπ(s′)]
Soft 策略提升定理 (Soft Policy Improvement)#
我们如何保证更新策略后,效果一定会变好?这里给出了详细证明。
定理:对于任意状态 s,如果我们按照以下规则更新策略:
π~(⋅∣s)∝exp(α1Qsoftπ(s,⋅)),∀s∈S
那么新策略 π~ 的 Soft Q 值一定优于旧策略 π。
证明过程#
首先,我们计算旧策略 π 下的 V 值,并尝试引入新策略 π~ 的形式。
Vsoftπ(s)=Ea∼π(⋅∣s)[Qsoftπ(s,a)]+αH(π(⋅∣s))=∫aπ(a∣s)Qsoftπ(s,a)da−α∫aπ(a∣s)logπ(a∣s)da
这里利用一个恒等变换。因为更新规则 π~(a∣s)=Z(s)exp(α1Q(s,a)),所以 Q(s,a)=αlogπ~(a∣s)+αlogZ(s)。
代入积分中:
Vsoftπ(s)=α∫aπ(a∣s)[logπ~(a∣s)+log∫a′exp(α1Qsoftπ(s,a′))da′]da−α∫aπ(a∣s)logπ(a∣s)da=αlog[∫a′exp(α1Qsoftπ(s,a′))da′]+α∫aπ(a∣s)logπ(a∣s)π~(a∣s)da=αlog∫aexp(α1Qsoftπ(s,a))da−αDKL(π(⋅∣s)∣∣π~(⋅∣s))
当 π=π~ 时,KL 散度为 0,我们得到Soft Value Function 的解析解(LogSumExp 形式):
Vsoftπ~(s)=αlog∫aexp(α1Qsoftπ(s,a))da
因为 KL 散度非负(DKL≥0),且 α>0,所以去掉 KL 项后,不等式成立:
αlog∫aexp(α1Q)da≥Vsoftπ(s)+αDKL≥Vsoftπ(s)
这导出了关键不等式:
Ea∼π~(⋅∣s)[Qsoftπ(s,a)]+αH(π~(⋅∣s))≥Ea∼π(⋅∣s)[Qsoftπ(s,a)]+αH(π(⋅∣s))
接下来的迭代推导证明了 Q 值的单调递增性(通过不断展开贝尔曼算子):
Qsoftπ(s,a)=r0+γVsoftπ(s1)≤r0+γ(Ea1∼π~[Qπ(s1,a1)]+αH(π~))(根据上述不等式)≤…≤Qsoftπ~(s,a)
💡 结论:
只要我们将策略更新为正比于 exp(Q/α),新的策略在 Soft Q 值的评估下一定比旧策略更好(或持平)。
Soft 策略评估定理与收敛性证明#
我们定义Soft 贝尔曼算子 T,并证明反复应用它会收敛到最优值。
定义算子操作:
TQsoftπ(s,a)≜r(s,a)+γEs′∼p(⋅∣s,a)[αlog∫a′exp(α1Qsoftπ(s′,a′))da′]
压缩映射证明 (Contraction Mapping)#
我们要证明 ∣∣TQ1−TQ2∣∣≤k∣∣Q1−Q2∣∣,其中 k<1。
定义度量距离 ϵ=maxs,a∣Q1(s,a)−Q2(s,a)∣。
这意味对于任意 (s,a):
Q1(s,a)≤Q2(s,a)+ϵ
关键推导步骤:
-
利用指数单调性:
exp(α1Q1)≤exp(α1(Q2+ϵ))=exp(αQ2)⋅exp(αϵ)
-
积分保序性:
∫exp(αQ1)da′≤exp(αϵ)∫exp(αQ2)da′
-
取 αlog(注意这里的常数提取):
αlog∫exp(αQ1)da′≤αlog[exp(αϵ)∫exp(αQ2)da′]=α[log(exp(αϵ))+log∫exp(αQ2)da′]=α[αϵ+log∫exp(αQ2)da′]=ϵ+αlog∫exp(αQ2)da′
-
计算算子差值:
∣TQ1−TQ2∣=γEs′[αlog∫a′exp(αQ1(s′,a′))da′−αlog∫a′exp(αQ2(s′,a′))da′]≤γEs′[ϵ]=γs,amax∣Q1(s,a)−Q2(s,a)∣
-
结论:
∣∣TQ1−TQ2∣∣∞≤γ∣∣Q1−Q2∣∣∞
由于折扣因子 γ∈(0,1),算子 T 是一个压缩映射,必然收敛到唯一的不动点 Qsoft∗。
实现困难与解决方案#
理论很完美,但实际用神经网络实现时(Deep RL),有两个主要困难。
困难 1:处理积分 (The Integral Problem)#
在计算 Vsoft(s) 时,需要计算 log∫exp(Q)da。
如果动作空间是连续的,这个积分通常无法解析计算。
解决方案:重要性采样 (Importance Sampling)
我们把积分转化为期望,通过采样来近似。
引入一个采样分布 qa(a)(通常可以是当前的策略网络):
Vsoftθ(s)=αlog∫aexp(α1Qsoftθ(s,a))da=αlog∫aqa(a)qa(a)exp(α1Qsoftθ(s,a))da≈αlogEa∼qa(⋅)[qa(a)exp(α1Qsoftθ(s,a))]
于是,Soft Q-Learning 的目标函数(Bellman Error)变为:
JQ(θ)=ED[21(Q^soft(st,at)−Qsoftθ(st,at))2]
其中目标值 Q^ 使用上述的重要性采样估计来计算 V。
困难 2:策略采样 (Sampling from Energy-Based Policy)#
理论上的最优策略是基于能量的:π(a∣s)∝exp(α1Q(s,a))。
这是一种复杂的分布,我们无法直接从 Q 网络中高效采样动作。
解决方案:Amortized Inference (近似推断)
我们训练一个显式的策略网络(Actor)πϕ(a∣s)(通常是高斯分布或由神经网络生成的分布),让它去逼近那个能量分布。
目标是最小化两者之间的 KL 散度:
Jπ(ϕ;st)=DKL(πϕ(⋅∣st)exp(α1(Qsoftθ(st,⋅)−Vsoftθ(st))))
将 KL 散度展开并忽略常数项,等价于最大化:
Ea∼πϕ[Qθ(s,a)−αlogπϕ(a∣s)]
💡 实现细节:
在 SQL 原文中,作者使用了 SVGD (Stein Variational Gradient Descent) 方法来更新这个策略网络,这允许策略生成非常复杂的多模态分布。后续的 SAC 算法则使用了重参数化技巧(Reparameterization Trick)来简化这一步。