Skip to content

分层强化学习

分层强化学习(Hierarchical RL, HRL)通过引入时间抽象和任务分解,让智能体在多层策略间协作解决长时序、大空间问题——就像人类先制定月度计划再分解到每周每天。本页梳理 Options 框架、MAXQ、FeUdal Networks、目标条件 RL、Option-Critic、DIAYN 等核心方法,并覆盖 2024–2025 年 HRL 与大语言模型、机器人基础模型的融合前沿。前置阅读:强化学习概览、里程碑。

为什么需要分层? 在标准马尔可夫决策过程(MDP,一种用状态 SS、动作 AA、转移概率 PP、奖励 RR 来建模序贯决策问题的数学框架)中,智能体每一步都要在原始动作空间中决策。当任务需要数千步才能获得奖励(如”从卧室走到厨房打开冰箱”),扁平 RL 的回报信号 Gt=r1+γ⋅r2+γ2⋅r3+⋯+γn−1⋅rnG_t = r_1 + \gamma \cdot r_2 + \gamma^2 \cdot r_3 + \cdots + \gamma^{n-1} \cdot r_n 会因折扣因子 γ\gamma 的指数衰减而几乎消失——这被称为稀疏奖励问题(Sparse Reward Problem)。HRL 通过时间抽象把”走 200 步到厨房”压缩为高层的一步决策,从根本上缓解了这一困境。

把分层 RL 想象成公司的管理层级——CEO 只管定战略方向(“今年主攻海外市场”),总监把战略拆成季度目标(“Q1 打通东南亚渠道”),基层员工执行具体动作(“给泰国供应商发邮件”):

  • 时间抽象(Temporal Abstraction)= 高层策略的每一步对应低层很多步——CEO 每季度做一次决策,员工每天都在执行,这种”多步当作一步”就是 Option 的本质。
  • 探索效率= 扁平(非分层)RL 在大地图上像无头苍蝇乱撞;分层 RL 的高层直接选”去厨房”还是”去卧室”,大幅缩小搜索空间。
  • 技能复用= 低层学会的子策略(开门、行走、抓取)可以被不同高层任务复用——就像员工学会了用 Excel,任何项目都能用。
  • Options 框架= 把”一个子策略 + 它的终止条件 + 可用状态集合”打包成一个可复用的”宏动作”,理论清晰,是 HRL 的标准框架。
  • FeUdal Networks= Manager 智能体输出一个抽象目标向量(方向),Worker 智能体在低层执行去达成这个方向——两端异步训练,各司其职。
  • 目标条件 RL(Goal-Conditioned RL)= 把”目标”作为策略的额外输入,一个策略网络就能处理”去这里""到那里”等多种任务,是 HRL 的现代实现基础。形式化为策略 π(a∣s,g)\pi(a|s, g),其目标是最小化到达目标的距离,典型做法是用 HER(Hindsight Experience Replay,事后经验回放)对失败轨迹重新标注目标来提升样本效率。
  • Option-Critic= Bacon 等人 2017 年提出的方法,将 Option 的内部策略和终止函数都端到端地用梯度下降学习,无需人工预设 Option 的数量或结构——是”可微 HRL”的里程碑工作。
  • DIAYN(Diversity is All You Need)= Eysenbach 等人 2019 年提出的无监督技能发现方法,通过最大化”技能标识 z 与状态 s 的互信息 I(z;s)I(z; s)“来让智能体自动学出多样化的子策略,完全不需要外部奖励。
  • LLM 作为高层规划器= 2023 年以来的新范式——用大语言模型(LLM)充当 HRL 的 Meta-Controller,输出自然语言或代码形式的子目标,再由底层 RL 策略执行,代表工作包括 SayCan、Code as Policies、Voyager 等。

两层分层策略:Meta-Controller + Sub-Policies

Section titled “两层分层策略:Meta-Controller + Sub-Policies”

高层每隔若干步选一个子目标/子策略,低层执行原子动作去达成它:

Option 由三个部分定义,把它当作”增强版动作”嵌入到 RL 框架中:

SMDP 数学基础:Option 的 Bellman 方程

Section titled “SMDP 数学基础:Option 的 Bellman 方程”

Options 框架的数学基础是半马尔可夫决策过程(Semi-MDP, SMDP)——标准 MDP 的推广,允许一个”动作”(即 Option)持续多步。在 SMDP 中,高层策略不是每一步选动作,而是在每个 Option 执行完毕(经过 N 步)后才做下一个决策。

一个 Option oo 由三元组 (Io,πo,βo)(I_o, \pi_o, \beta_o) 定义:

  • Io⊆SI_o \subseteq S:初始集(Initiation Set),只有在属于 IoI_o 的状态才能启动该 Option。
  • πo(a∣s)\pi_o(a|s):内部策略(Internal Policy),在 Option 执行期间按步选择原子动作。
  • βo(s)∈[0,1]\beta_o(s) \in [0, 1]:终止函数(Termination Function),在每一步以 βo(s)\beta_o(s) 的概率终止该 Option。

SMDP 的最优 Bellman 方程变为对 Option 的递归。设 Rˉ(s,o)\bar{R}(s, o) 为在状态 ss 执行 Option oo 的累计折扣奖励期望,P(s′∣s,o)P(s' | s, o) 为执行完毕后到达状态 s′s' 的概率,则高层值函数为:

Q∗(s,o)=Rˉ(s,o)+γN⋅∑s′P(s′∣s,o)⋅max⁡o′Q∗(s′,o′)Q^*(s, o) = \bar{R}(s, o) + \gamma^N \cdot \sum_{s'} P(s' | s, o) \cdot \max_{o'} Q^*(s', o')

其中 NN 是 Option 执行的步数。与标准 MDP 的 Bellman 方程 Q∗(s,a)=r+γ⋅∑P(s′∣s,a)⋅max⁡Q∗(s′,a′)Q^*(s, a) = r + \gamma \cdot \sum P(s'|s,a) \cdot \max Q^*(s',a') 相比,区别在于单步折扣 γ\gamma 被替换为多步折扣 γN\gamma^N,奖励也换成了整个 Option 期间的累计值。

intra-option learning(Option 内学习)是一种关键优化:不必等 Option 终结才更新值函数,而是利用 Option 执行过程中的每一步数据来更新 Q(s,o)Q(s, o),显著提高数据效率。

MAXQ 框架(Dietterich, 2000)把联合任务 MM 的值函数 Q∗(s,M)Q^*(s, M) 递归分解为子任务值函数之和:

Q∗(s,M)=Vπ(s,M)+∑iC∗(s,Mi)Q^*(s, M) = V^{\pi}(s, M) + \sum_i C^*(s, M_i)

其中 Vπ(s,M)V^{\pi}(s, M) 是子任务本身的完成奖励,C∗(s,Mi)C^*(s, M_i) 是完成子任务 MiM_i 后整个父任务的剩余回报期望(Completion Function)。这种分解保证了分层最优性(Hierarchical Optimality)——在给定分层结构约束下,策略是最优的(虽然未必是全局最优)。MAXQ 的核心优势在于状态空间天然分块,不同子任务可独立学习。

FeUdal Networks(Vezhnevets et al., 2017)的核心创新是高层输出方向性目标向量而非具体子目标:

  • 目标向量(Manager 输出,单位方向):gt=CNNgoal(st)g_t = \text{CNN}_{\text{goal}}(s_t)
  • Worker 目标(最近 cc 步目标方向之和):wt=gt−c:tw_t = g_{t-c:t}
  • Worker 动作:at=πworker(a∣st,wt)a_t = \pi_{\text{worker}}(a \mid s_t, w_t)

Manager 的训练目标不需要外部子目标标签——它通过 transition gradient 学习:目标向量应与状态转移方向对齐:

LManager=−∑t(gt)T⋅(CNNstate(st+c)−CNNstate(st))L_{\text{Manager}} = -\sum_t (g_t)^T \cdot \left(\text{CNN}_{\text{state}}(s_{t+c}) - \text{CNN}_{\text{state}}(s_t)\right)

这个巧妙的损失函数让 Manager 自动学会输出”状态空间中有意义的方向”,而 Worker 则学习往这些方向走,两端端到端联合训练但梯度互不干扰(Manager 不接收 Worker 的梯度,反之亦然)。

分层结构把”在 1000 步里找宝藏”变成”先选 10 个区域,再在每个区域 100 步里搜”,探索效率指数级提升:

一个房间导航任务:4 个房间,每间有门相通;高层选”去哪个房间”,低层执行原子移动到目标房间。展示分层如何简化长时序问题:

import numpy as np
# 简化的 4 房间导航:状态 = 当前房间编号 0-3
# 高层动作 = 目标房间;低层动作 = 上/下/左/右移动
n_rooms = 4
# 房间邻接(简化为线性:0-1-2-3 相邻)
adjacent = {0: [1], 1: [0, 2], 2: [1, 3], 3: [2]}
# 高层 Q 表:在房间 s 选目标房间 g
Q_high = np.zeros((n_rooms, n_rooms))
# 低层策略:从房间 s 到目标 g,返回下一步该去的相邻房间
def low_level(s, target):
# 简化:贪心往目标方向走(实际中是学出来的子策略)
if s == target:
return s
neighbors = adjacent[s]
return min(neighbors, key=lambda x: abs(x - target))
alpha, gamma = 0.1, 0.9
for episode in range(500):
s = np.random.randint(n_rooms) # 随机起始房间
goal_room = np.random.randint(n_rooms) # 随机最终目标
for step in range(20):
if s == goal_room:
break
# 高层选一个中间目标房间(贪婪 + 探索)
if np.random.rand() < 0.2:
g = np.random.randint(n_rooms)
else:
Q_high[s, s] = -999 # 不选自己作为目标
g = np.argmax(Q_high[s])
# 低层执行:走到目标房间 g
steps_taken = 0
while s != g and steps_taken < 5:
s = low_level(s, g)
steps_taken += 1
r = 10 if s == goal_room else -1 # 到达最终目标大奖励
Q_high[s, g] += alpha * (r + gamma * np.max(Q_high[s]) - Q_high[s, g])
print("高层 Q 表(近似):")
print(np.round(Q_high, 1))

实验建议:把上面的 goal_room 改成更复杂的 4×4 网格,观察扁平 Q-learning 需要多少 episode 才能收敛——通常会多一个数量级。这就是分层带来的探索红利。

传统 HRL 依赖人工定义子目标或 Option 结构,这在复杂环境中不可扩展。2020 年以来,无监督技能发现(Unsupervised Skill Discovery) 成为 HRL 最活跃的研究方向。

DIAYN 的核心思想:好的技能集合应该让不同技能访问的状态分布尽量不同。形式化地,最大化技能变量 z 与状态 s 的互信息:

max⁡I(z;s)=H(z)−H(z∣s)\max I(z; s) = H(z) - H(z \mid s)

直觉是:如果一个判别器 q_φ(z | s) 能从当前状态 s 准确推断出正在执行哪个技能 z,说明各技能确实访问了不同的状态空间区域。训练时,策略 π(a | s, z) 最大化 log q_φ(z | s),判别器 q_φ 则学习区分状态来自哪个技能,两者对抗训练(类似 GAN)。

OPAL 与 SPiRL:从离线数据中提取技能

Section titled “OPAL 与 SPiRL:从离线数据中提取技能”

2022 年起,研究者发现可以从大规模离线数据集中自动提取可复用技能:

  • OPAL(Offline Abstraction of Latent policies):从离线轨迹中学习一个 VAE(变分自编码器,一种通过编码-解码学习紧凑潜在表示的生成模型)结构,编码器将轨迹压缩为潜在技能变量,解码器充当低层策略。
  • SPiRL(Skill-Prior RL):在 OPAL 基础上学习技能的先验分布 p(z),新任务中高层从该先验采样技能再微调,实现了跨任务技能迁移。

这类方法代表了 HRL 与离线 RL 融合的趋势——先从无标签数据中学技能,再组合技能解决下游任务。

2024–2025 新进展:基础模型时代的 HRL

Section titled “2024–2025 新进展:基础模型时代的 HRL”

随着大语言模型和视觉-语言-动作模型的崛起,HRL 正经历范式转变:

  • LLM 作为高层规划器:SayCan(Google, 2022)让 LLM 输出自然语言子任务(“1. 找到可乐 2. 抓取 3. 放到桌上”),再用价值函数评估每个子任务的可行性;Voyager(NVIDIA, 2023)用 GPT-4 在 Minecraft 中自动生成技能代码并构建技能库;这些本质上是 HRL 的 Meta-Controller 换成了 LLM。
  • VLA 模型隐含分层:Google 的 RT-2(2023)、RT-X(2023)以及 Physical Intelligence 的 π0(2024)等视觉-语言-动作模型,在单一神经网络中隐式完成了高层语义理解到低层动作的端到端映射,某种程度上模糊了显式分层的边界,但内部 Transformer 层是否自发形成层级结构仍是开放问题。
  • LeRobot(Hugging Face, 2024):开源机器人学习平台,内置 ACT(Action Chunking Transformer,一种用 Transformer 一次性预测多步动作的模仿学习架构)和 Diffusion Policy,使 HRL 的低层技能训练更加平民化。
  • Diffusion Policy 作为低层技能:将扩散模型(Diffusion Model,通过逐步去噪生成数据的生成模型)用于机器人动作生成,天然支持多模态动作分布,已被广泛用作 HRL 架构中的低层执行器。
  • 技能发现与世界模型结合:2024 年的研究(如基于 DreamerV3 的分层变体)尝试在世界模型的潜在空间中进行高层规划,结合低层技能库实现高效长程任务解决。
  • 何时需要 HRL= 当任务有明显层级结构(导航 + 操作)、奖励极度稀疏、状态空间巨大时,HRL 的收益最大;简单任务上 HRL 的额外复杂度反而拖累性能。一个经验法则:如果扁平 RL 在 10⁶ 步内学不会,就值得尝试 HRL。
  • 子目标的定义是关键= 好的子目标(中间状态)应该让高层决策频率合理、低层任务可学——自动发现子目标(intrinsic motivation、bisimulation、salient states)是活跃研究方向。bisimulation(互模拟)是指将行为等价的状态归为同一等价类,用于状态抽象。
  • 异步时间尺度= 高层和低层更新频率不同,需要设计合适的折扣因子和回报分配(intra-option learning)避免信号混乱。实践中,高层折扣因子 γ_high 通常设得比低层 γ_low 更接近 1,以鼓励长远规划。
  • 预训练子策略再组合= 实践中常先单独训练低层技能(行走、抓取),再训练高层调度——比从头联合训练稳定得多,类似迁移学习的思路。
  • HRL 与 Offline RL 结合= 从离线数据中学子技能再组合,是工业落地的实用方向,参见离线强化学习。
  • 不要过度分层= 两层通常够用;三层以上调参困难、收益边际递减,除非任务结构天然多层(如 Minecraft 的多级合成)。
  • LLM 规划 + RL 执行的实用模式= 2024 年最常见的工业落地模式是”LLM 生成子任务序列 + 预训练低层策略库执行”——无需联合训练,各模块可独立迭代。关键挑战是 LLM 输出的子任务必须与低层策略库的能力匹配(affordance grounding)。
  • Option 数量的选择= Option-Critic 等方法可自动学习终止函数来增减有效 Option 数量,无需人工调参;但初始 Option 数仍影响收敛速度,建议从 4–16 个开始。
  • 机器人长程导航= 家庭服务机器人”去厨房拿可乐”——高层规划”厨房→冰箱→可乐”子目标,低层执行路径规划和抓取,Boston Dynamics、丰田研究院采用此思路。
  • 自动驾驶决策分层= 高层决策(变道/直行/让行)+ 低层控制(方向盘/油门)的分层架构是自动驾驶的工业标准,Waymo、Mobileye 采用类似架构。
  • 游戏 AI= Minecraft 中”先砍树→做木板→造工作台→造工具→挖矿”的多级目标链,OpenAI 的 VPT、MineRL 竞赛展示了 HRL 在开放世界游戏的潜力。
  • 工业流程控制= 化工厂”升温→加催化剂→保温→降温出料”的多阶段流程,HRL 让高层管阶段切换、低层管参数微调。
  • 对话系统分层管理= 任务型对话系统高层决定对话阶段(信息收集/确认/执行),低层生成具体回复语句。详见多智能体强化学习。
  • 机器人技能库构建= 先离线训练一大批基础技能(开门、抓杯子、倒水),再用 HRL 的高层调度组合出复杂任务——DeepMind 的 RT-2 采用了类似思路。
类库语言说明
Gymnasium + Hierarchical WrapperPython基于 Gymnasium 自定义分层环境,社区有多种封装
DIAYN / HiSD 实现Python分层策略的开源研究实现(基于 PyTorch)
Stable-Baselines3 + GoalEnvPython通过 GoalEnv 接口支持目标条件 RL,是 HRL 的轻量起点
Franka Kitchen (D4RL)Python经典 HRL benchmark 环境,多物体多阶段厨房操作任务
MineRLPythonMinecraft 环境与人类示范数据集,HRL 研究常用
术语英文解释
分层强化学习Hierarchical RL (HRL)用多层策略、时间抽象分解长时序复杂任务的 RL 范式
时间抽象Temporal Abstraction把多步动作打包成单个高层决策,缩小决策频率和搜索空间
OptionOption由初始集、内部策略、终止函数三要素定义的可复用宏动作
元控制器Meta-ControllerHRL 中的高层策略,负责选择子目标或子策略
子策略Sub-PolicyHRL 中的低层策略,执行原子动作以完成高层指定的子目标
目标条件 RLGoal-Conditioned RL把目标作为策略额外输入,一个网络处理多种任务的 RL 设定
内在动机Intrinsic Motivation用内在奖励(如好奇心、信息增益)驱动智能体自主发现子目标
FeUdal NetworksFeUdal NetworksManager 输出抽象目标方向、Worker 执行的分层架构
半马尔可夫决策过程SMDP允许动作持续多步的 MDP 推广,是 Options 框架的数学基础
  • Sutton, Precup & Singh,「Between MDPs and Semi-MDPs: A Framework for Temporal Abstraction in RL」(Artificial Intelligence 1999):Options 框架的奠基论文,定义了 HRL 的标准数学框架。
  • Dietterich,「The MAXQ Method for Hierarchical Reinforcement Learning」(ICML 2000):MAXQ 论文,提出值函数分解的分层方法,经典 HRL 文献。
  • Vezhnevets et al.,「FeUdal Networks for Hierarchical Reinforcement Learning」(ICML 2017):FeUdal Networks 论文,Manager-Worker 架构的深度学习时代代表。
  • Eysenbach et al.,「Diversity is All You Need: Visual Skills Without Any Reward Function」(ICLR 2019):DIAYN 论文,用互信息最大化自动发现多样子策略,无监督技能发现里程碑。
  • Nachum et al.,「Data-Efficient Hierarchical Reinforcement Learning」(NeurIPS 2018):HIRO 论文,提出 off-policy 分层方法,显著提升数据效率。
  • Kulkarni et al.,「Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation」(NeurIPS 2016):h-DQN 论文,首次用深度网络实现双层分层 RL 并验证探索效益。
  • Pateria et al.,「Hierarchical Reinforcement Learning: A Comprehensive Survey」(ACM Computing Surveys 2022):HRL 的现代综述,系统梳理方法分类与应用。