SAC最大熵强化学习框架
SAC(Soft Actor-Critic)通过最大化策略熵实现更好的探索和鲁棒性。请解释SAC的最大熵目标、软策略迭代和自动温度调节机制。
回答
我是大山
SAC由Haarnoja等人于2018年提出,将最大熵(Maximum Entropy)原则引入Actor-Critic框架,是目前最优秀的无模型连续控制算法之一。
最大熵目标(Maximum Entropy Objective): 标准RL目标:J(π) = Σ_t E[ r(s_t, a_t) ] SAC目标:J(π) = Σ_t E[ r(s_t, a_t) + α·H(π(·|s_t)) ]
- 额外最大化策略的熵H(π(·|s_t)) = -E_a[log π(a|s_t)]。
- α(温度参数):权衡奖励和熵的重要性。
为什么最大化熵:
- 促进探索:鼓励策略更随机,避免过早收敛到局部最优。
- 多模态:学习多个同样好的动作,而不是只学一个。
- 鲁棒性:随机策略对模型误差更鲁棒,适合迁移学习。
软策略迭代(Soft Policy Iteration): SAC在两个步骤间交替:
1. 软策略评估(Soft Policy Evaluation)——Critic更新: 使用贝尔曼备份操作符T^π: T^πQ(s,a) = r(s,a) + γ·E_{s'~P,a'~π}[ Q(s',a') - α·log π(a'|s') ]
- 注意:软Q函数的目标包含下一状态的熵奖励-α·log π(a'|s')。
- 学习两个Q网络(Clipped Double Q)并取最小值,减少高估。
2. 软策略改进(Soft Policy Improvement)——Actor更新: 通过最小化KL散度更新策略: π_new = argmin_π E_{s~D}[ KL(π(·|s) || exp(Q_soft(s,·)/α)/Z(s)) ] 等价于最小化: J_π(θ) = E_{s~D, a~π_θ}[ α·log π_θ(a|s) - Q_φ(s,a) ]
- 使用重参数化技巧:a = f_θ(ε;s),ε~N(0,I)(策略为高斯分布)。
- 这使得梯度可以通过采样操作反向传播。
自动温度调节(Automatic Entropy Tuning):
- 不需要手动调整α,而是将其作为可学习参数。
- 目标熵H_target = -dim(A)(如连续控制中动作空间的维度)。
- α的损失函数:J(α) = E_{a~π_θ}[ -α·log π_θ(a|s) - α·H_target ]
- 自动调整α使策略的熵接近目标熵。
算法特色:
- Off-Policy:使用经验回放池,样本效率高。
- 自动探索:最大熵确保策略天然具有探索性。
- Soft Update:目标网络使用Polyak平均更新(τ=0.005)。
- 在MuJoCo等连续控制任务上达到SOTA,超越DDPG和PPO。