0 abstract
Preference-based Reinforcement Learning (PbRL) circumvents the need for reward engineering by harnessing human preferences as the reward signal. However, current PbRL methods excessively depend on high-quality feedback from domain experts, which results in a lack of robustness. In this paper, we present RIME, a robust PbRL algorithm for effective reward learning from noisy preferences. Our method utilizes a sample selection-based discriminator to dynamically filter out noise and ensure robust training. To counteract the cumulative error stemming from incorrect selection, we suggest a warm start for the reward model, which additionally bridges the performance gap during the transition from pre-training to online training in PbRL. Our experiments on robotic manipulation and locomotion tasks demonstrate that RIME significantly enhances the robustness of the state-of-the-art PbRL method. Code is available at https://github.com/CJReinforce/RIME_ICML2024.
- background 和 gap:基于偏好的强化学习 (PbRL) 通过利用人类偏好作为奖励信号,来规避奖励工程的需求。然而,目前的 PbRL 方法过度依赖专家的高质量反馈,导致缺乏鲁棒性。
- method:在本文中,我们介绍了 RIME,这是一种鲁棒的 PbRL 算法,用于从嘈杂的偏好中有效地进行奖励学习。
- 1 利用一个基于样本选择的鉴别器(discriminator),动态过滤噪声,确保鲁棒训练。
- 2 为了抵消因错误选择而产生的累积误差(?),提出 reward model 的热启动(warm start),这进一步弥合了 PbRL 中的 pretrain → 正式训练 的性能差距。
- 实验:在机器人操作(Meta-world)和运动任务(DMControl)上的实验表明,RIME 显著增强了最先进的 PbRL 方法(指 pebble)的稳健性。
1 intro
- background:PbRL 省去 reward engineering,PbRL 好。
- gap 1:PbRL 假设 preference 都是专家打的、没有错误,但人类是容易犯错的。
- gap 2:从 noisy 的标签中学习,也称为鲁棒训练。
- Song et al. ( 2022) 将鲁棒训练方法分为四个关键类别:鲁棒架构 (Cheng et al., 2020)、鲁棒正则化 (Xia et al., 2020)、鲁棒损失设计 (Lyu & Tsang, 2019) 和样本选择 (Li et al., 2020;Song 等人,2021 年)。
- 然而,把它们整合到 PbRL 中很难,貌似因为 1 需要大量样本,而 PbRL 的 feedback 数量(我们常跑的几个 benchmark)最多几万;2 RL 训练期间有 distribution shift,破坏了 i.i.d(独立同分布)输入数据的假设,这是支持稳健训练方法的核心原则。
- 我们提出了 RIME(Robust preference-based reInforcement learning via warM-start dEnoising discriminator),据他们生成是第一个研究 PbRL noisy label 的工作(?)
- 主要方法:
- 1 使用一个 discriminator,用一个阈值找到认为正确的样本 \(\mathcal D_t\),再用一个阈值找到 看起来很错误的样本 \(\mathcal D_f\),将其翻转,最后我们使用的样本是 \(\mathcal D_t \cup\mathcal D_f\) 。
- 具体的,这里的阈值是交叉熵 loss,有一个理论,感觉很 intuitive,是好工作ww
- 2 用预训练的 intrinsic reward,初始化训一下 reward model。
- 具体的,要在预训练时就归一化 intrinsic reward 到 (-1,1),这是因为 reward model 一般采用 tanh 做激活函数,而 tanh 的输出是 (-1,1)。
2 related work
- PbRL。
- learning from noisy labels:
- 把 intro 的介绍又说了一遍。
- 提到,在 PbRL 背景下,Xue 等人(2023 年)提出了一种编码器-解码器架构,来模拟不同的人类偏好,但是相比 RIME 的工作,大概需要 100 倍的 preference 数量。
- Policy-to-Value Reincarnating RL(PVRL):
- Reincarnate:vt,使投胎、转世、赋予新形体。
- PVRL,指将次优的 teacher policy 转移到一个 value-based 的 student RL agent(Agarwal 等人,2022 年)。
- 启发:Uchendu et al. ( 2023) 发现,PVRL 中随机初始化的 Q 网络,会导致 teacher policy 很快被遗忘。
- gap:在广泛采用的 PbRL pipeline 中,PVRL 挑战也出现在从 pretrain 到 online training 的过渡过程中,但在以前的研究中被忽视了。在 noisy feedback 下,忘记预训练策略的问题变得更加重要,详见第 4.2 节。
- (这里的预训练指的是 pebble 等工作的 比如说 最大熵预训练策略。
- 引出 reward model 的热启动。
3 preliminaries
- PbRL。
- Unsupervised Pre-training in PbRL:讲了 pebble 的预训练。
- Noisy Preferences in PbRL:讲了 BPref 的模仿人类 scripted teacher,使用 error teacher。
4 method: RIME
4.1 RIME 的 denoising discriminator
- 省流:用各个 (σ0, σ1, p) 的 CELoss 大小,来判断它是正确 / 错误样本,并翻转所有错误样本的 p。
- 为什么用交叉熵 loss 来判断 是 正确 / 错误样本?
- 现有研究表明,深度神经网络首先学习可泛化的模式,然后再过度拟合数据中的噪声(Arpit et al., 2017; Li 等人, 2020 年)。
- 因此,将与较小损失相关的 sample 优先为正确样本,是提高稳健性的有充分依据的方法。(其实没太理解)
- 回顾 交叉熵与 KL 散度的关系 。
- 如何确定交叉熵 loss 的阈值?
- 定理 4.1,假设干净数据的 x 交叉熵 loss 以 ρ 为界,即 \(\mathcal L^\text{CE}(x)\le\rho\) ;则有,损坏样本 x 的预测偏好 \(P_\psi(x)\) ,和 \(\tilde y(x)=1-y\) 之间的 KL 散度,下限为 \(D_{\mathrm{KL}}(\tilde{y}(x)\parallel P_{\psi}(x))\geq-\ln\rho+\frac{\rho}{2}+O(\rho^{2})\) 。
- 然后,我们制定 KL 散度阈值的下限 \(\tau_\text{base}=\ln \rho+\alpha\rho\),以过滤掉不可信样本。其中,\(\rho\) 表示上次更新期间观察到的 可信样本的最大交叉熵 loss,\(\alpha\in(0,0.5]\) 是可调的超参数。
- 但是还要考虑 distribution shift 问题。为了在 distribution shift 的情况下,增加对干净样本的 tolerance,我们引入一个辅助项 \(\tau_\text{unc}=\beta_t\cdot s_\mathrm{KL}\) ,来表征过滤的不确定性,其中 \(\beta_t=\max(\beta_\min,\beta_\max-kt)\) 是随时间变化的参数(β max = 3, β min = 1), \(s_\mathrm{KL}\) 是 KL 散度的标准差(看起来是 \(D_{\mathrm{KL}}(\tilde{y}(x)\parallel P_{\psi}(x))\) 的 KL 散度)。这里的 intuition 是,训到 OOD 数据可能导致 CELoss 的波动(其实也没太听懂)
- 识别可信样本的数据集: \(D_t=\{(\sigma^0,\sigma^1,\tilde{y}) | D_{\mathrm{KL}}(\tilde{y}\parallel P_\psi(\sigma^0,\sigma^1))<\tau_{\mathrm{lower}}\}\) ,其中 \(\tau_{\mathrm{lower}}=\tau_{\mathrm{base}}+\tau_{\mathrm{unc}}=-\ln\rho+\alpha\rho+\beta_{t}\cdot s_{\mathrm{KL}}\) 。
- 识别不可信样本的数据集: \(D_f=\{(\sigma^0,\sigma^1,\tilde{y}) | D_{\mathrm{KL}}(\tilde{y}\parallel P_\psi(\sigma^0,\sigma^1))>\tau_{\mathrm{upper}}\}\) , \(\tau_{\mathrm{upper}}\) 貌似是预先定义的值,定义成 \(3\ln(10)\) 了。 然后翻转 Df,将翻转后的 Df 与 Dt 并起来,拿去训 reward model。
4.2 reward model 的 warm start
- 省流:用 intrinsic reward 训一下 reward model。
- 观察:
- 观察到在从预训练到在线训练的过渡过程中,性能显著下降(见图 2)。在 noisy feedback的 setting 下,这种差距是可以明显观察到的,并且对鲁棒性是致命的。
- 在预训练后,PEBBLE 会重置 Q 网络,仅保留预训练的 policy。由于 Q 网络学的是最小化 noisy feedback 的 reward model 下的 TD-error,因此这种 biased Q 函数会导致 policy 学的不好,从而抹去预训练期间的收益。
- reward model 的 warm start:
- 具体来说,我们在预训练阶段,先拿 intrinsic reward 训一下 reward model。
- 由于 reward model 的输出层通常使用 tanh 激活函数(Lee et al., 2021b),因此我们首先将内在奖励归一化到 (-1,1),使用当前已获得的 intrinsic reward 的 mean \(\hat r\) 和 variance \(\sigma_r\) 来做: \(r_{\mathrm{norm}}^{\mathrm{int}}(\mathbf{s}_t)=\mathrm{clip}(\frac{r^{\mathrm{int}}(\mathbf{s}_t)-\hat r}{3\sigma_r},-1+\delta,1-\delta)\) 。
- 预训练 reward model 的数据,貌似就是 \((s_t,a_t,r_{\mathrm{norm}}^{\mathrm{int}},s_{t+1})\) ,而不是用 segment 的形式。(这里提到一个最近邻,我没太看懂w)
4.3 整体算法流程
在附录 A 放了伪代码。在附录 A 放伪代码,真是好文明。
关键点:
- 预训练与 reward model 的 warm start:
- 第 5 行,收集的 intrinsic reward 是归一化过的。
- 第 10 行,训 reward model 用的是 \(r_{\mathrm{norm}}^{\mathrm{int}}\) 与 \(\hat r\) 的 MSE,而非 segment。
- 鉴别错误 preference 的 denoising discriminator:
- 第 13 行,初始化 ρ 为正无穷。
- 第 19 行,算 辨别可信样本的阈值 τ lower。
- 第 24 行,用 可信样本 ∪ 错误样本翻转 的数据集,来算新 ρ,其中 ρ 是 KL 散度的下界。
5 experiments
- setting:跟 pebble 一样,三个 DMControl + 三个 Meta-world。
- baselines: pebble、surf、rune、MRN(MRN 我还没看)。
- error rate(即随机挑选 (σ0,σ1,p) 并翻转 p 的概率)是 0.1 到 0.3。
- 大量 ablation:
- 在 Appendix D.3 尝试了更多种 noisy teacher,放在正文的表比的是 各种 noisy teacher 的 average。
- 与其他稳健的训练方法的比较:自适应去噪训练 (ADT)(Wang 等人,2021 年),即丢弃一定比例的 CELoss 大的样本,貌似效果不错;使用 MAE 和 t-CE 作为替代 CELoss(?)的损失函数;使用标签平滑 (LS)来处理所有 preference label(?)。
- 居然有真 human,见 Appendix D.4。总反馈量和每个会话的反馈量分别为 100 和 10。任务是 hopper 后空翻(真假的,这么好学(?)难道 hopper 后空翻是一个 只要控制变量拉到极限 就能一直后空翻 的任务嘛)。但是怎么截图变成了 OpenAI gym 而非 DMControl。
- 增加 feedback 总数,可以有效提升性能。
- 各个模块是否有效?当反馈数量相当有限时(即,在Walker-walk上),热启动对于鲁棒性至关重要,可以节省 query 数量。