论文速读纪录 | 2025.01




Diversity is All You Need: Learning Skills without a Reward Function

  • arxiv:https://arxiv.org/abs/1802.06070
  • 来源:[mask]
  • 参考博客:https://zhuanlan.zhihu.com/p/492999666
  • 主要内容:
    • 这篇文章关注的 task 是 skill discovery,目标是希望 agent 学会一系列不同的行为,并尽可能地探索状态-动作空间。在 skill discovery 中,policy 通常表示为 \(a=\pi(s|z)\),其中 z 是技能(skill)。diayn 是一个经典的 skill discovery 方法。
    • 经典的 skill discovery 目标,是最大化行为 / 状态和策略之间的互信息,目标函数为:

    \[\max I(s,z) = H(s) - H(s|z) = H(z) - H(z|s) \]

    • diayn 的目标函数为:\(\max I(S,Z) + H[A|S] − I(A,Z|S)\),其中:
      • 第一项是 skill 和 state 之间的互信息;
      • 第二项希望最大化动作熵,鼓励探索;
      • 第三项是希望在给定 state 后,最小化 action 和 skill 的互信息,即希望 skill 之间的差异只体现在 state 上,而不体现在 action 上。diayn 认为,这是因为某些动作看起来很相似,但状态之间的差异更容易被人类识别。
    • 具体实现(根据 urlb 的代码):
      • 维护一个离散的 one-hot skill space。
      • 使用一个 skill estimator \(\hat z = q(s')\),其中 \(s'\) 是 next state。具体的,\(q(s')\) 输出一个维度为 skill 数量的向量,表示 \(s'\) 由每个技能产生的概率。
      • intrinsic reward:使用 \(q(s')\) 估计 \(s'\) 由哪些技能产生,intrinsic reward 为 \(s'\) 由真实 skill 产生的概率。
      • 更新 skill estimator:每次根据 next state 猜测对应使用的 skill,loss function 为 CrossEntropy(q(s'), 真实 z)。
    • 思考:这种实现确实容易导致静态的 behavior(如下文 CIC 提到)。这种学习目标认为 behavior 与 state 是等价的,只需要分辨出 \(s'\) 是哪个 skill 产生的。这样,agent 只需要学到几套静态的动作,保持静态,即 \(s=s'=s''=\cdots\),然后学到这几个动作与 skill 之间的映射关系,就能满足学习目标。而 CIC 使用 \(\tau = (s,s')\) 来作为 behavior,感觉可以改善这个问题。(无端联想,也算是一种做差)

CIC: Contrastive Intrinsic Control for Unsupervised Skill Discovery

  • arxiv:https://arxiv.org/abs/2202.00161
  • website:https://sites.google.com/view/cicrl/
  • 来源:[mask]
  • 主要内容:
    • 这篇文章也关注 skill discovery。
    • story:传统方法的 skill 往往是低维的,例如 diayn 使用 16 个离散的 one-hot skill、aps 使用 10 维的连续 skill。然而,低维的 skill space 容易导致学到的行为缺乏多样性(没仔细看为什么)。因此,cic 采用了高维的 skill space。
    • cic 采用对比学习 loss,旨在最大化 skill 和 state transition \(\tau=(s,s')\) 之间的互信息。具体 loss function 形式见公式 5,与 NCE loss 类似。
    • intrinsic reward:为了鼓励探索,cic 希望最大化 state embedding 的熵,其中 embedding 是通过对比学习训练的。熵的估计使用 k-Nearist-Neighbors 方法。

Direct Preference Optimization: Your Language Model is Secretly a Reward Model

  • arxiv:https://arxiv.org/abs/2305.18290
  • GitHub:https://github.com/eric-mitchell/direct-preference-optimization
  • 来源:把想读的另一篇文章当成 DPO 了()
  • 参考博客:
  • 主要内容:
    • DPO 的 policy 形式是 \(\pi_\theta(y|x)\),其中 \(x\) 是输入问题,\(y\) 是 LLM 给出的回答。虽然是对 LLM 的微调,但也可以看作是一个 RL policy。
    • DPO 的目标是在约束 \(\pi_\theta(y|x)\) 与参考策略 \(\pi_{ref}(y|x)\) 的 KL 散度的前提下,最大化 \(r_\phi(x,y)\),其中 \(r_\phi\) 是 Bradley-Terry 形式的 reward model(跟 PbRL 里一样)。
    • 直接推导可以得到一个 \(\max r_\phi(x,y) + KL[\pi_\theta(y|x) | \pi_{ref}(y|x)]\) 的代数解,但这个解难以计算。因此,DPO 提出了优化以下 loss function 以达到该解:

    \[\mathcal{L}_{\text{DPO}}(\pi_{\theta};\pi_{\text{ref}}) = -\mathbb{E}_{(x,y_w,y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi_{\theta}(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \beta \log \frac{\pi_{\theta}(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)} \right) \right]. \]

    • 其中,\(y_w, y_l\) 分别是同一个问题 \(x\) 下的 win 回答和 lose 回答。(推导思路可能有点像 IPL,先建立 \(\pi^*\) 和 reward model 之间的映射,再把 policy 带入 reward model 的 loss 里,最终得到直接优化 policy 的方法。我看得不仔细,不确定)
    • 这个 loss function 有对比学习的感觉。借鉴博客 1:如果将 log 里的分式展开并设为 1,同时暂时忽略前面的 log-sigmoid,那么 loss 可以简化为:

    \[\max ~[\log p(y_w) - \log p_{\text{ref}}(y_w)] - [\log p(y_l) - \log p_{\text{ref}}(y_l)] \]

    • 也就是,让输出 \(y_w\) 的概率比参考策略大,而输出 \(y_l\) 的概率比参考策略小。博客 1 说这个 loss 有对比学习的感觉,博客 2 分析了优化该 loss 得到的 \(\theta\) 梯度公式,得出了相同的结论。
    • DPO 具有理论保证,但未深入阅读。

Inverse Preference Learning: Preference-based RL without a Reward Function

  • arxiv:https://arxiv.org/abs/2305.15363
  • GitHub:https://github.com/jhejna/inverse-preference-learning
  • 来源:[mask]
  • 主要内容:
    • 核心公式:

    \[\begin{aligned} (\mathcal{B}_{r}^{\pi} Q)(s, a) & = r(s, a) + \gamma \mathbb{E}_{s' \sim p(\cdot \mid s, a)}[V^{\pi}(s')], \\ (\mathcal{T}^{\pi} Q)(s, a) & = Q(s, a) - \gamma \mathbb{E}_{s'}[V^{\pi}(s')]. \end{aligned} \]

    • 上面的公式是 reward \(r\) 下的最优策略满足的 Bellman 公式。如果将 RHS 的 \(V\) 移到 LHS,并将 reward 重新表示为 \((\mathcal{T}^{\pi} Q)(s, a)\),可以得到给定最优策略下的 \(r\) 的公式。IPL 从理论上证明了这是一个双射。
    • 通过这个公式,我们可以用已经学到的 \(Q\) 表示 reward,并将其放入 Bradley-Terry model 中,从而直接优化策略:,就能直接优化策略了:

    \[P_{Q^{\pi}}[\sigma^{(1)} > \sigma^{(2)}] = \frac{\exp \sum_{t} (\mathcal{T}^{\pi} Q)(s_t^{(1)}, a_t^{(1)})}{\exp \sum_{t} (\mathcal{T}^{\pi} Q)(s_t^{(1)}, a_t^{(1)}) + \exp \sum_{t} (\mathcal{T}^{\pi} Q)(s_t^{(2)}, a_t^{(2)})}. \]

    • IPL 的算法流程是迭代更新的:1. 更新上面的 Bradley-Terry 公式,学到新 \(Q\),2. 更新 \((\mathcal{T}^{\pi} Q)(s, a)\) 公式里的 \(\mathbb{E}_{s'}[V^{\pi}(s')] = \mathbb E_{a~\pi(\cdot | s)}Q(s,a)\)
    • 与 DPO 的区别:DPO 只能比较同一个 state(即同一个问题 \(x\))下的 \(y_l, y_w\),而 IPL 不受此限制,可以对任意两个 segment 进行比较。
    • 代码部分尚未阅读。

Reinforcement Learning from Diverse Human Preferences

  • arxiv:https://arxiv.org/abs/2301.11774
  • 来源:[mask]
  • 主要内容:
    • 这是一篇 IJCAI 2024 的文章,关注非理想 feedback 下的 PbRL,其中 feedback 可能来自于众包 teacher,可能存在不一致、相互矛盾的情况。因此,需要设计一种 reward learning 方法,学到一致且有意义的 reward model。
    • method:(没仔细看,不确定对)
      • 维护一个 encoder \(p(z|s,a)=N(z|f_\mu(s,a), f_\Sigma(s,a))\),输入是 \((s,a)\)。对应的 decoder 是 \(\hat{\hat r} = d(r|z)\),输出是对 reward model 的预测奖励 \(\hat r\) 的重建(即 hat hat r)。
      • 为了让 reward model 生成的 reward 相互一致,我们假设 \(p(z|s,a)\) 服从一个预定义的先验分布 \(r(z)\),然后在训练 encoder 的时候,通过添加约束 loss \(L_c=\mathbb E(s,a)[KL(p(z|s,a)\|r(z))]\),使 encoder \(p(z|s,a)\) 输出的分布接近 \(r(z)\)
      • 训练 reward model 时,所优化的 loss 是: \(L=\phi L_c + L_\text{BT-model}\),其中 \(\phi\) 是一个很大的超参数。
      • 然后,在 reward ensemble 时,我们基于一个置信度把每个 ensemble model 的结果加权。置信度与 \(p(z|s,a)\)\(r(z)\) 之间的 KL 散度成正比,因为如果 KL 散度很小,意味着 reward model 不知道太多特定于输入的信息;如果模型对输入一无所知,它往往会直接输出分布的预测值。
    • 实验 setting:non-ideal feedback 是使用 B-Pref 的非理想 teacher 生成的。做了 3 个 dmcontrol 环境,3 个 metaworld 环境。

RAT: Adversarial Attacks on Deep Reinforcement Agents for Targeted Behaviors

  • arxiv:https://arxiv.org/abs/2412.10713
  • website:https://sites.google.com/view/jj9uxjgmba5lr3g
  • 来源:本科学长的新文章。
  • 主要内容:
    • 这篇文章的 setting 很新颖,关注 RL policy 的 test-time attacks。具体来说:
      • 扰动攻击:一个 policy 所收到的 state 是被微小扰动过的 state,它根据这个错误的 state 来生成 action。
      • MDP 建模:生成扰动的模块也可以看作一个 policy,其中 state 就是 \(s\),action 是一个小于 1 的高斯噪声 \(\Delta\),扰动后的 state 记作 \(\tilde s = s + \Delta \cdot \epsilon\),其中 \(\epsilon\) 是一个小常数,被称为攻击预算(attack budget)。
      • notation:记 \(\pi_{\nu \circ \alpha}\) 是被扰动后的策略,其中 \(\nu\) 是原本策略的参数,\(\alpha\) 是扰动模块的参数。
      • 目标可以是:1. 训练最优的扰动策略 \(\pi_\alpha\),使得 \(\pi_{\nu \circ \alpha}\) 的 discounted return 相比 \(\pi_{\nu}\) 尽可能变小;2. 设计原本策略的参数 \(\nu\),使得它在最优对手 \(\pi_\alpha^*\) 的扰动下,仍能达到最大的 discounted return。
    • 这篇文章貌似是 PbRL + test-time attack,它训练一个意图策略(intention policy)\(\pi_\theta\)、一个对手策略 \(\pi_\alpha\) 和一个 weighting function \(h_w(s)\)
    • Intention policy 通过 PbRL 训练,这篇文章声称,这样可以对齐人类意图。然后,通过最小化 \(\pi_\theta\)\(\pi_{\nu \circ \alpha}\) 的 KL 散度,引导 \(\pi_\alpha\) 进行攻击。
    • Weighting function \(h_w\) 负责识别重要的 state,它的训练 loss 衡量受扰动策略的性能,从而反映对手的有效性。(这部分没有细看)
    • 实验好像是 offline RL,使用 metaworld 和 gym 里的 MuJoCo 环境。
    • preference 由 script teacher 生成,scripted teacher 的 reward function 可能来自:
      • 另一个任务。此时 \(\pi_{\nu \circ \alpha}\) 会去执行另一个任务;
      • 当前任务的 reward 取负值。此时 \(\pi_{\nu \circ \alpha}\) 会做相反的任务,比如 window-open 变成了 window-close。


posted @ 2025-01-02 10:26  MoonOut  阅读(121)  评论(0)    收藏  举报