论文速读记录 | 2025.06




Contrastive learning as goal-conditioned reinforcement learning (Contrastive RL NCE)

  • arxiv:https://arxiv.org/abs/2206.07568
  • website:https://ben-eysenbach.github.io/contrastive_rl/
  • talk:https://www.youtube.com/watch?v=5_eGcprfw60
  • 来源:偶然看到的文章,NeurIPS 2022,citation 173。发现一作是 Benjamin Eysenbach,也是 DIAYN 的一作,没仔细看 但感觉他的文章质量很高。
  • 主要内容:
    • main idea 似乎非常简单。对于 goal-conditioned RL,即我们希望让 agent 达到 target state \(s_g\),直接用对比学习的方法,维护一个 \(f(s, a, s_g)\) 的相似度函数,\((s,a)\) 越有希望达到 \(s_g\) 状态,这个函数值越大。
    • 具体的,\(f(s, a, s_g)\) 通过 embedding \(\phi(s,a)\)\(\psi(s_g)\) 的内积来计算,loss function 是 \(L = \log\sigma(f(s, a, s_f^+)) + \log(1 - \sigma(f(s, a, s_f^=)))\),其中 \(s_f^+\)\(s_f^-\) 分别是从 state occupancy 中采样的 state \(s_f^+\sim \int p^\pi(s_+ | s,a)ds\; da\)、和随机采样的 state。
    • 理论可以保证,在某个 policy \(\pi\) 下,优化上述 NCE loss 得到的 \(f(s, a, s_g)\),跟最优 Q 函数之间满足:\(\exp(f^*(s, a, s_g)) = [1/p(s_f)]Q^\pi_{s_f}(s,a)\)。这意味着,我们只需要一直 1. 优化 \(f\),2. 选 \(f\) 值更高的 action,就可以得到最优策略。
    • (这很像 temporal distance)
  • 一些形式化定义:
    • 在 Goal-Conditioned RL(GCRL)里,reward 被定义为下一时刻达到目标的概率:\(r_g(s,a) = (1-\gamma)P(s'=s_g | s,a)\)
    • 这样,Q function 直接变成了 state occupancy:\(p(s_+ = s_g) = \mathbb E_{\pi} (1-\gamma)\sum_{t=0}^\infty \gamma^t P(s'=s_g | s_t,a_t)\)
  • 理论在 Appendix B,感觉什么都没说。
  • 实验:
    • baselines:HER(重新标记 \(s_g\)、计算 td-error 的古早方法)、GCBC(通过在达到状态 \(s_g\) 的轨迹上进行 behavior cloning,听起来简单有效)、神秘 model-based 方法。基本都打过了。
    • 在 pixel-based 任务上,与 TD3 + HER + curl / DrQ / Auto-Encoder 进行了比较。都打过了,可能因为 HER 太弱(乱说)。这证明,所提出的方法不需要额外的设计,就能对于 pixel-based 任务学习有意义的 representation。
    • offline setting 做了 d4rl AntMaze ,发现性能甚至超过 IQL 和 td3+bc。
  • 这篇文章声称的 先前工作的不足之处:
    • 1 需要学一个好的 representation 才能学到好的策略,然而只有好的策略才能学到好的 embedding;
    • 2 学 embedding 需要额外的数据增强 对比学习方法,比如 curl 里的图像变换,或者使用 auto-encoder。

C-Learning: Learning to Achieve Goals via Recursive Classification

01 一些形式化定义

定义 γ-discounted 的 state density function 为

\[p_{+}^{\pi}(s_{t+} \mid s_t, a_t) = (1 - \gamma) \sum_{\Delta=1}^{\infty} \gamma^{\Delta} p_{\Delta}^{\pi}(s_{t+\Delta} = s_{t+} \mid s_t, a_t) \]

其中 \(p_{\Delta}^{\pi}(s_{t+\Delta} = s_{t+} \mid s_t, a_t)\) 表示精确地在 \(\Delta\) 步后到达 \(s_{t+}\) 状态,乘 \((1-\gamma)\) 是为了保证这个 density function 积分 = 1。

如果 GCRL 的 reward 定义为 \(r_{s_{t+}}(s_t, a_t) = \mathbb I(s_t = s_{t+})\),则有:

\[Q^\pi(s_t,a_t,s_{t+}) = \frac1{1-\gamma} p_{+}^{\pi}(s_{t+} \mid s_t, a_t) \]

02 C-learning 作者声称 HER 等方法存在的问题

【还没理解】

  • Q-learning 在连续随机环境 + 稀疏奖励下,可能会失效(Q 值恒为 0),因为 state space 无限大,到达一个特定 goal state 的概率 = 0。
  • Hindsight Relabeling 学到的 Q 函数范围 [0, 1] 与真实密度 \([0, \infty)\) 不匹配。
  • 这一切都是因为在连续 state space 里。我们没法讲到达一个状态 \(s^+\) 的概率,概率是 0,所以只能讲概率密度。
  • 使用概率密度定义的 state occupency measure 也是一个概率密度,因此在整个 state space 里积分为 1,但在局部的值属于 \([0, \infty]\),感觉非常反直觉。HER 等方式还是按照离散 state space 学的,因此这样学出来的 Q 只能在 0 1 之间。

03 简单的 C-learning

现在,给定一个 policy \(\pi\),我们希望学习 \(p_{+}^{\pi}(s_{t+} \mid s_t, a_t)\)。我们用 \(f_\theta(s'|s_t, a_t)\) 来拟合 \(p_{+}^{\pi}(s_{t+} \mid s_t, a_t)\),通过学一个分类器 \(C_{\theta}^{\pi}(F=1 \mid s_t, a_t, s_{t+})\),判断一个 \(s'\) 是从 \(p_{+}^{\pi}(s_{t+} \mid s_t, a_t)\) 里采样的,还是从边缘状态分布 \(p(s')\) 里采样的。即:

\[C_{\theta}^{\pi}(F=1 \mid s_t, a_t, s_{t+}) = \frac{p_{+}^{\pi}(s_{t+} \mid s_t, a_t)}{p_{+}^{\pi}(s_{t+} \mid s_t, a_t) + p(s_{t+})}. \]

通过移项加加减减,可以计算得到:

\[f_{\theta}^{\pi}(s_{t+} \mid s_t, a_t) = \frac{C_{\theta}^{\pi}(F=1 \mid s_t, a_t, s_{t+})}{C_{\theta}^{\pi}(F=0 \mid s_t, a_t, s_{t+})} p(s_{t+}). \]

上述 classifier 的 loss function 为(cross-entropy loss):

\[\mathcal{F}(\theta) \triangleq \mathbb{E}_{s_t, a_t \sim p(s_t, a_t)} [\log C_{\theta}^{\pi}(F=1 \mid s_t, a_t, s_{t+}^{(1)})] + \mathbb{E}_{s_t, a_t \sim p(s_t, a_t)} [\log C_{\theta}^{\pi}(F=0 \mid s_t, a_t, s_{t+}^{(0)})]. \]

训到 \(f_\theta(s'|s_t, a_t)\) 之后,只要选择让 \(f_\theta(s_{t+}|s_t, a_t)\) 更大的 \(a_t\),就可以进行一步 policy improvement。

04 基于递归的 offline C-learning

如果我们没法生成 on-policy 的轨迹,而只有一个 off-policy / offline 数据集,就没法直接训练 classifier 了。

我们把 classifier 拆分一下,把它的 loss function 变成:

\[\begin{aligned} \mathcal{F}(\theta, \pi) = \mathbb{E}_{ \underset{\pi(a_{t+1} \mid s_{t+1}), p_{+}^{\pi}(s_{t+} \mid s_{t+1}, a_{t+1})} {p(s_t, a_t), p(s_{t+1} \mid s_t, a_t), } } \big[ & (1 - \gamma) \log C_{\theta}^{\pi}(F=1 \mid s_t, a_t, s_{t+1}) \\ & + \gamma \log C_{\theta}^{\pi}(F=1 \mid s_{t}, a_{t}, s_{t+}) \big] \\ + \mathbb{E}_{p(s_t, a_t), p(s_{t+} \mid s_t, a_t)} & \big[ \log C_{\theta}^{\pi}(F=0 \mid s_t, a_t, s_{t+}) \big] \end{aligned} \]

其中,

  • 第三项仍然是对于从边缘分布 \(p(s_{t+})\) 采样的负样本的 cross-entropy。
  • 第一项是给定 \((s_t, a_t)\) 后,下一时刻的 \(s_{t+1}\) 就是 \(s_{t+}\) 的概率,这个可以从 offline 数据集里得到。这里的 (1-γ) 是参数,前面定义 \(p^\pi_+(s_{t+} \mid s_{t}, a_{t})\) 的时候就有 (1-γ)。
  • 第二项是递归项:对于 \(p(s_{t+1} \mid s_t, a_t), \pi(a_{t+1} \mid s_{t+1})\)\(f_\theta(s_{t+} \mid s_{t+1}, a_{t+1})\),这个分布采样出来的 \(s_{t+}\),对于 \((s_t, a_t)\) 也是可以转移得到的,因此也是正样本。这一项的参数是 γ 这么大。
  • 递归项如何得到,使用神秘的 importance sampling:
    • 先从边缘分布 \(p(s_{t+})\) 采样,然后进行重要性加权,把它变成 \(p^\pi_+(s_{t+} \mid s_{t+1}, a_{t+1})\)
    • 重要性权重:

\[w(s_{t+1}, a_{t+1}, s_{t+}) = \frac{p_{+}^{\pi}(s_{t+} \mid s_{t+1}, a_{t+1})}{p(s_{t+})} = \frac{C_{\theta}^{\pi}(F=1 \mid s_{t+1}, a_{t+1}, s_{t+})}{C_{\theta}^{\pi}(F=0 \mid s_{t+1}, a_{t+1}, s_{t+})}. \]

原论文的解释:直观上,这个损失函数表明,下一个状态应该被标记为正例,从边缘采样的状态应该被标记为负例,但重新加权后从边缘采样的状态是正例。

对于分类器的训练,可以得到很好看的 bellman 形式:

\[\frac{C_{\theta}^{\pi}(F=1 \mid s_t, a_t, s_{t+})}{C_{\theta}^{\pi}(F=0 \mid s_t, a_t, s_{t+})} = (1 - \gamma) \frac{p(s_{t+1} = s_{t+} \mid s_t, a_t)}{p(s_{t+})} + \gamma \mathbb{E}_{\underset{ \pi(a_{t+1} \mid s_{t+1}) } {p(s_{t+1} \mid s_t, a_t), }} \left[ \frac{C_{\theta}^{\pi}(F=1 \mid s_{t+1}, a_{t+1}, s_{t+})}{C_{\theta}^{\pi}(F=0 \mid s_{t+1}, a_{t+1}, s_{t+})} \right]_{sg}. \]

其中 sg 代表 stop gradient。classifier 的训练过程,应该是有收敛性证明的。

05 实际算法

详见 algorithm 2 3。分类器使用三种类型的示例进行训练:(a) 当目标是下一个状态时,训练分类器预测 y = 1;(b) 当目标是随机状态时,预测 y = 0;以及(c) 当目标是随机状态时,预测 y = w(即重要性权重),其中 w 取决于分类器在下一个状态的预测。

实验:做了很多 GCRL task,总之看起来很 work。

据说按照 C-learning 的方法,能推出 HER 的重要的超参数 采样比例 \(\lambda\),最优值 \(\lambda = \frac{1+\gamma}{2}\)。实验验证了这个结论。

Rewriting History with Inverse RL: Hindsight Inference for Policy Improvement

  • arxiv:https://arxiv.org/abs/2002.11089
  • talk:https://www.youtube.com/watch?v=lyIVutL-nXY
  • 来源:Benjamin Eysenbach 的论文,NeurIPS 2020 oral。
  • 主要内容:
    • 类似 HER 的 hindsight relabeling 方法,即认为一段轨迹在学 它最接近的目标,从而得到有效的经验,这种方法可以被重写为 IRL。
    • 试图学了 MaxEnt RL(本站博客),但没有看懂 MaxEnt IRL。
    • 这篇文章发现,HER 这种 hindsight relabeling 方法标的 goal label,应该用 MaxEnt IRL 来生成。即,如果 label \(\psi\) 对应的 reward 是(比如说)\(-\infty \cdot \mathbb I(s_T \neq \psi)\),并且 \(s_t=\psi\) 时 episode 结束,那么选 label \(\psi\) 的过程,用 MaxEnt IRL 做最好。这部分对应 4.1 和 4.2,具体细节也没看懂。
    • 其余都没看懂。

Can a MISL Fly? Analysis and Ingredients for Mutual Information Skill Learning

  • arxiv:https://arxiv.org/abs/2412.08021
  • open review:https://openreview.net/forum?id=xoIeVdFO7U
  • GitHub:https://github.com/Princeton-RL/contrastive-successor-features
  • 来源:Benjamin Eysenbach 的新作,ICLR 2025 oral,好像也是合作者推荐过的文章。
  • 主要内容:
    • 这篇文章关注 skill discovery,即,我们学一系列策略 \(\pi(a|s,z)\),使得在不同的 z 下的策略彼此可以区分,同时又尽可能有多样性、能覆盖最大的状态空间。
    • 现有 skill discovery 工作大多基于最大化 s z 互信息的框架,即 \(\max I(s;z)\)\(\max I(s,s';z)\)\(I(a;b) = H(a) - H(a|b) = H(b) - H(b|a)\),即,如果 a 原先的熵很大,但是给定 b 之后,a 的熵就变得很小,那么 a b 的互信息很大;熵的定义:\(H(a) = -\mathbb E_{p(a)} \log p(a) = -\sum p(a)\log p(a)\)
    • metra 是目前 skill discovery 的 sota 方法之一,它貌似声称 W 距离比互信息更好用。这篇文章通过一些理论分析,声称 metra 仍然在互信息的框架里。然后,它基于这个理论分析,提出了一种跟 metra 很相近、性能持平,但更简单的的方法 CSF(contrastive successor features)。
    • (小火箭这篇我没太看懂,以下内容照搬原文和 open review 上的审稿人总结)
  • 理论分析:
    • metra 论文给出的 metra 形式:\(\max_{\phi} \mathbb{E}_{p(z), p(s,s'\mid z)}\left[(\phi(s') - \phi(s))^{\top}z\right] \quad \text{s.t.} \mathbb{E}_{p(s,s')}\left\|\phi(s') - \phi(s)\right\|_2^2 \leq 1\) 。约束条件用 lagrange 乘子法,乘上一个 \(\lambda\) 干掉,从而得到公式 5 的 dual 梯度下降形式,即 metra 实际应用的形式。
    • metra 中,actor 的目标是 \(\max z^T(\phi(s')-\phi(s))\),这貌似与互信息的信息瓶颈 \(I(s,s';z) - I(s,s'; \phi(s')-\phi(s))\) 的 lower bound 等价。这应该对应 4.2 的内容。
    • 4.1 没看懂,大意应该是互信息 \(I(s,s';z)\) 能写出一个下界,metra 的形式跟这个下界也很相似。这个下界的形式有点像对比学习,把来自于同一个轨迹的 \(\phi(s') - \phi(s)\) 与 z 拉近,而把来自不同轨迹的 \(\phi(s') - \phi(s)\) 与 z 拉远。
  • CSF 是怎么做的:
    • 对于 representation \(\phi(s)\) 的学习和更新,CSF 使用公式 10,它用公式 9 的形式来定义分布 q(分布 q 貌似是用来拟合我们不知道的分布 p 的),然后就得到了公式 10。
    • 对于 CSF 的 actor,希望最大化的 reward 仍然是 \(z^T(\phi(s')-\phi(s))\),CSF 用 successor feature 的形式来处理,即,学习一个与 \(\phi(s)\) 和 z 维度相同的 \(\Psi(s,a,z)\),它相当于在 policy \(\pi(a|s,z)\) 下的高维 Q function,目标是让 \(z^T \Psi(s,a,z)\) 的这个内积值最大。
  • 实验没看懂,感觉做了很多可视化,证明前文的理论推导是合理的,并且比较了 CSF 和 metra 的性能。

A Single Goal is All You Need: Skills and Exploration Emerge from Contrastive RL without Rewards, Demonstrations, or Subgoals

  • arxiv:https://arxiv.org/abs/2408.05804
  • open review:https://openreview.net/forum?id=xCkgX4Xfu0
  • GitHub:https://github.com/graliuce/sgcrl/tree/main
  • 来源:Benjamin Eysenbach 的新作,ICLR 2025。
  • 主要内容:
    • 这篇文章关注 GCRL,但只 conditioned on 一个非常难的 goal,比如到达迷宫终点。目标函数仍然是最大化 γ-discounted state occupancy measure \(\rho^{\pi}(s_f) \triangleq (1 - \gamma) \sum_{t=0}^{\infty} \gamma^t p_t^{\pi}(s_t = s_f)\),其中 \(p_t^{\pi}(s_t = s_f)\) 是在 t 时刻 \(s_t = s_f\) 的概率。
  • 阅读笔记的草稿:
    • 这个工作基于 Eysenbach 的先前工作 Contrastive RL。
    • 主要 method:学一个 \(f(s,a,s_g) = \phi(s,a)^T\psi(s_g)\) 形式的 temporal distance,用了神秘的 exp 公式形式来对比学习,好像这篇文章说是 InfoNCE。然后,学一个 policy,学习让 \(f(s,a,s_g)\) 最大的 action a。
    • 感觉能 work 是很自然的事情,并不反直觉。
    • 为什么 multi-goal 不 work:因为这相当于引入了多个 policy,把多个 policy 混在一起学 temporal distance,当然不 work。
    • 看 open review 上的评价,感觉大家认为这篇工作的 ablation 的结论太强,可能随机性比较大。ablation 说能通过无监督的 contrastive GCRL 学到涌现的技能,如果是真的话,确实是有趣的激动人心的结论。
    • 第三类方法使用概率技术,包括集成[49, 8, 77, 7, 54]、后验采样[50, 48, 10, 19]和不确定性传播[51, 73]——这些方法在定向探索方面可以表现出色,尽管挑战包括调整先验和处理大型集成。【】这是什么?

1000 Layer Networks for Self-Supervised RL: Scaling Depth Can Enable New Goal-Reaching Capabilities

  • arxiv:https://arxiv.org/abs/2503.14858
  • website:https://wang-kevin3290.github.io/scaling-crl/
  • GitHub:https://github.com/wang-kevin3290/scaling-crl
  • 来源:Benjamin Eysenbach 的新作,是 preprint。同学评价这篇文章是暴力出奇迹,可能确实 method 上的创新不够多。
  • 主要内容:
    • main idea:自监督 RL + scaling up。感觉如果训练不是自监督的,就不会有那么密集的监督信号,没法 scaling up。但如果是监督信号是自监督提供的,那么网络无论多复杂都没关系(?)因为总可以学到有意义的 structure。
    • 故事:希望通过扩大 RL 网络规模,来实现类似传统 nlp → 大模型的性能飞跃。
    • 具体实现:网络结构使用了 resnet,值得注意。
    • 实验结果:增加网络深度比宽度更 work;在 offline setting 里增加网络深度,没有性能提升,可能因为 offline 性能的上限取决于数据集质量。论文没有提供大网络 vs 小网络的训练时间的比较结果。

Skill Expansion and Composition in Parameter Space

  • arxiv:https://arxiv.org/abs/2502.05932
  • website:https://ltlhuuu.github.io/PSEC/
  • open review:https://openreview.net/forum?id=GLWf2fq0bX
  • 来源:AIR 的文章。
  • 主要内容:
    • 先训一个 base policy \(\pi_0(a|s)\),然后在此基础上,使用小数据集训练 LoRA 微调模块 \(\pi_1,\pi_2,\cdots\)
    • 技术细节:这篇文章的 policy 都是 diffusion,所以做的都是 offline RL。
    • 实验:4.1 可以用安全 LoRA 和高速 LoRA 的组合,来让自动驾驶兼顾安全性和性能;4.2 可以先在 DMControl 上学 stand,然后用一个 LoRA 学 walk,最后在此基础上再用一个 LoRA 学 run,发现学的非常快,需要的数据也很少;4.3 可以用 d4rl 训一个 base policy,然后改 agent 的腿长之类的参数,用小数据集微调,发现性能更好。

posted @ 2025-06-01 07:14  MoonOut  阅读(92)  评论(0)    收藏  举报