SAC为啥需要重参数化
一、所有 Actor-Critic 算法都需要对\(\log\pi_\theta(a|s)\)求导
1. 策略梯度定理的统一形式
所有策略梯度算法的核心公式均基于策略梯度定理: \(\nabla_\theta J(\pi_\theta) \approx \mathbb{E}_{s\sim\rho^\pi, a\sim\pi_\theta} \left[ \nabla_\theta \log\pi_\theta(a|s) \cdot \text{Adv}(s,a) \right]\) 其中\(\text{Adv}(s,a)\)是优势函数(如 A2C 中的\(Q(s,a) - V(s)\),或 SAC 中的\(Q(s,a) - \alpha\log\pi_\theta(a|s)\))。所有算法都必须计算\(\nabla_\theta \log\pi_\theta(a|s)\),这一点是相同的。
2. 对数概率导数的解析计算
对于高斯策略\(\pi_\theta(a|s) = \mathcal{N}(\mu_\theta(s), \sigma_\theta(s))\),对数概率的导数为: \(\nabla_\theta \log\pi_\theta(a|s) = \frac{(a - \mu_\theta(s))}{\sigma_\theta(s)^2} \nabla_\theta \mu_\theta(s) - \frac{1}{\sigma_\theta(s)} \nabla_\theta \sigma_\theta(s)\) 该导数可通过解析方式直接计算,与动作a的具体取值有关,但不依赖动作采样过程的可导性。
二、SAC 的特殊性:目标函数中包含对动作的期望
1. SAC 的目标函数结构
SAC 的策略优化目标为: \(\max_\theta \mathbb{E}_{s\sim\rho^\pi, a\sim\pi_\theta} \left[ Q_\pi(s,a) - \alpha \log\pi_\theta(a|s) \right]\) 关键差异:SAC 的目标函数中直接包含对采样动作a的 Q 值期望,而其他算法(如 A2C、PPO)的目标函数仅通过优势函数间接依赖动作(如\(\text{Adv}(s,a)\)作为权重)。
2. 梯度计算的路径差异
- SAC:需要计算\(\nabla_\theta \mathbb{E}_{a\sim\pi_\theta}[Q_\pi(s,a)]\),此时必须确保采样过程可导(通过重参数化技巧),否则梯度无法从 Q 值传递到策略参数\(\theta\)。
- A2C/PPO:目标函数中的优势函数\(\text{Adv}(s,a)\)仅作为权重,梯度仅通过\(\nabla_\theta \log\pi_\theta(a|s)\)传递,与动作采样过程的可导性无关。
三、对比:其他 Actor-Critic 算法如何避免重参数化?
1. A2C/PPO 的策略梯度计算
以 PPO 为例,其目标函数为: \(\max_\theta \mathbb{E}_{s,a\sim\pi_{\theta_{\text{old}}}} \left[ \frac{\pi_\theta(a|s)}{\pi_{\theta_{\text{old}}}(a|s)} \cdot \text{Adv}(s,a) \right]\) 梯度计算仅需: \(\nabla_\theta \left( \frac{\pi_\theta(a|s)}{\pi_{\theta_{\text{old}}}(a|s)} \right) = \frac{\pi_\theta(a|s)}{\pi_{\theta_{\text{old}}}(a|s)} \cdot \nabla_\theta \log\pi_\theta(a|s)\) 此时,动作a仅作为已知常量参与计算,无需对采样过程求导。
2. DDPG 的确定性策略优势
DDPG 的策略是确定性的\(a = \mu_\theta(s)\),其梯度为: \(\nabla_\theta J(\mu_\theta) = \mathbb{E}_{s\sim\rho^\mu} \left[ \nabla_a Q(s,a) \cdot \nabla_\theta \mu_\theta(s) \right]\) 由于动作a是\(\theta\)的确定函数,梯度可直接通过\(\nabla_\theta \mu_\theta(s)\)传递,无需处理概率分布的采样问题。
四、总结:SAC 为何需要特殊处理?
| 算法 | 目标函数是否直接依赖采样动作 | 是否需要动作采样可导性 | 解决方案 |
|---|---|---|---|
| A2C/PPO | 否(仅通过优势函数间接依赖) | 否 | 直接计算\(\nabla_\theta \log\pi_\theta(a|s)\) |
| DDPG | 否(确定性策略无采样过程) | 否 | 直接计算\(\nabla_\theta \mu_\theta(s)\) |
| SAC | 是(需计算\(\mathbb{E}_{a\sim\pi_\theta}[Q(s,a)]\)) | 是 | 重参数化技巧 |
核心结论: SAC 的目标函数直接包含对动作的期望\(\mathbb{E}_{a\sim\pi_\theta}[Q(s,a)]\),这要求梯度必须通过动作采样过程传递。而其他算法的目标函数结构(如优势函数作为权重、确定性策略)使得它们可以绕过动作采样的可导性问题,直接计算对数概率或策略函数的导数。

浙公网安备 33010602011771号