强化学习 (RL) 已经让我们拥有了能够精通复杂视频游戏、控制模拟机器人,甚至抓取现实世界物体的智能体。然而,一个长期困扰该领域的问题是: RL 是出了名的数据饥渴

一个智能体通常需要与环境进行数百万次交互才能学会一项任务。在高速模拟中,这还好——但在现实世界中,一个机械臂可能需要几秒钟才能执行一次动作,这可能意味着数月甚至数年的训练时间

当智能体直接从*原始像素 *(例如来自摄像头的画面) 中学习时,问题会更加严重。虽然人类可以毫不费力地理解视觉输入,但对 RL 智能体来说,图像只是一个高维数字数组。相比之下,如果提供干净、结构化的“状态”信息 (如关节角度或位置) ,智能体的学习会容易得多。然而在许多现实场景中,这种完美的状态信息并不存在,我们只有像素。

这种样本效率低下的问题一直是限制 RL 在机器人等领域发展的主要瓶颈。但如果我们能在智能体尝试学习控制之前,先让它理解这些像素——提取有意义的高级特征,会怎样呢?

这正是加州大学伯克利分校研究人员提出 CURL (Contrastive Unsupervised Representations for Reinforcement Learning,用于强化学习的对比无监督表示) 的核心思想。CURL 将标准的 RL 算法与来自计算机视觉的强大对比学习技术相结合。结果是: 一个能以前所未有的样本效率从像素中学习的智能体,其性能几乎能与那些可以访问环境真实状态的智能体相媲美。


背景: RL、自监督与对比学习

在深入了解 CURL 之前,让我们先回顾一些基础知识。

从像素进行强化学习

大多数基于图像的 RL 算法都采用 **Actor-Critic **(演员-评论家) 框架:

  • 演员 (策略) : 选择动作以最大化预期未来奖励。
  • 评论家 (价值函数) : 评估每个动作的好坏,预测未来奖励。

演员和评论家相互促进——评论家指导演员,而演员的探索为评论家生成经验。

对于 DeepMind Control Suite 中的连续控制任务,CURL 使用 Soft Actor-Critic (SAC),这是一种强大的离策略 (off-policy) 算法。SAC 不仅优化高奖励,还优化高策略熵,以鼓励探索。

SAC 的评论家 \( Q_{\phi_i} \) 最小化贝尔曼误差:

\[ \mathcal{L}(\phi_i, \mathcal{B}) = \mathbb{E}_{t \sim \mathcal{B}} \left[ \left( Q_{\phi_i}(o, a) - (r + \gamma(1 - d)\mathcal{T}) \right)^2 \right] \]

目标值为:

\[ \mathcal{T} = \left(\min_{i=1,2} Q^*_{\phi_i}(o',a') - \alpha \log \pi_{\psi}(a'|o')\right) \]

其中,\( \alpha \) 是熵系数,\( Q^*_{\phi_i} \) 表示评论家参数的指数移动平均值。

演员 \( \pi_{\psi} \) 最大化:

\[ \mathcal{L}(\psi) = \mathbb{E}_{a \sim \pi} \left[ Q^{\pi}(o, a) - \alpha \log \pi_{\psi}(a|o) \right] \]

对于 Atari 游戏中的离散控制,CURL 使用数据高效的 Rainbow DQN,它结合了 DQN 的多种改进。


对比学习简述

我们希望 RL 智能体能够将像素处理成鲁棒的特征空间。自监督学习,尤其是对比学习,对此非常适合。

对比学习教会编码器将相似的输入嵌入到相近的位置,将不同的输入嵌入到相远的位置。这通常被比作一个字典查询过程:

  1. 锚点 (Query) : 原始图像。
  2. 正样本 (Positive) : 同一图像的变换版本 (例如裁剪) 。
  3. 负样本 (Negatives) : 批次中的其他图像。

对比学习的高层概览。一个观测 ‘o’ 经过数据增强,生成一个查询 ‘o_q’ 和一个键 ‘o_k’。它们被送入两个编码器以产生特征向量 q 和 k,然后用于计算对比损失。

图 1. 对比学习的概念图: 同一观测的增强视图在学习到的特征空间中比其他观测更接近。

InfoNCE 损失将此过程形式化为:

\[ \mathcal{L}_{q} = \log \frac{\exp(q^{T}Wk_{+})}{\exp(q^{T}Wk_{+}) + \sum_{i=0}^{K-1}\exp(q^{T}Wk_{i})} \]

其中 \( k_+ \) 是正样本的键,其余为负样本。这促使编码器捕捉语义内容,同时忽略无关变化。


CURL 的工作原理

CURL 将对比学习直接融入 RL 循环中——无需单独的预训练阶段。表示学习与策略学习同步进行。

CURL 架构图。从经验回放池中采样一个批次,通过数据增强生成查询和键的观测,并分别送入各自的编码器。查询用于 RL,而查询和键的配对则用于对比损失。

图 2. CURL 将查询编码器 (通过 RL 损失和对比损失更新) 与键编码器 (通过动量平均更新) 结合起来,实现控制与表示学习的联合训练。

第 1 步: 采样与数据增强

CURL 从经验回放池中采样一批过去的观测。每个观测经过随机裁剪增强两次,生成:

  • 查询 (Query) \( o_q \)
  • 键 (Key) \( o_k \)

随机裁剪数据增强的视觉示例。一张输入图像被裁剪两次,以创建一个锚点 (查询) 和一个正样本 (键) 。

图 3. 随机裁剪在堆叠帧之间保持时序一致性。

在 RL 中,观测通常是多帧图像的堆叠。CURL 在堆叠中的所有帧上应用相同的裁剪坐标,从而保留时间结构。

第 2 步: 编码

  • 查询编码器 \( f_{\theta} \): 将 \( o_q \) 编码为特征向量 \( q \),供 SAC / Rainbow 的演员和评论家使用。
  • 键编码器 \( f_{\theta_k} \): 将 \( o_k \) 编码为特征向量 \( k \)。

第 3 步: 动量编码器技巧

借鉴自 MoCo,键编码器权重通过指数移动平均 (EMA) 更新:

\[ \theta_k \leftarrow m \theta_k + (1 - m) \theta \]

这可产生稳定的键特征,从而提升对比学习效果。

第 4 步: 联合优化

查询编码器更新来源于:

  1. RL 损失: 使用 \( q \) 计算的 SAC 或 Rainbow 损失。
  2. 对比损失: 在 \( q \) 与 \( k \) (正样本与负样本) 间计算的 InfoNCE 损失。

这种双重驱动能学到既富语义又与控制相关的特征。


实验结果

作者在 DeepMind Control SuiteAtari100k 上对 CURL 进行了基准测试。

DeepMind Control Suite

DMControl 在 500k 和 100k 步数时的结果表。CURL 在各种环境中持续获得最高分。

表 1. 在 500k 步时,CURL 在大多数基准环境中均达到了当前最佳水平。

对比 DMControl 中位数分数的柱状图。

图 4. 在 100k 步时,CURL 表现优于此前的基于像素的 RL 算法;在 500k 步时与基于状态的 SAC (State SAC) 中位数得分持平。

展示 Dreamer 与 CURL 数据效率对比的柱状图。

图 6. Dreamer 需要比 CURL 多 4.5 倍的步数才能达到 CURL 在 100k 步时的性能。

CURL 与 State SAC 的学习曲线网格图。

图 7. CURL 在许多 DMControl 环境中的表现几乎与 State SAC 匹敌——缩小了状态与像素之间的差距。


Atari100k

Atari100k 基准测试的结果表。CURL 在 Efficient Rainbow 的基础上有所改进,并在一些游戏中达到了超人类水平的性能。

表 2. 在 26 款游戏中,CURL 在 19 款上优于 Efficient Rainbow;在 JamesBond 和 Krull 上超越了人类水平。


消融实验洞察

CURL 的关键设计选择推动了其成功:

  • 动量编码器与双线性相似度: 用普通编码器或余弦相似度替换会降低性能。
    有无 EMA 对比;双线性相似度与余弦相似度对比。

    图 5. EMA 和双线性相似度带来了更优且更稳定的学习效果。

  • 时间动态: 在涉及运动的任务中,对堆叠帧 (红色) 进行对比优于对单帧 (绿色) 进行对比。
    堆叠帧与单帧学习曲线对比。

    图 8. 对于需要高度协调的任务,时间信息至关重要。

  • 与奖励无关的表示: 将编码器与 RL 损失解耦后,依然能生成接近最优的策略。
    分离编码器实验结果。

    图 9. 仅用对比学习训练的编码器即可产生可用于控制的通用特征。

  • 状态预测差距: 像 humanoid-run 这类从像素预测真实状态误差较大的任务,恰是 CURL 相比基于状态的 SAC 落后最多的地方。
    状态预测误差条形图。

    图 11. 从像素预测状态的可预测性与 CURL 的相对性能高度相关。


结论

CURL 提供了一个简单且强大的方案来克服基于像素的 RL 样本效率低下问题:

  1. 最小复杂度,最大收益: 在强大的 RL 基线上,仅增加一个结合数据增强的对比学习目标即可。
  2. 鲁棒的表示学习: 实例判别塑造出能够理解视觉语义的编码器。
  3. 缩小差距: 从像素中实现接近“先知” (oracle) 级的性能——逼近基于状态的基线。

该工作为高效利用样本的像素级 RL 树立了新标准,并催生了 RL 中关于数据增强与自监督的一波研究热潮。通过将学习时间从数周缩短到数小时,CURL 为在现实世界中打造高性能 RL 智能体迈出了重要一步。