核心内容:无模型强化学习核心算法、基于策略的深度强化学习算法、基于模型的控制方法及应用


一、无模型强化学习基础

1.1 无模型强化学习概述

现实问题中通常无法直接获取MDP的状态转移概率P奖励函数R,无模型强化学习直接从与环境交互的经验片段(episode)中学习值函数和策略,无需构建显式的环境模型。

  • 核心步骤:(1) 估计值函数;(2) 优化策略
  • 经验片段形式:s0→a0/R(s0)s1→a1/R(s1)s2→⋯→sTs_0 \xrightarrow{a_0/R(s_0)} s_1 \xrightarrow{a_1/R(s_1)} s_2 \to \dots \to s_Ts0a0/R(s0) s1a1/R(s1) s2sT

1.2 蒙特卡洛(MC)方法

核心思想:通过重复随机采样,用平均累计奖励近似值函数(大数定律)。

  • 累计回报:Gt=Rt+1+γRt+2+⋯+γT−1RTG_t = R_{t+1} + \gamma R_{t+2} + \dots + \gamma^{T-1} R_TGt=Rt+1+γRt+2++γT1RT
  • 值函数估计:Vπ(s)=E[Gt∣st=s,π]≈1N∑i=1NGt(i)V^\pi(s) = \mathbb{E}[G_t | s_t=s, \pi] \approx \frac{1}{N}\sum_{i=1}^N G_t^{(i)}Vπ(s)=E[Gtst=s,π]N1i=1NGt(i)
  • 增量更新公式:
    V(St)←V(St)+α(Gt−V(St))V(S_t) \leftarrow V(S_t) + \alpha\left(G_t - V(S_t)\right)V(St)V(St)+α(GtV(St))
  • 特点
    • 必须从完整片段学习(无bootstrapping)
    • 高方差、无偏差
    • 仅适用于有终止状态的片段化环境

1.3 时序差分(TD)学习

核心思想:利用自举(bootstrapping),用下一步的价值估计更新当前价值,无需等待片段结束。

  • 核心更新公式(TD(0)):
    V(St)←V(St)+α(Rt+1+γV(St+1)−V(St))V(S_t) \leftarrow V(S_t) + \alpha\left(R_{t+1} + \gamma V(S_{t+1}) - V(S_t)\right)V(St)V(St)+α(Rt+1+γV(St+1)V(St))
  • 关键概念:
    • TD目标:Rt+1+γV(St+1)R_{t+1} + \gamma V(S_{t+1})Rt+1+γV(St+1)
    • TD误差:δt=Rt+1+γV(St+1)−V(St)\delta_t = R_{t+1} + \gamma V(S_{t+1}) - V(S_t)δt=Rt+1+γV(St+1)V(St)
MC vs TD 核心对比
维度 蒙特卡洛(MC) 时序差分(TD)
学习时机 必须等待片段结束 每一步即可在线学习
适用环境 仅片段化(有终止)环境 支持连续无终止环境
偏差与方差 高方差、无偏差 低方差、有偏差
收敛性 良好,对初始值不敏感 通常更高效,对初始值更敏感
自举

1.4 SARSA学习

性质:**在线策略(on-policy)**时序差分控制算法,采样和决策使用同一策略。

  • 名称由来:状态(S)-动作(A)-奖励®-状态(S’)-动作(A’)
  • 状态-动作值函数更新公式:
    Q(s,a)←Q(s,a)+α(R+γQ(s′,a′)−Q(s,a))Q(s,a) \leftarrow Q(s,a) + \alpha\left(R + \gamma Q(s',a') - Q(s,a)\right)Q(s,a)Q(s,a)+α(R+γQ(s,a)Q(s,a))
  • 算法流程:
    1. 初始化Q(s,a)
    2. 对每个episode:
      • 获取初始状态s,用ε-greedy策略选动作a
      • 对每个时间步:
        • 执行a,得到r和s’
        • 用ε-greedy策略在s’选动作a’
        • 更新Q(s,a)
        • s←s’, a←a’
      • 直到到达终止状态

1.5 Q学习

性质:**离线策略(off-policy)**时序差分控制算法,行为策略(采样)和目标策略(决策)分离。

  • 核心更新公式:
    Q(s,a)←Q(s,a)+α(R+γmax⁡a′Q(s′,a′)−Q(s,a))Q(s,a) \leftarrow Q(s,a) + \alpha\left(R + \gamma \max_{a'} Q(s',a') - Q(s,a)\right)Q(s,a)Q(s,a)+α(R+γamaxQ(s,a)Q(s,a))
  • 目标策略:关于Q的贪心策略 π(s′)=arg⁡max⁡a′Q(s′,a′)\pi(s') = \arg\max_{a'} Q(s',a')π(s)=argmaxaQ(s,a)
  • 行为策略:关于Q的ε-greedy策略(保证探索)
  • 理论保证:收敛到最优状态-动作值函数 Q∗(s,a)Q^*(s,a)Q(s,a)
SARSA vs Q学习 核心对比
维度 SARSA Q学习
策略类型 在线策略(on-policy) 离线策略(off-policy)
目标动作选择 行为策略实际执行的a’ 目标策略的最优动作max Q(s’,a’)
风险偏好 更保守(风险敏感) 更激进(追求全局最优)
适用场景 机器人控制等安全优先场景 环境已知、需找最优路径场景

1.6 深度Q网络(DQN)

解决问题:传统Q学习无法处理高维连续状态空间,用深度神经网络近似Q函数 Qθ(s,a)Q_\theta(s,a)Qθ(s,a)

  • 训练不稳定的根源:
    1. 连续采样的经验不满足独立同分布
    2. Q网络频繁更新导致目标值不稳定
  • 核心解决技术:
    1. 经验回放:存储所有交互经验(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st,at,rt,st+1),训练时随机采样
    2. 双网络结构
      • 评估网络QθQ_\thetaQθ:实时更新,用于选动作
      • 目标网络Qθ−Q_{\theta^-}Qθ:参数固定,每隔C步与评估网络同步,用于计算目标值
  • 损失函数:
    L(θ)=E[12(rt+γmax⁡a′Qθ−(st+1,a′)−Qθ(st,at))2]L(\theta) = \mathbb{E}\left[\frac{1}{2}\left(r_t + \gamma \max_{a'} Q_{\theta^-}(s_{t+1},a') - Q_\theta(s_t,a_t)\right)^2\right]L(θ)=E[21(rt+γamaxQθ(st+1,a)Qθ(st,at))2]

二、基于策略的算法

2.1 基于策略vs基于价值

维度 基于价值的方法 基于策略的方法
学习目标 学习值函数,间接导出策略 直接显式学习参数化策略$\pi_\theta(a
动作空间 主要适用于离散动作 天然支持连续动作空间
优化目标 最小化TD误差 最大化期望累计回报J(θ)J(\theta)J(θ)
策略表示 隐式(由值函数贪心得到) 显式(参数化函数)
  • 策略梯度定理(核心):
    ∇θJ(θ)=Eπθ[Qπθ(s,a)∇θlog⁡πθ(a∣s)]\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[Q^{\pi_\theta}(s,a) \nabla_\theta \log \pi_\theta(a|s)\right]θJ(θ)=Eπθ[Qπθ(s,a)θlogπθ(as)]

2.2 REINFORCE算法

性质:蒙特卡洛策略梯度算法,用完整轨迹的累计回报估计Q值。

  • 策略梯度估计:
    ∇θJ(θ)=E[∑t=0T(∑t′=tTγt′−trt′)∇θlog⁡πθ(at∣st)]\nabla_\theta J(\theta) = \mathbb{E}\left[\sum_{t=0}^T \left(\sum_{t'=t}^T \gamma^{t'-t} r_{t'}\right) \nabla_\theta \log \pi_\theta(a_t|s_t)\right]θJ(θ)=E[t=0T(t=tTγttrt)θlogπθ(atst)]
  • 算法流程:
    1. 初始化策略参数θ
    2. 对每个episode:
      • πθ\pi_\thetaπθ采样完整轨迹
      • 计算每个时刻t的累计回报ψt=∑t′=tTγt′−trt′\psi_t = \sum_{t'=t}^T \gamma^{t'-t} r_{t'}ψt=t=tTγttrt
      • 更新θ:θ←θ+α∑tψt∇θlog⁡πθ(at∣st)\theta \leftarrow \theta + \alpha \sum_t \psi_t \nabla_\theta \log \pi_\theta(a_t|s_t)θθ+αtψtθlogπθ(atst)
  • 缺点:方差大,收敛慢

2.3 Actor-Critic框架

核心思想:结合策略梯度和值函数估计,用Critic(评论家)估计值函数,指导Actor(演员)更新策略,降低方差。

  • 两个组件:
    • Actor:策略网络πθ(a∣s)\pi_\theta(a|s)πθ(as),负责选择动作
    • Critic:价值网络Vω(s)V_\omega(s)Vω(s),负责评估动作好坏
  • 优势函数(进一步降低方差):
    Aπ(s,a)=Qπ(s,a)−Vπ(s)A^\pi(s,a) = Q^\pi(s,a) - V^\pi(s)Aπ(s,a)=Qπ(s,a)Vπ(s)
  • 时序差分残差(可直接作为优势函数估计):
    δt=rt+γVω(st+1)−Vω(st)\delta_t = r_t + \gamma V_\omega(s_{t+1}) - V_\omega(s_t)δt=rt+γVω(st+1)Vω(st)
  • 算法流程:
    1. 初始化θ(Actor)和ω(Critic)
    2. 对每个episode:
      • 采样轨迹
      • 计算每个时刻的TD误差δt\delta_tδt
      • 更新Critic:ω←ω+αω∑tδt∇ωVω(st)\omega \leftarrow \omega + \alpha_\omega \sum_t \delta_t \nabla_\omega V_\omega(s_t)ωω+αωtδtωVω(st)
      • 更新Actor:θ←θ+αθ∑tδt∇θlog⁡πθ(at∣st)\theta \leftarrow \theta + \alpha_\theta \sum_t \delta_t \nabla_\theta \log \pi_\theta(a_t|s_t)θθ+αθtδtθlogπθ(atst)
扩展算法
  • A2C(优势Actor-Critic):使用优势函数代替原始回报,进一步降低方差
  • A3C(异步A2C):多线程并行采样和更新,无需经验回放,训练效率更高

2.4 确定性策略梯度(DPG)

解决问题:随机策略梯度在高维连续动作空间中采样效率低,提出确定性策略a=μθ(s)a=\mu_\theta(s)a=μθ(s)

  • 确定性策略梯度定理:
    ∇θJ(πθ)=Es∼ρπ[∇θμθ(s)∇aQw(s,a)∣a=μθ(s)]\nabla_\theta J(\pi_\theta) = \mathbb{E}_{s\sim\rho^\pi}\left[\left.\nabla_\theta \mu_\theta(s) \nabla_a Q^w(s,a)\right|_{a=\mu_\theta(s)}\right]θJ(πθ)=Esρπ[θμθ(s)aQw(s,a)a=μθ(s)]
  • 核心优势:无需对动作积分,梯度计算更高效

2.5 DDPG算法

全称:深度确定性策略梯度(Deep Deterministic Policy Gradient),将DPG与深度学习结合。

  • 核心改进(解决训练不稳定):
    1. 经验回放(离线策略)
    2. 双目标网络(Actor和Critic各有一个目标网络)
    3. 软更新:θ−←τθ+(1−τ)θ−\theta^- \leftarrow \tau\theta + (1-\tau)\theta^-θτθ+(1τ)θ(τ很小,如0.001)
    4. 动作噪声:在确定性动作上添加噪声(如OU噪声),保证探索
  • 算法流程:
    1. 初始化Actor网络μθ\mu_\thetaμθ、Critic网络QωQ_\omegaQω及对应目标网络
    2. 初始化经验回放池
    3. 对每个episode:
      • 获取初始状态s
      • 对每个时间步:
        • 选动作at=μθ(st)+Na_t = \mu_\theta(s_t) + Nat=μθ(st)+N(N为探索噪声)
        • 执行a_t,得到r_t和s_{t+1},存入回放池
        • 采样N个经验,计算目标值yi=ri+γQω−(si+1,μθ−(si+1))y_i = r_i + \gamma Q_{\omega^-}(s_{i+1}, \mu_{\theta^-}(s_{i+1}))yi=ri+γQω(si+1,μθ(si+1))
        • 更新Critic:最小化MSE损失1N∑(yi−Qω(si,ai))2\frac{1}{N}\sum(y_i - Q_\omega(s_i,a_i))^2N1(yiQω(si,ai))2
        • 更新Actor:∇θJ≈1N∑∇θμθ(si)∇aQω(si,a)∣a=μθ(si)\nabla_\theta J \approx \frac{1}{N}\sum \nabla_\theta \mu_\theta(s_i) \nabla_a Q_\omega(s_i,a)|_{a=\mu_\theta(s_i)}θJN1θμθ(si)aQω(si,a)a=μθ(si)
        • 软更新目标网络
  • 缺点:训练不稳定,对超参数敏感

2.6 SAC算法

全称:软Actor-Critic(Soft Actor-Critic),基于最大熵强化学习的离线策略算法。

  • 最大熵目标函数:
    π∗=arg max⁡πEπ[∑tr(st,at)+αH(π(⋅∣st))]\pi^* = \argmax_\pi \mathbb{E}_\pi\left[\sum_t r(s_t,a_t) + \alpha H(\pi(\cdot|s_t))\right]π=πargmaxEπ[tr(st,at)+αH(π(st))]
    其中α\alphaα为熵正则项系数,H(π)H(\pi)H(π)为策略熵,鼓励探索
  • 核心改进:
    1. 双Q网络:取两个Q网络的最小值,缓解Q值过估计
    2. 重参数化技巧:解决连续动作采样不可导问题
    3. 自动调整熵正则项α:根据策略熵动态调整,平衡探索与利用
  • 算法特点:训练稳定、样本效率高、鲁棒性好,是目前连续控制任务的首选算法之一

三、基于模型的控制

3.1 基于模型vs无模型

维度 无模型方法 基于模型方法
核心思路 直接从经验学习值函数/策略 先学习环境模型$\hat{P}(s’
样本效率 低(需大量交互) 高(利用模型生成虚拟数据)
模型误差 存在模型累积误差
适用场景 模型难以建模的复杂环境 模型可近似、对样本效率要求高的场景

3.2 模型预测控制(MPC)

核心思想:迭代式规划,每次决策时:

  1. 生成N条候选动作序列(长度为H,预测 horizon)
  2. 用环境模型推演每条序列的累计奖励
  3. 选择最优序列的第一个动作执行
  4. 滚动到下一状态,重复上述过程
打靶法(候选序列生成)
  • 随机打靶法:随机生成N条动作序列,简单但效率低
  • 交叉熵方法(CEM):维护一个动作分布,每次采样后保留最优的M条序列更新分布,逐步收敛到最优动作

3.3 PETS算法

全称:带有轨迹采样的概率集成(Probabilistic Ensembles with Trajectory Sampling)。

  • 核心创新:同时处理两种不确定性
    1. 偶然不确定性:系统本身的随机性,用高斯分布输出建模
    2. 认知不确定性:模型训练数据不足,用集成神经网络(多个独立网络)建模
  • 环境模型损失函数(最大化高斯对数似然):
    L(θ)=∑n=1N[(μθ(sn,an)−sn+1)TΣθ−1(sn,an)(μθ(sn,an)−sn+1)+log⁡det⁡Σθ(sn,an)]\mathcal{L}(\theta) = \sum_{n=1}^N \left[\left(\mu_\theta(s_n,a_n)-s_{n+1}\right)^T \Sigma_\theta^{-1}(s_n,a_n) \left(\mu_\theta(s_n,a_n)-s_{n+1}\right) + \log\det\Sigma_\theta(s_n,a_n)\right]L(θ)=n=1N[(μθ(sn,an)sn+1)TΣθ1(sn,an)(μθ(sn,an)sn+1)+logdetΣθ(sn,an)]

3.4 MBPO算法

全称:基于模型的策略优化(Model-Based Policy Optimization)。

  • 核心观察:模型推演步数越长,累积误差越大
  • 核心创新:分支推演
    • 从真实环境采样的状态开始,仅进行短步数(k步)的模型推演
    • 用生成的短分支轨迹训练无模型算法(SAC)
  • 优势:平衡模型误差和样本效率,在连续控制任务中表现优异

3.5 DRL控制应用案例

案例1:无人机自主导航与避障
  • 状态空间:无人机自身状态(位置/速度/姿态)+ 环境感知(目标距离/雷达数据)
  • 动作空间:连续三维加速度/角速度
  • 核心算法:PPO(稳定高效)、SAC(鲁棒性好)
  • 奖励函数设计:
    • 朝向目标:rgoal=−distance_to_goalr_{goal} = -distance\_to\_goalrgoal=distance_to_goal
    • 碰撞惩罚:rcollision=−100r_{collision} = -100rcollision=100
    • 能耗惩罚:renergy=−∥a∥2×0.01r_{energy} = -\|a\|^2 \times 0.01renergy=a2×0.01
    • 成功奖励:rsuccess=+500r_{success} = +500rsuccess=+500
案例2:机械臂轨迹跟踪控制
  • 被控对象:机械臂动力学模型 M(θ)θ¨+C(θ,θ˙)θ˙+G(θ)=τM(\theta)\ddot{\theta} + C(\theta,\dot{\theta})\dot{\theta} + G(\theta) = \tauM(θ)θ¨+C(θ,θ˙)θ˙+G(θ)=τ
  • 核心任务:精确跟踪预设轨迹(如"8"字曲线)
  • 算法对比:SAC vs PID
    • 跟踪精度:SAC可达微米级,比PID低一个数量级
    • 抗扰动能力:SAC在外部冲击下能快速收敛,PID易振荡
    • 自适应能力:SAC对负载变化不敏感,PID性能衰减明显
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐