强化学习笔记6--IS、PPO、TD、DQN、Actor-Critic

一、重要性采样、 PPO/TRPO

一、On-policy 与 Off-policy

在强化学习的策略梯度方法中,根据交互策略更新策略是否为同一个,分为两类:

  • On-policy(同策略) :与环境交互采集数据的策略,和正在训练优化的策略是同一个。典型代表是基础版 Policy Gradient(REINFORCE)。
    • 核心问题:策略参数θ 每更新一次,采样分布就会发生变化,之前采集的样本数据就不再符合新策略的分布,无法重复使用,样本利用效率极低,环境交互成本很高。
  • Off-policy(异策略) :与环境交互采集数据的策略(行为策略 θ,和正在训练优化的策略(目标策略θ不是同一个。
    • 核心优势:可以复用旧策略采集的大量数据来训练新策略,大幅提升样本效率。

将 On-policy 改造为 Off-policy 的核心数学工具,就是重要性采样(Importance Sampling)


二、重要性采样原理与固有问题

1. 数学定义与推导

重要性采样的本质是:在无法直接从目标分布采样时,通过另一个采样分布的样本,加权修正后估计目标分布下的期望

2. 重要性采样的致命问题:分布不匹配

重要性采样在数学上是无偏估计,但对方差极其敏感。当p(x)和q(x)差异过大时,估计结果会完全失效:

  • 高权重区域采样不足:目标分布 p(x) 的高概率区域,可能是采样分布q(x) 的低概率区域,几乎采不到样本;而采到的样本大多集中在q(x) 的高概率区,这些区域的权重要么极小要么极大。
  • 估计方差爆炸:权重的剧烈波动会让期望估计的方差极大,少量样本就能让结果严重偏离真实值,甚至出现符号错误。
  • 真实分布 p(x)(蓝色)集中在左侧,f(x)(红色)在左侧为负值,因此真实期望为负数。
  • 采样分布 q(x)(绿色)集中在右侧,采样点(绿色圆点)全部落在右侧区域,f(x) 在右侧为正值。
  • 尽管左侧区域的重要性权重极大,但我们几乎采不到左侧的样本,最终加权估计出的期望会变成正数,和真实值完全相反。

这就是后续 TRPO、PPO 算法必须限制新旧策略差异的根本原因:一旦策略更新幅度过大,重要性采样的估计就会彻底失效


三、策略梯度的 Off-policy 改造

1. 轨迹层面的改造(整条轨迹)

2. 单步状态 - 动作层面的改造(Actor-Critic 框架)

关键近似:消去状态分布项

四、分布约束算法:TRPO 与 PPO

为了保证 "新旧策略差异足够小" 这个前提成立,学界提出了两类经典算法,核心都是限制策略更新的步长

1. TRPO(Trust Region Policy Optimization,信任域策略优化)

2. PPO(Proximal Policy Optimization,近端策略优化)

PPO 在 TRPO 的思想基础上做了简化,把复杂的约束优化变成了简单的无约束优化,同时保证了性能,是目前工业界最主流的强化学习算法。

PPO 有两种主流实现形式:

版本一:PPO-Penalty(KL 惩罚版)
版本二:PPO-Clip(裁剪版,即 PPO2)

这是最常用、最简单高效的 PPO 版本,完全不需要计算 KL 散度,直接对重要性比率做裁剪,从根源上限制策略更新幅度。

核心公式 θ为本轮更新学习的参数,θ^k为获取数据使用的参数

本轮更新结束后θ^k <-- θ

直观理解(分两种情况)

简单来说,PPO-Clip 通过一个极其简单的裁剪操作,隐式地把新旧策略的差异限制在一个小区间内,既保证了重要性采样的有效性,又实现了极低的计算成本和极高的稳定性。


五、PPO 完整算法流程


六、补充说明

二、TD、DNQ

一、Critic(评价者)方法的本质

在强化学习中,Critic 不直接决定动作,而是评价"当前策略或当前状态(动作)有多好"。它通过估计状态价值(state value)动作价值(action value) 来实现这一评价。


二、两种经典的 Critic 评价方法

1. 蒙特卡洛方法(MC-based)

2. 时序差分方法(TD approach)

3. 同一组数据,MC 与 TD 的结果可能不同

假设环境只有两个状态 sa​ 和 sb,且 γ=1(无折扣)。

收集到的 6 个 episode 数据:


三、Q-Learning:从 Critic 到策略改进

Q-Learning 是一种典型的 off-policy TD 控制算法,属于 Critic 方法(因为它维护的是动作价值函数 Q,而非显式策略网络)。

1. 策略改进定理

2. Q-Learning 核心更新公式


四、探索与利用的平衡

当直接用 a=arg⁡max⁡aQ(s,a)a=argmaxa​Q(s,a) 选择动作时,那些从未被选中的动作的 Q 值可能一直为 0(甚至未初始化好),而已被选中且获得正奖励的动作会持续被选中,导致永远无法探索到可能更好的动作

解决方案


五、经验回放(Replay Buffer)


六、深度 Q 网络(DQN)的完整算法

将 Q-Learning 与深度神经网络结合时,为了保证稳定性,引入**目标网络(target network)**技术。

网络结构

损失函数

为什么要用目标网络?

DQN 算法伪代码

七、DNQ改进

1. 高估问题与 Double DQN

Double DQN 的核心思想

公式对比

实现细节

DQN 本就维护两个网络(在线网络与目标网络),因此 Double DQN 几乎不增加计算开销,只是改变了目标值的计算方式。


2. Dueling DQN

架构变化

网络结构示意

复制代码
输入s → 共享卷积/全连接层 →
  ├── 分支1: V(s) (标量)
  └── 分支2: A(s,·) (|A|维向量)
输出: Q(s,a) = V + (A - mean(A))

3. Prioritized Experience Replay(优先经验回放)

动机

原始经验池均匀采样,但某些样本(如高TD误差的)对学习更关键。优先回放根据TD误差绝对值决定采样概率,重要样本被更频繁地回放,提升数据效率。

优先级定义

重要性采样修正


4. Multi-step Learning(多步回报)

多步目标定义

在经验池中的存储

需存储连续的 nn 步转移,并注意在 episode 边界截断,不可跨越终止状态。


5. Noisy Nets(噪声网络)

探索方式的改进

传统 ϵ-greedy 在动作空间加入无相关性的随机噪声。Noisy Nets 把噪声直接注入网络参数,产生状态依赖的探索行为。

噪声线性层

将全连接层改造为:

优势


6. Distributional Q-function(分布型Q函数)

从期望到分布

C51 算法

分布型Bellman更新


7. Rainbow:集成所有改进

Rainbow 将上述六项扩展整合在同一智能体中:

八、Q-Learing处理连续动作空间问题

挑战根源:无法直接求解 maxₐ Q(s,a)

在离散动作空间中,max 操作只需遍历有限个动作的Q值;但在连续动作空间(如力矩、舵机角度)中,动作是无穷不可数的,无法通过枚举求得精确最大值。因此目标值

无法直接计算,这是经典Q-learning在连续控制任务中的核心瓶颈。


方案一:采样足够动作后近似取 max

原理

局限与改进


方案二:梯度上升求解 argmax

核心思想

应用时的注意点

方案三:设计特殊网络,使 argmax 可解析计算(NAF)

其思想是强制Q函数具有一种特定形式,使得最优动作和最大值可以直接从网络输出中解析获得 。这实际上是 归一化优势函数(Normalized Advantage Functions, NAF) 的核心。

标准 NAF 公式

解析性质

如何保证 P(s) 正定

网络结构

复制代码
输入 s → 共享层 →
  ├── μ(s)   (动作维度,线性输出,tanh 缩放至动作范围)
  ├── L(s)   (下三角矩阵元素,展平为一维向量)
  └── V(s)   (标量状态价值)
由 L(s) 构建 P(s) = L(s)L(s)^T + εI
输出 Q(s,a) = V(s) - 0.5 (a-μ)^T P (a-μ)

NAF 的优缺点


总结三种方案的对比

方案 核心操作 优点 缺点
随机采样近似 采样K个动作取Q最大 实现极简单,无需网络结构设计 近似粗糙,高维失效,计算随K线性增长
梯度上升 对输入动作做梯度上升求argmax 比随机采样更精准 局部最优,每步多轮迭代耗时,梯度计算开销大
NAF 网络解析 强制Q为二次型,直接输出μ和V argmax与max解析可得,训练高效 Q表达力受限,仅适用于单峰、低维动作空间

在实际应用中,NAF曾用于仿真机器人控制;对于复杂高维连续控制,现在更常见的是DDPG、TD3、SAC等演员-评论家方法,它们通过维护一个策略网络直接输出动作,从根本上避开了显式的 max 优化。

三、Actor-Critic

一、基础策略梯度的方差问题

带基线的蒙特卡洛策略梯度(REINFORCE with baseline) 的梯度估计公式:

核心问题:方差过大

该公式属于蒙特卡洛(MC)采样的策略梯度:直接用单条轨迹的采样回报Gt来估计动作的好坏。 由于环境具有随机性、策略本身也具有随机性,一条轨迹的Gt)会包含从t时刻到回合结束所有步的随机波动,导致梯度估计的方差非常大,最终表现为训练震荡、收敛慢、不稳定。


二、Actor-Critic 核心思想:用期望替代采样

解决方差问题的核心思路:用回报的期望值替代单样本采样值,消除采样带来的随机波动,这就需要引入价值函数(Critic)来估计期望回报,形成「Actor(策略网络,负责决策)+ Critic(价值网络,负责评估)」的 Actor-Critic 框架。

1. 动作价值函数 Q(Action Value)

累积回报Gt的期望就是动作价值函数

2. 优势函数 Advantage

3. 用 V 函数简化:TD 误差替代优势

如果同时维护 Q 网络和 V 网络,参数量大、训练成本高。借助贝尔曼期望方程,可以只用 V 网络来近似优势函数。

贝尔曼期望方程

含义:动作价值 = 即时奖励 + 下一时刻状态价值的期望。

TD 误差近似优势

三、Advantage Actor-Critic (A2C) 算法

1. 算法整体框架

2. 梯度更新公式

3. 网络参数共享

Actor 和 Critic 都以状态s作为输入,都需要对状态进行特征提取,因此底层特征网络可以共享参数,上层拆分为两个输出头:

  • Actor 头:输出动作的概率分布(离散动作)或动作值(连续动作);
  • Critic 头:输出标量状态价值V(s)。

该设计的优势:

  • 减少整体参数量,降低计算开销;
  • 共享的特征表示同时被策略和价值任务监督,特征学习更鲁棒;
  • 在图像输入等需要复杂特征提取的场景中效果尤为显著。

四、异步优势演员 - 评论家(A3C)

1. 设计动机

A2C 为单线程串行采样 + 更新,样本效率和训练速度受限,且单线程采样的样本多样性不足。 A3C(Asynchronous Advantage Actor-Critic)通过多线程并行异步的方式,同时启动多个工作智能体(Worker),各自独立采样、计算梯度,异步更新全局网络,大幅提升训练速度与探索多样性。

2. 算法流程

图中的Δ应为▽,代表梯度

3. 核心特点

  • 异步更新:各 Worker 不需要同步等待,计算完梯度即可更新全局网络,训练效率显著提升;
  • 探索多样性:不同 Worker 的策略存在差异,采样的轨迹覆盖更多状态动作,缓解训练陷入局部最优的问题;

五、Pathwise Derivative Policy Gradient(DDPG)

1. 问题背景:DQN 无法处理连续动作

DQN仅适用于离散动作空间,当动作空间连续时(如机器人关节角度、车辆油门 / 方向盘),无法通过穷举找到最大值对应的动作。

2. 核心原理:确定性策略梯度

流程:

3、DDPG 算法伪代码

四、训练挑战处理

一、稀疏奖励

稀疏奖励(Sparse Reward) 是指环境只在极少数关键状态(如成功或失败时刻)才给出非零奖励,而在绝大多数中间步骤中奖励为零。这会导致两个严重问题:一是有效学习信号极少,样本效率极低;二是随机探索几乎不可能偶然发现奖励,导致智能体停滞不前。因此,如何处理稀疏奖励是强化学习走向实际应用的核心挑战之一。下面围绕你给出的提纲,对解决稀疏奖励的核心概念与方法进行系统性的补充和详解。

一、奖励塑形与内在好奇心机制

1. 奖励塑形
2. 内在好奇心模块

ICM(Intrinsic Curiosity Module) 是奖励塑形的一种特殊形式------内在激励(Intrinsic Motivation)。它不依赖于任务知识,而是让智能体自己产生内在奖励,鼓励其探索新颖或不确定的状态。

类似或扩展方法 包括:

这些方法可以视为广义的奖励塑形,通过赋予智能体"好奇心"或"陌生感"使其在没有外部信号时也能自我驱动。


二、课程学习与逆向课程生成

课程学习(Curriculum Learning) 模仿人类由简入繁的学习方式,让智能体先在简单任务上训练,再逐步过渡到困难任务,以此缓解稀疏奖励带来的探索困难。

课程设计的关键在于"如何定义简单到困难的序列"。常见方法有:

  • 手动设计课程:由人根据领域知识,逐步提升环境难度(如增加障碍物、扩大目标距离、减少允许步数等)。

  • 基于性能的门控:当智能体在当前难度上的成功率超过阈值时,自动升级到下一难度。

  • 逆向课程生成(Reverse Curriculum Generation)

    这是处理稀疏目标类任务非常有效的自动化课程方法,尤其适合"到达指定状态"的问题。其流程为:

    1. 从目标附近开始:先从目标状态(或非常靠近目标的分布)采样起始状态,这些状态下任务极简单,容易成功。

    2. 收集成功轨迹:在这些起始状态下训练并记录成功的轨迹。

    3. 向外扩散:沿着成功轨迹从末梢(更远离目标的状态)向外扩展起始分布,产生稍难的起点。

    4. 筛选:仅保留那些依然能获得一定成功率的起始点,确保新课仍处在可学范围内。

    5. 重复以上步骤,起始分布逐渐向任务原始起点逼近,完成从易到难的自动课程。

这种方法能让智能体首先在保证可以成功的微小区域得到正奖励,学习基本策略,然后一步步扩张到全状态空间,在稀疏奖励环境中极为有效。

其他自动课程生成技术还包括:

  • 自我博弈课程(Self-Play,如 Pairwise OpenAI 方法)PAIRED:通过对抗生成不断变难的环境。

  • 基于难度评分的学习进度:训练一个"难度估计"网络,动态选择进步最快的任务区间(如 ALP-GMM)。


三、分层强化学习

分层强化学习(Hierarchical Reinforcement Learning, HRL) 通过在不同时间尺度上分解任务,将稀疏的全局奖励转变为密集的内部子目标奖励,从结构上缓解稀疏奖励问题。

核心思路:引入高层策略(元控制器)和低层策略(控制器)。

  • 高层策略 以较慢的频率设定子目标(如"先移动到桌子旁边")。

  • 低层策略 接收子目标,并以较快的频率执行动作,其奖励由靠近子目标的程度 来定义,而非最终环境奖励。

    这样,即使在原始任务中只有最终一步才有+1的奖励,低层也能通过不断追逐子目标而获得密集的学习信号。

代表性方法:

  • Feudal Networks (FuN):高层产生隐式目标方向(通过梯度传递),低层使用一个"目标达到"内在奖励来学习子策略。

  • HIRO (Hierarchical Reinforcement Learning with Off-policy Correction):高层输出显式子目标状态,低层通过最大化与子目标的相似度(或最小化距离)获得奖励;对非平稳低层行为做经验修正,适合离线数据。

  • HAC (Hierarchical Actor-Critic):支持多层结构,低层收到的"奖励"是高层能否达成其目标,层层嵌套,专门解决连续控制下的长程稀疏奖励任务。

  • Option-Critic:学习时序抽象的动作选项(Option),每个选项有自己的策略和终止条件,智能体在学习选项中自动发现子技能。

分层强化学习通过时域抽象内部奖励重标定,将原始稀疏问题转化为多个相对密集的子问题,不仅提升探索效率,也使得技能可以复用。


四、事后经验回放

事后经验回放(Hindsight Experience Replay, HER)

二、Imitation learning

在强化学习中,稀疏奖励 的极端情况就是完全没有奖励信号 ------智能体无法从环境中获得任何反馈,因此无法通过试错来学习。而模仿学习(Imitation Learning) 正是在这种"零奖励"或"奖励缺失"场景下的一类重要解决方案,它利用专家提供的示范轨迹来驱动策略学习,相当于用专家的行为记录替代了缺失的环境奖励。下面围绕你给出的提纲,对模仿学习中解决无奖励(稀疏奖励极限)问题的概念和方法进行系统性的补充详解,并阐明其与稀疏奖励问题的内在联系。

一、行为克隆与分布偏移问题

1. 行为克隆
2. 行为克隆的核心问题
3. 缓解方案:数据聚合(DAgger)

DAgger(Dataset Aggregation) 通过在线交互主动扩充训练分布以缓解分布偏移。其流程为:

DAgger 将训练状态分布从"纯专家"逐渐拉向"学习器自身",使策略能见到自己容易犯错的状态并学习纠正方法,大大降低了误差级联。其变体还允许使用专家在线查询、合成数据增强等方式,是行为克隆向实用化演进的重要一步。


二、逆强化学习:从行为反推奖励

当环境中完全没有奖励函数时,逆强化学习(Inverse Reinforcement Learning, IRL) 试图回答:专家行为究竟优化了什么?其目标是根据专家示范轨迹,推断出一个潜在的奖励函数 R(s,a),使得专家策略在该奖励下是最优的

核心思想

IRL 如何解决无奖励/稀疏奖励问题

一旦从少量专家示范中恢复出奖励函数,就可以把它当作密集的塑形信号,随后使用任何标准强化学习算法进行训练。这本质上相当于利用专家数据,自动构造了一个"基于势能的奖励塑形"(如果满足PBRS条件)或一个密集的引导奖励,彻底打破了原始环境无奖励的困境。

扩展与挑战

  • IRL 本身是一个病态问题(多个奖励函数可解释同一行为),需要加入先验或正则化(如奖励的稀疏性、状态域特征线性组合等)。

  • 大量 IRL 算法需要内循环求解 MDP 或策略,计算代价高昂。

相关推荐
一次旅行3 小时前
RLHF全链路深度解析:Reward Model数学推导+PPO完整实战,对比GRPO轻量化方案
人工智能·算法·机器学习
Wang's Blog3 小时前
AI Agent白手起家29: Few Shot 提示词工程实战
人工智能·算法
Mxzx品牌3 小时前
佛山招聘软件哪个好:【帅聘网】匹配度高
笔记·其他·生活
九硕智慧建筑一体化厂家3 小时前
无线动能开关|烘焙后厨防潮免布线照明控制方案
运维·笔记·智慧城市
June`3 小时前
warp shuffle指令
c++·人工智能·算法·cuda
geovindu3 小时前
go:Bit Operation Algorithm
开发语言·后端·算法·golang·位运算法
坏柠3 小时前
C语言进阶:从零实现一个可靠的环形缓冲区,吃透回绕、边界与并发
java·c语言·算法
ZZHow10244 小时前
PyTorch深度学习入门笔记(小土堆)P7-14
人工智能·pytorch·笔记·python·深度学习
九硕智慧建筑一体化厂家4 小时前
直流照明|档案库房专用照明,防紫外线、防纸张老化、适配24小时值守
运维·网络·笔记·智慧城市