Skip to content

探索与利用

本页速览 RL 的第一性矛盾:从 ε-greedy 到熵正则、参数空间噪声、内在奖励(curiosity)、count-based 与 RND;深度 RL 里探索的具体形态与前沿(Go-Explore、E3B)。

探索与利用 ​

一句话定位:这一页讲清楚探索与利用(Exploration vs Exploitation)——这是 RL 的第一性矛盾,比任何具体算法都更根本;读完后你能识别"死于探索"与"死于利用"两种失败模式,掌握从 ε-greedy 到 curiosity 再到 Go-Explore 的完整探索工具箱,并知道在 RLHF、离线 RL 里探索的特殊形态。

一、矛盾的本质:饭要一口一口吃,但要先知道哪家好吃 ​

1. 一个生活化的直觉 ​

你去一家新城市出差,公司附近有 20 家餐馆。你只有 10 顿晚饭的机会,想吃得最好:

  • 利用(exploitation):昨天那家川菜不错,今天再去;
  • 探索(exploration):反正还有机会,换一家没吃过的试试。

纯利用 → 永远不知道会不会有更好的;纯探索 → 一直在试新店,从没享受过已知的好。任何顺序决策智能体都必须在这两者之间找平衡。这就是 RL 的第一性矛盾:多臂老虎机里已经出现,多臂老虎机页用最小舞台讲透了它的形式化(ε-greedy、UCB、Thompson Sampling);本页把这个问题搬到完整 RL 的舞台上。

2. 两种失败模式 ​

失败模式表现原因典型后果
死于利用太早锁死某个动作,其实别处有更高回报探索不足(ε 太小、初始值太低)收敛到次优策略,卡在局部最优
死于探索一直随机乱试,学不到可用策略探索过度(ε 太大、熵太大)策略退化成随机游走,上线即翻车

深度 RL 里这两种死法都极其常见

训练 DQN/PPO 时最常见的两种失败:损失不降(探索不足,Q 值永远学不对)和训练曲线像心电图(探索过度,策略熵爆表)。调参时第一件事就是看探索量是否合适。

3. 表格 RL 与深度 RL 的探索本质区别 ​

维度表格 RL(小状态空间)深度 RL(大/连续状态空间)
探索单位单个 (s,a) 状态动作对状态空间中的区域/方向
计数器每个 (s,a) 可精确计数状态无数,无法逐状态计数
主要手段ε-greedy、乐观初始化、UCB熵正则、参数噪声、内在奖励
核心困难统计上的不确定泛化性的不确定:没见过 A 区域,B 区域算不算"探索过"?

表格时代探索是"统计学问题"(每个状态试几次就行);深度时代探索是"泛化问题"(怎么让新状态也被有意义地尝试)。

二、表格世界的探索:从 ε-greedy 到 UCB ​

(完整算法与代码见多臂老虎机,这里讲它们在完整 RL 中如何被使用。)

1. ε-greedy 进 RL:每个状态一个 bandit ​

Q-learning 里的 ε-greedy 就是"在每个状态内部跑一个 bandit":

text
Q-learning 中的探索:
  在状态 s:
    以概率 ε → 随机选动作(探索)
    以概率 1-ε → 选 argmax_a Q(s,a)(利用)

表格 Q-learning 中这是默认配置,配合合适衰减(如 ε 从 1.0 线性降到 0.01)在网格世界、小型游戏里效果极好。

2. 乐观初始化:给世界一点初始信任 ​

把 $Q(s,a)$ 初始化为大于真实值的数值(如 +10)。效果:初期每个动作的 Q 都虚高,被选后往真实值回落,探索自动发生。这是"死于利用"最简单的解药——零超参、零随机。

坑:乐观值大小难选。太大 → 前期疯狂乱试;太小 → 没效果。且对深度 RL 不直接适用(神经网络初始化语义不可控)。

3. 表格 UCB:每个 (s,a) 一个置信上界 ​

$$ a = \arg\max_a \left( Q(s,a) + c\sqrt{\frac{\ln N(s)}{N(s,a)}} \right) $$

其中 $N(s)$ 是访问状态 s 的次数,$N(s,a)$ 是 s 下选 a 的次数。计数越少的动作越受优待。表格 MDP 中 UCB 类算法(如 UCB-VI、UCRL)有近乎最优的遗憾界。

面试记忆点

表格探索三件套:ε-greedy(简单)、乐观初始化(零成本)、UCB(理论最优)。三者共享同一思想——给不确定的选项加"机会分"。

三、深度 RL 的探索 I:概率层面的熵正则 ​

1. 问题:ε-greedy 在连续/高维空间失效 ​

ε-greedy 探索是"随机选一个离散动作"。当动作是连续向量(机器人关节力矩)或动作空间巨大时,"均匀随机撒点"几乎不可能命中好动作——就像在太平洋里扔飞镖找宝藏。需要更聪明的探索信号。

2. 熵正则:把"随机性"做成目标函数的一部分 ​

给目标函数加一项策略熵(strategy entropy)正则:

$$ J(\theta) = \mathbb{E}[G_t] + \alpha , \mathcal{H}(\pi_\theta(\cdot \mid s)) $$

熵 $\mathcal{H}(\pi(\cdot|s)) = -\sum_a \pi(a|s)\ln\pi(a|s)$ 度量策略的随机程度。熵大 → 策略分布"平" → 动作多样 → 探索充分。熵正则强制策略保持一定随机性,防止过早坍缩成确定性策略。

实现时 PPO 会在损失里加一项 -β * entropy(最大化熵),SAC 更是把熵作为目标函数本体(最大熵强化学习),详见Actor-Critic 家族。

3. 熵正则的局限 ​

熵正则鼓励的是"在动作空间里均匀随机",但它不知道哪里值得探索。一个经典例子:迷宫里有奖励的房间占 1%,熵正则智能体仍会把大量时间浪费在无奖励区域——因为熵只约束分布形状,不给方向。

探索信号知道"去哪里探索"吗适用范围
ε-greedy否(纯随机)离散、低维
熵正则否(动作均匀随机)连续动作、策略梯度家族
参数空间噪声部分(通过参数影响动作)见下文
内在奖励是(指向未知区域)稀疏奖励、长时域

四、深度 RL 的探索 II:参数空间噪声 ​

1. 核心想法:扰动"大脑"而不是"行为" ​

ε-greedy 和熵正则在动作空间加噪声。参数空间噪声(parameter space noise)改为在策略网络参数上加噪声:

$$ \theta' = \theta + \sigma \cdot \xi, \quad \xi \sim \mathcal{N}(0, I) $$

用扰动后的 $\theta'$ 做一整段轨迹。直觉:在动作空间加噪声每一步都可能"漂走"(高方差),在参数空间加噪声则让整段轨迹保持一致的行为风格——"换个打法打一整局"。

2. NoisyNets 与参数噪声的实现 ​

  • NoisyDueling / NoisyNet(Fortunato et al., 2018):在 DQN 的线性层中加入可学习噪声(factorised Gaussian noise),噪声幅度由网络自己学,随训练自动衰减;
  • 参数空间噪声(Plappert et al., 2018):对策略参数加自适应方差的噪声,方差根据策略回报动态调节。

3. 直觉对比 ​

text
动作空间噪声(ε-greedy/熵):
  每次选动作时随机——每一步都是"手抖"

参数空间噪声:
  每局用一套"变异的策略"玩到底——每次都是"换人格"

参数噪声在连续控制上显著优于动作噪声(OpenAI 的论文里 MuJoCo 任务提升明显),因为它生成的轨迹更"连贯、有目的"。

五、深度 RL 的探索 III:内在奖励(Curiosity) ​

1. 动机:奖励稀疏时"外在信号"等于零 ​

很多真实任务奖励极稀疏:迷宫出口只在最后,游戏只有通关才给分。此时环境给你的奖励几乎恒为零,策略梯度无信号可学。内在奖励(intrinsic reward)思路:自己给自己发奖励,鼓励"去没去过的地方"。

$$ r^{total}_t = r^{ext}_t + \beta , r^{int}_t $$

2. count-based:把"新奇度"当奖励 ​

表格世界里,新奇度 = 状态被访问次数(越少越新):

$$ r^{int}(s) \propto \frac{1}{\sqrt{N(s)}} $$

深度世界里无法逐状态计数,需要用伪计数(pseudo-count):用一个密度模型(如 PixelCNN)估计"状态出现的概率",看到新状态时密度下降,据此估算等效计数。经典工作:Unifying Count-Based Exploration and Intrinsic Motivation(Bellemare et al., 2016),在 Atari 稀疏奖励关卡(如 Montezuma's Revenge)上取得突破。

3. RND:用"预测误差"替代计数 ​

Random Network Distillation(RND)(Burda et al., 2019)是目前最实用的内在奖励之一,思想:

  1. 固定一个随机初始化的网络 $f$(目标网络),权重永远不变;
  2. 训练另一个网络 $\hat f$ 去拟合 $f(s)$(蒸馏);
  3. 内在奖励 = 预测误差 $| \hat f(s) - f(s) |^2$。

直觉:见过的状态容易预测,没见过的状态预测误差大 → 奖励高 → 被鼓励去探索。RND 不需要训练额外模型预测未来,稳定且便宜,是 OpenAI 在 Montezuma's Revenge 等硬核稀疏任务上跑通 DQN 的关键(首次大幅超越人类水平)。

4. ICM:预测"动作的后果" ​

Intrinsic Curiosity Module(ICM)(Pathak et al., 2017)思想:内在奖励 = 对"下一步状态"的预测误差。

$$ r^{int}t = | \phi(s) - \hat\phi(s_{t+1}) |^2 $$

其中 $\hat\phi(s_{t+1})$ 是根据 $(s_t, a_t)$ 预测的特征。ICM 比 RND 多了一个"动作知情"的维度,但它有个著名坑:嘈杂电视问题(noisy-TV problem)——如果环境里有一个随机变化的屏幕(噪声),智能体会被"预测不准的噪声"吸引,一直盯着屏幕看,永远不去完成任务。

RND 与 ICM 的选择

  • RND:更简单、更稳,是工程默认;但对"状态本身含大量不可预测噪声"的环境也脆弱(噪声会拉高所有状态的预测误差)。
  • ICM:动作知情,理论上更精准;多一个模型要训练,且嘈杂电视问题更严重。 工业界现在普遍从 RND 起步。

5. 内在奖励的超参:β 是双刃剑 ​

$r^{int}$ 乘的系数 β 决定探索强度。β 太大 → 智能体只顾新奇、不理任务("好奇心杀死猫");β 太小 → 内在奖励无效。实践中常用衰减策略:早期 β 大、后期 β 小。还有 E3B(Explore, Exploit, and Beware,2023)这类研究专门解决"内在奖励如何随学习动态调节"。

六、前沿:Go-Explore 与结构化的长时域探索 ​

1. Go-Explore:先"回去",再"探索" ​

ICM/RND 类方法的共同弱点:一旦从稀疏奖励区域走出来,就再也回不去了——因为它们没有记忆,只在当前状态附近随机转。Go-Explore(Ecoffet et al., 2021)给出一个反直觉但有效的解法:

  1. Explore:把走过的所有状态存进"存档",只从存档里挑"有趣的"状态出发继续探索;
  2. Exploit:发现高回报状态后,教一个策略学会"从出发点走到这个状态"(imitation + RL)。

结果:Montezuma's Revenge 得分从人类水平的 ~3500 提升到 ~40000(远超人类和此前所有方法)。这是近年探索研究的标志性成果。

2. 其他前沿方向 ​

方向代表工作核心思想
模拟奖励密度ICM/RND预测误差 = 新奇度
状态覆盖最大化MEP、APEX最大化状态空间的"占用度量"
分层探索Go-Explore、hierarchical记忆+回放+分步探索
技能发现DIAYN、Variational Intrinsic Control学习可区分的行为技能库
世界模型探索E3B、plan2explore用学到的前向模型评估"信息增益"

前沿综述可以看前沿进展,动手调参经验见调参与超参数优化。

七、探索失败的诊断:死在哪一步 ​

"训练不涨"未必是算法问题,先判断是不是探索问题。三类最典型的探索失败:

失败模式现象诊断对策
死亡峡谷策略熵快速塌缩到 0,回报不再上升熵曲线断崖熵正则系数太小 / 学习率太大,加探索或降学习率
兴趣陷阱内在奖励一直高但不完成任务(对噪声状态着迷)内在奖励贡献占比异常高、任务指标不动检查是否"嘈杂电视"(ICM 高发),换 RND 或降 β
稀疏饿死所有奖励恒为 0,梯度零信号回报曲线恒 0,Q 值也不动不是探索问题!先补奖励/课程(见奖励工程)

调参时的"探索仪表盘" ​

每次训练都要同时盯三条曲线(衔接评估与基准的第六节):

text
曲线1 回报    :性能是否在涨
曲线2 策略熵  :探索量是否被过早压缩(骤降 = 过早收敛/死亡峡谷)
曲线3 内在奖励:RND/ICM 的平均幅度是否合理(过大 = 兴趣陷阱)

先看探索再调超参是 RL 调参的第一原则:很多"PPO 不收敛"其实是探索信号问题而不是 clip/学习率问题,详见调参与超参数优化的"先诊断后调参"。

八、探索在 RLHF 与 LLM 对齐中的特殊形态 ​

1. 经典 RL 探索 vs RLHF 探索 ​

维度经典 RLRLHF(见RLHF 与人类反馈对齐)
探索主体策略网络LLM 的随机采样
探索空间状态×动作整个 token 序列空间
控制方式ε/熵/内在奖励KL 散度约束(不能偏离参考模型太远)
失败风险探索出坏策略生成乱码/有害内容,成本极高

2. 为什么 RLHF 用 KL 约束而不是熵正则 ​

RLHF 里策略 $\pi_\theta$ 的优化目标是:

$$ \max_\theta \mathbb{E}\left[ r_\theta(x,y) \right] - \beta , D_{KL}\left( \pi_\theta(\cdot \mid x) ,|, \pi_{ref}(\cdot \mid x) \right) $$

  • 熵正则是"不要过早确定"(约束探索量的下限);
  • KL 约束是"不要走太远"(约束探索量的上限)——因为 LLM 从参考模型(SFT 模型)出发,随机生成的语言已经足够多样,问题不是探索不足而是探索失控(生成胡言乱语、陷入 reward hacking)。

核心洞察

探索不是"越猛越好",而是"在安全边界内越有效越好"。RLHF 的边界是 KL 球,经典 RL 的边界是任务本身。设计探索策略前先问:我的"边界"是什么?

九、工程建议表 ​

场景推荐探索方案理由
表格 Q-learning 入门ε-greedy 衰减 1.0→0.01简单够用
离散游戏(Atari)ε-greedy + 乐观初始化DQN 标准配置
连续控制(MuJoCo)熵正则(SAC/PPO 自带)+ 参数噪声动作空间连续,熵是天然探索
稀疏奖励硬核任务RND / ICM → Go-Explore内在奖励才有信号
大模型对齐KL 约束(不要额外熵探索)探索空间巨大,控制更重要
生产系统(推荐)contextual bandit(TS)试错成本高,见多臂老虎机

万能检查清单 ​

  1. 先确认是"探索不足"还是"奖励没设计好":奖励稀疏时先补奖励(奖励工程),再谈探索算法;
  2. 观察探索量:日志里看 ε、熵、内在奖励大小,不要只盯回报曲线;
  3. 一个 seed 不算数:探索强的算法方差大,多 seed 看分布(评估与基准);
  4. 探索算法是最后手段:先试熵正则/ε-greedy,不够再加 RND,别一步上复杂方法。

延伸阅读 ​

参考资料 ​

  • Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction (2nd ed.). MIT Press. 第 2 章(bandit 探索)与第 5 章(on-policy 探索的采样)。
  • Bellemare, M., Srinivasan, S., Ostrovski, G., et al. (2016). Unifying Count-Based Exploration and Intrinsic Motivation. NeurIPS. arXiv:1606.01868
  • Pathak, D., Agrawal, P., Efros, A. A., & Darrell, T. (2017). Curiosity-driven Exploration by Self-supervised Prediction. ICML. arXiv:1705.05363
  • Burda, Y., Edwards, H., Storkey, A., & Klimov, O. (2019). Exploration by Random Network Distillation. ICLR. arXiv:1810.12894
  • Fortunato, M., Azar, M. G., Piot, B., et al. (2018). Noisy Networks for Exploration. ICLR. arXiv:1706.10295
  • Plappert, M., Houthooft, R., Dhariwal, P., et al. (2018). Parameter Space Noise for Exploration. ICLR. arXiv:1706.01905
  • Ecoffet, A., Huizinga, J., Lehman, J., Stanley, K. O., & Clune, J. (2021). First Return, Then Explore. Nature, 590, 580-586. Go-Explore 论文。
  • Burda, Y., Edwards, H., Pathak, D., Storkey, A., Darrell, T., & Efros, A. A. (2019). Large-Scale Study of Curiosity-Driven Learning. ICLR. arXiv:1808.04355(RND 的大规模实验与 noisy-TV 讨论)