目录
- 引言:不仅仅是为了赢
- 第一章:最大熵目标——混乱中的秩序
- 2.1 传统 RL 的局限
- 2.2 引入熵奖励:J(π)J(\pi)J(π)的重构
- 第二章:软策略迭代——数学推导的核心
- 3.1 软值函数与软 Bellman 方程
- 3.2 策略评估与策略提升
- 第三章:SAC 的工程实现——Actor 与 Critic 的共舞
- 4.1 Critic:双 Q 网络与软目标更新
- 4.2 Actor:高斯策略与重参数化技巧
- 4.3 Tanh 变换带来的概率密度修正
- 第四章:自动化α\alphaα——让算法自己决定探索力度
- 第五章:SAC vs PPO vs TD3——谁是王者?
- 结语:随机性的胜利
1. 引言:不仅仅是为了赢
想象你在玩一个走迷宫游戏。
- DDPG/TD3 (确定性策略)像是一个执着的赛车手,一旦发现了一条通往终点的捷径,它就会死死咬住这条路,哪怕这条路非常狭窄,哪怕稍微有一点扰动就会撞墙。
- SAC (随机性策略)则像是一团流动的水。它也想去终点,但它倾向于填满所有通往终点的可行路径。如果一条路堵了,它自然流向另一条。
这就是 SAC 的核心哲学。传统的 RL 算法试图寻找一个最优动作,而 SAC 试图寻找一个最优分布。它认为:在回报差不多的情况下,保留的选择越多越好(熵越大越好)。
这种“留有余地”的思想,使得 SAC 成为了目前样本效率(Sample Efficiency)最高且最抗干扰的算法之一。
2. 第一章:最大熵目标——混乱中的秩序
2.1 传统 RL 的局限
标准的强化学习目标是最大化期望累积回报:
maxπ∑tE(st,at)∼ρπ[r(st,at)] \max_\pi \sum_t \mathbb{E}_{(s_t, a_t) \sim \rho_\pi} [r(s_t, a_t)]πmaxt∑E(st,at)∼ρπ[r(st,at)]
这种目标函数导向的结果通常是一个确定性策略(Deterministic Policy),即π(a∣s)→1\pi(a|s) \rightarrow 1π(a∣s)→1(对于某个最优动作)。这导致 Agent 很容易放弃探索,过早收敛到局部最优。
2.2 引入熵奖励:J(π)J(\pi)J(π)的重构
SAC 基于最大熵强化学习框架。我们将目标函数修改为:
J(π)=∑t=0TE(st,at)∼ρπ[r(st,at)+αH(π(⋅∣st))] J(\pi) = \sum_{t=0}^{T} \mathbb{E}_{(s_t, a_t) \sim \rho_\pi} [r(s_t, a_t) + \alpha \mathcal{H}(\pi(\cdot | s_t))]J(π)=t=0∑TE(st,at)∼ρπ[r(st,at)+αH(π(⋅∣st))]
这里的H(π(⋅∣st))\mathcal{H}(\pi(\cdot | s_t))H(π(⋅∣st))是策略在状态sts_ts