今天学习一下强化学习中的SAC算法:
Soft Actor-Critic (SAC) 是一种无模型的离线策略强化学习算法,结合了策略梯度和最大熵强化学习框架。
它通过优化策略的熵(随机性)来平衡探索与利用,在连续控制任务中表现出色,且具有良好的稳定性和样本效率。
核心思想
SAC 在传统强化学习目标(累积奖励最大化)的基础上,引入熵正则化:
- 最大化熵:鼓励策略在动作选择上保持随机性,避免过早收敛到次优确定性策略。
- 平衡探索与利用:熵作为内在奖励,提高策略的鲁棒性和泛化能力。
数学原理
1. 最大熵强化学习目标
熵是用来量化概率分布中的不确定性或者说随机性的一个计算量。当分布的不确定性越高的时候,不同的动作被选择的概率就越平均,机会越均等,熵值就越高,繁殖,分布的确定性越高,某一个动作的概率趋近于1,其他的动作趋近于0的时候,熵值就更加趋近于0。
优化目标:
J(π)=Eτ∼π[∑t=0∞γt(r(st,at)+αH(π(⋅∣st)))]
- τ:状态 - 动作轨迹。
- H(π(⋅∣st)):策略在状态 st 下的熵。
- α:熵正则化系数,控制探索与利用的权衡。
2. 软价值函数与 Q 函数
-
软状态价值函数:
Vπ(s)=Ea∼π[Qπ(s,a)−αlogπ(a∣s)] -
软 Q 函数:满足贝尔曼方程:
Qπ(s,a)=Es′∼p[r(s,a)+γVπ(s′)]
3. 策略优化
通过最小化KL 散度优化策略:
minπEs∼D[Ea∼π[αlogπ(a∣s)−Q(s,a)]]
KL 散度是衡量两个概率分布差异的指标,在 SAC 中用于优化策略。这里的直观解释:策略应在高 Q 值动作上概率更高,同时保持足够的熵。也就是说,这里为了优化策略π,SAC 通过最小化 KL 散度让策略逼近一个 “理想目标分布”,而这个目标分布正是由 “最大化熵 + 最大化软 Q 值” 共同决定的。
算法架构
SAC 采用三网络架构:
- 策略网络(Actor):输出随机策略 πϕ(a∣s),通常建模为高斯分布。
- 两个 Q 网络(Critic):估计 Qθ(s,a),使用双 Q 技巧减少过估计。
- 目标网络:用于稳定训练,定期从主网络软更新参数。
关键创新点
1. 自动熵调节
引入温度参数 α 作为可学习变量,通过以下目标优化:
maxαEa∼πϕ[−αlogπϕ(a∣s)−αH0]
- H0:目标熵,通常设为 −dim(a)。
2. 重参数化技巧
通过确定性变换实现策略梯度估计:
a=μϕ(s)+σϕ(s)⋅ϵ,ϵ∼N(0,I)
避免蒙特卡洛采样的梯度方差问题。
3. 离线策略训练
使用经验回放缓冲区 D 存储历史数据,提高样本效率。
算法流程
- 初始化:策略网络 πϕ、Q 网络 Qθ1,Qθ2、目标网络 Qθ1−,Qθ2− 和温度参数 α。
- 循环迭代:
- 从环境采样动作 at∼πϕ(⋅∣st),执行并存储转移 (st,at,rt,st+1) 到 D。
- 从 D 随机采样批量数据。
- 更新 Q 网络:
y=r+γ(mini=1,2Qθi−(s′,a′)−αlogπϕ(a′∣s′))
θi←θi−λQ∇θiN1∑(Qθi(s,a)−y)2 - 更新策略网络:
ϕ←ϕ−λπ∇ϕN1∑(αlogπϕ(a∣s)−Qθ1(s,a)) - 更新温度参数:
α←α−λα∇αN1∑(−αlogπϕ(a∣s)−αH0) - 软更新目标网络:θ−←τθ+(1−τ)θ−。
优势与应用场景
-
优势:
- 样本效率高,适合数据稀缺场景。
- 稳定性强,对超参数敏感度低。
- 自然支持连续动作空间。
- 策略具有随机性,适合需要探索的环境。
-
应用场景:
- 机器人控制(如机械臂操作、 locomotion)。
- 自动驾驶。
- 推荐系统中的动态策略优化。
扩展与变种
- 离散动作 SAC:将高斯策略替换为分类分布,适应离散动作空间。
- SAC - V:移除 Q 网络,直接优化状态价值函数和策略。
- SAC+AE:结合自动编码器学习状态表征,处理高维观测(如图像)。
关于Actor-Critic框架:
Actor-Critic 框架
Actor-Critic 是结合 ** 策略梯度(Policy Gradient)和值函数估计(Value Function Approximation)** 的强化学习框架。
核心思想
- Actor(策略网络):直接学习策略 πθ(a∣s),输出动作概率分布。
- Critic(价值网络):学习评估策略的价值,如估计 Q 值 Qϕ(s,a) 或状态价值 Vψ(s)。
- 两者协同:Critic 为 Actor 提供梯度更新的方向,Actor 通过优化策略提升 Critic 的评估准确性。
在 SAC 中的具体实现
- Actor:参数化为 πϕ(a∣s),通常是高斯分布(输出均值和方差),通过重参数化技巧采样动作。
- Critic:使用两个 Q 网络 Qθ1(s,a) 和 Qθ2(s,a)(双 Q 技巧减少过估计),估计软 Q 值:
Q(s,a)=r(s,a)+γEs′∼p[V(s′)]
其中,V(s)=Ea∼π[Q(s,a)−αlogπ(a∣s)](包含熵项)。
优化流程
- 更新 Critic:最小化 Q 网络的贝尔曼误差。
- 更新 Actor:通过最小化 KL 散度(等价于最大化软 Q 值和熵)优化策略。
- 更新温度参数 α:自动调整熵的权重,使策略熵接近目标值。
4. 三者的联系
- 目标函数驱动整体优化:最大熵目标 J(π) 平衡奖励与熵。
- KL 散度提供优化工具:通过最小化策略与目标分布的 KL 散度,间接实现熵最大化。
- Actor-Critic 框架实现高效训练:Actor 基于 Critic 的反馈更新策略,Critic 评估策略的软 Q 值,形成闭环优化。