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: pebblesurfrune、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 数量。

RIME:用交叉熵 loss 大小分辨 preference 是否正确 + 内在奖励预训练 reward model的更多相关文章

  1. Tensorflow手写数字识别(交叉熵)练习

    # coding: utf-8import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data #pr ...

  2. (三) Keras Mnist分类程序以及改用交叉熵对比

    视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 Mnist分 ...

  3. 关于交叉熵(cross entropy),你了解哪些

    二分~多分~Softmax~理预 一.简介 在二分类问题中,你可以根据神经网络节点的输出,通过一个激活函数如Sigmoid,将其转换为属于某一类的概率,为了给出具体的分类结果,你可以取0.5作为阈值, ...

  4. 从交叉熵损失到Facal Loss

    1交叉熵损失函数的由来1.1关于熵,交叉熵,相对熵(KL散度) 熵:香农信息量的期望.变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大.其计算公式如下: 其是一个期望的计算,也是记录随 ...

  5. Hinge Loss、交叉熵损失、平方损失、指数损失、对数损失、0-1损失、绝对值损失

    损失函数(Loss function)是用来估量你模型的预测值 f(x) 与真实值 Y 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x)) 来表示.损失函数越小,模型的鲁棒性就越好. 损失 ...

  6. 关于交叉熵损失函数Cross Entropy Loss

    1.说在前面 最近在学习object detection的论文,又遇到交叉熵.高斯混合模型等之类的知识,发现自己没有搞明白这些概念,也从来没有认真总结归纳过,所以觉得自己应该沉下心,对以前的知识做一个 ...

  7. 深度学习基础5:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

    深度学习基础5:交叉熵损失函数.MSE.CTC损失适用于字识别语音等序列问题.Balanced L1 Loss适用于目标检测 1.交叉熵损失函数 在物理学中,"熵"被用来表示热力学 ...

  8. 第五节,损失函数:MSE和交叉熵

    损失函数用于描述模型预测值与真实值的差距大小,一般有两种比较常见的算法——均值平方差(MSE)和交叉熵. 1.均值平方差(MSE):指参数估计值与参数真实值之差平方的期望值. 在神经网络计算时,预测值 ...

  9. 归一化(softmax)、信息熵、交叉熵

    机器学习中经常遇到这几个概念,用大白话解释一下: 一.归一化 把几个数量级不同的数据,放在一起比较(或者画在一个数轴上),比如:一条河的长度几千甚至上万km,与一个人的高度1.7m,放在一起,人的高度 ...

  10. 深度学习原理与框架-Tensorflow卷积神经网络-卷积神经网络mnist分类 1.tf.nn.conv2d(卷积操作) 2.tf.nn.max_pool(最大池化操作) 3.tf.nn.dropout(执行dropout操作) 4.tf.nn.softmax_cross_entropy_with_logits(交叉熵损失) 5.tf.truncated_normal(两个标准差内的正态分布)

    1. tf.nn.conv2d(x, w, strides=[1, 1, 1, 1], padding='SAME')  # 对数据进行卷积操作 参数说明:x表示输入数据,w表示卷积核, stride ...

随机推荐

  1. webview2 示例 Samples Selenium

    https://github.com/MicrosoftEdge/WebView2Samples https://learn.microsoft.com/zh-cn/microsoft-edge/we ...

  2. wpf 动画显示隐藏_[UWP]用Win2D和CompositionAPI实现文字的发光效果,并制作动画

    weixin_39880899于 2020-12-11 09:26:23 发布 阅读量521 收藏 点赞数 文章标签: wpf 动画显示隐藏   1. 成果 献祭了周末的晚上,成功召唤出了上面的番茄钟 ...

  3. 搭建内网yum仓库

    服务器配置: 1. 创建yum仓库的目录,rpm包上传到这里. mkdir /soft/x86 -p 2. 修改yum缓存配置: sed -i 's#keepcache=0#keepcache=1#g ...

  4. STM32 USB CDC调试记录

    STM32 USB CDC调试 一.前言 最近在做STM32的IAP方案,官方提供的demo是基于USART实现,但是使用USART的话要和电脑通信要么借助USB转TTL工具:要么在板子上加一颗CH3 ...

  5. 日常Bug排查-MVCC和for update混用导致读数据不一致

    日常Bug排查-MVCC和for update混用导致读数据不一致 前言 日常Bug排查系列都是一些简单Bug的排查.笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材. Bug现场 又是喜闻 ...

  6. C# asp.net mvc 创建虚拟目录

    使用背景: 虚拟目录(virtual directory),计算机术语,每个 Internet服务可以从多个目录中发布.通过以通用命名约定 (UNC) 名.用户名及用于访问权限的密码指定目录,可将每个 ...

  7. SQL练习之打卡记录数据统计类问题

    最近老婆的公司,关闭了OA系统中,各类打卡时间数据统计的功能,为了不麻烦老婆手算,就做了一个简单的打卡系统,方便自动统计老婆想要知道的各类数据. 做的过程中就遇到了几个还挺有意思的SQL,这里写成一篇 ...

  8. 第三届机器人、人工智能与信息工程国际学术会议(RAIIE 2024)

    [ACM独立出版/Fellow大咖云集]2024年第二届机器人.人工智能与信息工程国际学术会议(RAIIE 2024) 2024 3rd International Symposium on Robo ...

  9. 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本

    2022年3月25日,燕千云 YQCloud 数智化业务服务管理平台发布1.11版本.新增客户服务管理模块.优化IT服务管理功能.增强燕千云与其他平台的集成能力.支持更多的业务服务场景.全面提升企业数 ...

  10. 时间格式化转换及时间比较compareTo,Controller层接收参数格式化,从数据源头解决时间格式错误数据对接口的影响

    时间格式化转换及时间比较compareTo,Controller层接收参数格式化,从数据源头解决时间格式错误数据对接口的影响 /** * 时间格式的转换:在具体报错的地方做转换,可能不能从根本上面解决 ...