固定噪声后求路径导数

若 x∼N(μθ,σθ2)x\sim\mathcal N(\mu_\theta,\sigma_\theta^2),可以写成 x=μθ+σθϵx=\mu_\theta+\sigma_\theta\epsilon,其中 ϵ∼N(0,1)\epsilon\sim\mathcal N(0,1) 的分布不依赖参数。于是,在满足交换微分与期望的正则条件时,

∇θE[f(x)]=Eϵ[∇xf(x)∇θx].\nabla_\theta\mathbb E[f(x)] =\mathbb E_\epsilon[\nabla_x f(x)\nabla_\theta x].

随机性仍然存在,但采样路径对参数变成可微的确定性函数。固定同一噪声比较相邻参数,也能提供更清晰的有限差分检查。

与 score-function 方法比较

REINFORCE 使用 f(x)∇θlog⁡pθ(x)f(x)\nabla_\theta\log p_\theta(x),通常不要求 ff 对样本可微;路径导数需要可微的采样变换和目标。重参数化经常减小方差,但不是对所有分布、目标或 estimator 的普遍方差排序定理。离散类别变量不能直接用普通连续路径导数;松弛、直通估计或专用估计器有各自偏差。

SAC 的 squashed Gaussian

令 u=μ(s)+σ(s)ϵu=\mu(s)+\sigma(s)\epsilon,a=tanh⁡ua=\tanh u。变换后的 log 密度为

log⁡π(a∣s)=log⁡N(u;μ,σ2)−∑ilog⁡(1−tanh⁡2ui).\log\pi(a\mid s)=\log\mathcal N(u;\mu,\sigma^2)-\sum_i\log(1-\tanh^2u_i).

若还缩放到执行器区间,需要对应的 Jacobian 常数。数值实现应使用稳定形式处理接近饱和的动作,避免直接对近零的 1−a21-a^2 取对数。

Actor 更新的梯度边界

优化 actor 时,critic 参数通常不更新,但 Q(s,a)Q(s,a) 对动作的梯度要保留并传给 actor。温度更新中,熵残差通常 detach,避免意外更新策略。不能把“冻结 critic 参数”实现成把整个 Q 值 detach,后者会丢失路径导数。

建议验证 Gaussian 期望的解析梯度,再检验 tanh 变换的 log probability 和梯度,最后接入 SAC。关联阅读:SAC 与对偶、策略梯度。

原笔记中的选读链接