Soft Actor-Critic (SAC) 算法学习

今天学习一下强化学习中的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 采用三网络架构

  1. 策略网络(Actor):输出随机策略 πϕ​(a∣s),通常建模为高斯分布。
  2. 两个 Q 网络(Critic):估计 Qθ​(s,a),使用双 Q 技巧减少过估计。
  3. 目标网络:用于稳定训练,定期从主网络软更新参数。

关键创新点

1. 自动熵调节

引入温度参数 α 作为可学习变量,通过以下目标优化:
maxα​Ea∼πϕ​​[−αlogπϕ​(a∣s)−αH0​]

  • H0​:目标熵,通常设为 −dim(a)。
2. 重参数化技巧

通过确定性变换实现策略梯度估计:
a=μϕ​(s)+σϕ​(s)⋅ϵ,ϵ∼N(0,I)
避免蒙特卡洛采样的梯度方差问题。

3. 离线策略训练

使用经验回放缓冲区 D 存储历史数据,提高样本效率。

算法流程

  1. 初始化:策略网络 πϕ​、Q 网络 Qθ1​​,Qθ2​​、目标网络 Qθ1−​​,Qθ2−​​ 和温度参数 α。
  2. 循环迭代
    • 从环境采样动作 at​∼πϕ​(⋅∣st​),执行并存储转移 (st​,at​,rt​,st+1​) 到 D。
    • 从 D 随机采样批量数据。
    • 更新 Q 网络
      y=r+γ(mini=1,2​Qθi−​​(s′,a′)−αlogπϕ​(a′∣s′))
      θi​←θi​−λQ​∇θi​​N1​∑(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)](包含熵项)。
优化流程
  1. 更新 Critic:最小化 Q 网络的贝尔曼误差。
  2. 更新 Actor:通过最小化 KL 散度(等价于最大化软 Q 值和熵)优化策略。
  3. 更新温度参数 α:自动调整熵的权重,使策略熵接近目标值。

4. 三者的联系

  • 目标函数驱动整体优化:最大熵目标 J(π) 平衡奖励与熵。
  • KL 散度提供优化工具:通过最小化策略与目标分布的 KL 散度,间接实现熵最大化。
  • Actor-Critic 框架实现高效训练:Actor 基于 Critic 的反馈更新策略,Critic 评估策略的软 Q 值,形成闭环优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值