首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

RIME:用交叉熵 loss 大小分辨 preference 是否正确 + 内在奖励预训练 reward model

编程知识
2024年07月25日 15:10

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 数量。


From:https://www.cnblogs.com/moonout/p/18323447
本文地址: http://www.shuzixingkong.net/article/426
0评论
提交 加载更多评论
其他文章 深入探讨Spring Boot中的参数传递
深入探讨Spring Boot中的参数传递 在Spring Boot开发中,参数传递是一个非常常见且重要的操作。无论是处理HTTP请求,还是在方法之间传递数据,理解和掌握参数传递的各种方式都能让我们的代码更加简洁和高效。今天,我们就来深入探讨一下Spring Boot中的参数传递。 1. 基础知识:
三星app移植修复(app反编译修改)
工具: apktool ADT 命令: 反编译 java -jar apktool.jar d test.apk 重打包 java -jar apktool.jar b test 签名使用ADT smail语言粗略理解(其实对于修改来说, 大概熟悉就就ok) 类定义 .class public Lc
三星app移植修复(app反编译修改) 三星app移植修复(app反编译修改) 三星app移植修复(app反编译修改)
LeetCode513. 找树左下角的值
题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/description/ 题目叙述: 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: roo
LeetCode513. 找树左下角的值 LeetCode513. 找树左下角的值
Rust 中 *、&、mut、&mut、ref、ref mut 的用法和区别
*:解引用操作符,用于访问指针或引用指向的值的类型。 &:借用操作符,用于创建不可变引用的类型,允许只读访问。 mut:关键字,用于声明可变变量或参数的类型,允许其值被修改。 &mut:借用操作符,用于创建可变引用的类型,允许读写访问。 ref:模式匹配中的关键字,用于创建不可变引用的类型,避免所有
ThinkPHP一对一关联模型的运用(ORM)
一、序言 最近在写ThinkPHP关联模型的时候一些用法总忘,我就想通过写博客的方式复习和整理下一些用法。 具体版本: topthink/framework:6.1.4 topthink/think-orm:2.0.61 二、实例应用 1、一对一关联 1.1、我先设计了两张表,分别为用户表(user
ThinkPHP一对一关联模型的运用(ORM) ThinkPHP一对一关联模型的运用(ORM) ThinkPHP一对一关联模型的运用(ORM)
用.Net实现GraphRag:从零开始构建智能知识图谱
近来,大模型技术日新月异,使得与其相关的研发项目也层出不穷。其中一个备受关注的技术便是RAG(Retrieval Augmented Generation)。今天,我要跟大家分享一个出色的项目:GraphRag。出于对该技术的浓厚兴趣,我决定利用.Net框架自己实现一个GraphRag.Net,并将
用.Net实现GraphRag:从零开始构建智能知识图谱 用.Net实现GraphRag:从零开始构建智能知识图谱 用.Net实现GraphRag:从零开始构建智能知识图谱
面试官:聊聊你对分库分表的理解?
在 MySQL 集群架构中有两种主流的集群实现,一种是读写分离,而另外一种则是数据分片。所谓的数据分片其实就是今天要聊的分库分表技术。 分库分表技术不但是日常工作中用于解决数据库中的数据量会急剧增长,解决单库单表性能瓶颈的一种方案,更是面试中的高频知识点。 在阿里巴巴的《Java 开发手册》中规定:
面试官:聊聊你对分库分表的理解? 面试官:聊聊你对分库分表的理解? 面试官:聊聊你对分库分表的理解?
使用threejs实现3D卡片菜单
成品效果: 用到的技术:vue2、three.js、gsap.js template &lt;template&gt; &lt;div id=&quot;box&quot; class=&quot;container&quot;&gt;&lt;/div&gt; &lt;/template&gt; s
使用threejs实现3D卡片菜单