一、重要性采样、 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=argmaxaQ(s,a)a=argmaxaQ(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)
这是处理稀疏目标类任务非常有效的自动化课程方法,尤其适合"到达指定状态"的问题。其流程为:
-
从目标附近开始:先从目标状态(或非常靠近目标的分布)采样起始状态,这些状态下任务极简单,容易成功。
-
收集成功轨迹:在这些起始状态下训练并记录成功的轨迹。
-
向外扩散:沿着成功轨迹从末梢(更远离目标的状态)向外扩展起始分布,产生稍难的起点。
-
筛选:仅保留那些依然能获得一定成功率的起始点,确保新课仍处在可学范围内。
-
重复以上步骤,起始分布逐渐向任务原始起点逼近,完成从易到难的自动课程。
-
这种方法能让智能体首先在保证可以成功的微小区域得到正奖励,学习基本策略,然后一步步扩张到全状态空间,在稀疏奖励环境中极为有效。
其他自动课程生成技术还包括:
-
自我博弈课程(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 或策略,计算代价高昂。