0 abstract

In Reinforcement Learning (RL), designing precise reward functions remains to be a challenge, particularly when aligning with human intent. Preference-based RL (PbRL) was introduced to address this problem by learning reward models from human feedback. However, existing PbRL methods have limitations as they often overlook the second-order preference that indicates the relative strength of preference. In this paper, we propose Listwise Reward Estimation (LiRE), a novel approach for offline PbRL that leverages secondorder preference information by constructing a Ranked List of Trajectories (RLT), which can be efficiently built by using the same ternary feedback type as traditional methods. To validate the effectiveness of LiRE, we propose a new offline PbRL dataset that objectively reflects the effect of the estimated rewards. Our extensive experiments on the dataset demonstrate the superiority of LiRE, i.e., outperforming state-of-the-art baselines even with modest feedback budgets and enjoying robustness with respect to the number of feedbacks and feedback noise. Our code is available at https://github.com/chwoong/LiRE

  • background & gap:

    • 在强化学习 (RL) 中,设计精确的、与人类意图保持一致的奖励函数,具有挑战性。Preference-based RL(PbRL)从人类反馈中学习奖励模型,可以解决这个问题。
    • 然而,现有的 PbRL 方法存在局限性:它们只能应对“A 比 B 好”“B 比 A 好”这种 0 1 的情况,而忽略了表示偏好相对强度的二阶(second-order)偏好。
  • method:
    • 在本文中,我们提出了 Listwise Reward Estimation (LiRE),一种新颖的 offline PbRL 方法,它通过构建轨迹排名列表(Ranked List of Trajectories,RLT)来利用二阶偏好信息。
    • 构建 RLT:使用与传统 PbRL 相同的三元组 feedback \((\sigma_0,\sigma_1,p)\) 。对于新给出的 segment,用插入排序的方式将其放到目前的 RLT 里。
  • experiment:
    • 这篇文章提出了一个新的 offline PbRL dataset,用于评价 reward model 的学习效果。因为 d4rl 环境太简单,还会有 survival instinct(生存本能)现象,不适用于 reward 学习
    • 实验证明,LiRE 在反馈预算适中的情况下 outperform baselines,并且在 feedback 数量和 noisy feedback 方面更加稳健。

2 related work

  • offline PbRL:

    • Reward Learning from Human Preferences and Demonstrations in Atari. arxiv 这篇是 2018 年的文章,先对 expert demo 做模仿学习,然后 rollout 得到一些 segment,拿这些 segment 去打 preference,最后 PbRL 微调。
    • Sequential Preference Ranking for Efficient Reinforcement Learning from Human Feedback. open review 这篇是 SeqRank,是 2023 neurips 的文章。SeqRank 把新得到的 segment 和先前收集的 segment(最近收集的 / 先前所有 segment 里最好的)拿去比较。如果能比出 \(σ(t_0)<σ(t_1)<σ(t_2)<σ(t_3)\) 的结果,就能得到 3×2×1 = 6 = (n-1)! 个 preference,但是我们其实只比了三次;SeqRank 就通过这种思想来对 preference 做数据增强。
    • lire 讲 offline PbRL 的思路是,最近的工作专注于直接优化策略、省掉 reward model(比如 DPO),但是选择 informative query 也很重要。OPRL 是一种 active query selection 方法,选择 disagreement 最大的 query,但它没有使用二阶偏好。
  • Second-order Preference Feedback:
    • 有些方法直接获得一个相对 preference 数值(明显更好 / 略好),或每个轨迹的绝对 rating(非常好 好 一般 中 差),但它们获取 feedback 的成本较高。

      • Llama 2: Open Foundation and Fine-Tuned Chat Models.
      • Weak Human Preference Supervision For Deep Reinforcement Learning. TNNLS(Transactions on Neural Networks and Learning Systems)2021 年的文章。arxiv 首先让 p 从 {0, 1} 变成 [0, 1],直接优化交叉熵损失,做了一些神秘归一化,然后搞了一个 preference predictor 做数据增强;没有仔细看。
      • Rating-based Reinforcement Learning. AAAI 2024,arxiv。这篇文章的名字是 RbRL;人类直接给一个 segment 一个 {0, ..., n-2, n-1} 的 rating,然后我们学一个 rating model,试图判断一个 segment 被分到了哪个 rating。这个 rating model 通过判断 Σr hat(σ) 和定义的 n 个 rating 类别的奖励值边界的大小关系,来判断 segment 被分到了哪个 rating。rating 类别的奖励值边界会动态更新。
    • 有很多 Learning-to-Rank 的工作,它们已经拿到了二阶偏好,试图去学一个 ranking 的评分。
    • 还有一些工作,它们可以从多个轨迹的全序列表(比如 A<B<C<D)得到二阶偏好,但是真去构建一个大列表太慢了,应该更高效地构建(?)
    • 然后又提了提 SeqRank。

4 method

  • 首先对 preference 做了一些假设:

    • 完备性:假设拿到 \(\sigma_0 ~ \sigma_1\),要不是 \(\sigma_0 \succ \sigma_1,~ \sigma_0 \prec\sigma_1\),要不就认为一样好 \(\sigma_0 = \sigma_1\),认为没有比不出来的情况。
    • 传递性:假设如果有 \(\sigma_0 \succ \sigma_1,~\sigma_1 \succ \sigma_2\),那么有 \(\sigma_0 \succ \sigma_2\)。

4.1 构建 RLT(Ranked List of Trajectories)

  • 我们的目标是得到形式为 \(L=[g_1\prec g_2\prec ⋯\prec g_s]\) 的 RLT,其中 \(g_i=\{σ_{i_{1}},\cdots,σ_{i_{k}}\}\) 是一组具有相同优先级的 segment。(有点像 帕累托前沿 分层 之类)
  • 具体构建方法:我们每拿到一个新 segment,就把它拿去跟目前的 RLT 插入排序比较,找到一个放新 segment 的位置。直到 feedback 预算用完。
  • 表 1 计算了 LiRE 的 feedback efficiency 和 sample diversity,并且与 vanilla 方法、SeqRank 进行了比较。feedback efficiency 定义为 [我们获得的 feedback 数量] / [我们进行比较的数量] 。sample diversity 定义为 [我们获得的 feedback 数量] / [所用到的 segment 数量] 。
  • 我们并没有构建一个很长的 RLT,而是去构建多个相对短的 RLT,为每个 RLT 都设置 feedback 预算。

4.2 从 RLT 里学 reward model

从 RLT 里推导出 \((\sigma_0, \sigma_1, p)\) 的 preference 数据,其中 \(p\in\{0,0.5,1\}\) 。

然后优化 PbRL 的 cross-entropy loss:(我也不知道包含 p = 0.5 的 cross-entropy loss 是不是这么写)

\[\begin{aligned}
L= & -E_{(σ_0,σ_1,p)\sim D}\bigg[ p(0)\log P_\psi[σ_0\succ σ_1] + p(1)\log P_\psi[σ_0\prec σ_1]
\\
& \quad\quad\quad\quad\quad\quad\quad +~p(0.5) \log P_\psi[σ_0= σ_1] \bigg ]
\\
P_\psi&[σ_0\succ σ_1] = \frac{\exp\sum_t \hat r_{\psi}(s_t^0,a_t^0)}{\sum_{i\in\{0,1\}}\exp\sum_t \hat r_{\psi}(s_t^i,a_t^i)}
\end{aligned}
\tag 1
\]

不知道为什么,LiRE 把 reward model 建模成了线性形式(而非指数形式):

\[P_\psi[σ_0\succ σ_1] = \frac{\sum_t \hat r_{\psi}(s_t^0,a_t^0)}{\sum_{i\in\{0,1\}}\sum_t \hat r_{\psi}(s_t^i,a_t^i)}
\tag 2
\]

LiRE 声称这样可以放大 learned reward model 的奖励值的差异,拉高比较好的 (s,a) 的奖励。这个线性 reward model 的最后一层 activator 也是 tanh,为确保概率(公式 2)是正的,reward model 的输出是 1 + tanh() 。

也可以使用 listwise loss,在 Appendix A.3,有点复杂 先不看了()

5 experiment

5.1 settings

  • LiRE 的自定义 dataset:

    • d4rl 存在问题,即使使用错误的 reward,训练出来结果也很好,因此 不适用于 reward 学习
    • 因此,LiRE 对 metaworld 和 dmcontrol 收集了新的 medium-replay 数据集,并使用了 IPL 的一部分 medium-expert 数据集,细节见 Appendix C.2。
      • medium-replay:用三个 seed 训 ground truth reward 下的 SAC,当 success rate 达到大概 50% 的时候,就停止训练,把 replay buffer 作为 offline dataset。
      • 然后,对每个数据集,他们验证了使用 0 reward、负 reward 训出来策略的性能不佳,因此适合评测 reward learning。
    • 先前工作也有一些自定义数据集,但它们在这个数据集上的实验只使用了 100 个或更少的 feedback,而 LiRE 要使用 500 1000 这个数量级的 feedback。
  • baselines:

    • 马尔可夫奖励(MR)、Preference Transformer(PT),OPRL,Inverse Preference Learning(IPL)、Direct Preference-based Policy Optimization(DPPO)、SeqRank。
    • MR 是 PT 的 baseline 之一。PT 的主要贡献是把 reward model 换成 transformer,但是故事很合理。OPRL 的主要贡献是用类似 pebble 的方法选 disagreement 最大的 query。IPL 和 DPPO 没有 reward model,直接优化 policy。
  • LiRE 的实现细节:

    • 对于 LiRE,我们使用线性 reward model,并设置为每个 RLT 的 feedback 预算 Q 为 100:如果反馈的总数为 500,则将构造 5 个 RLT。所有的 offline RL 部分都使用 IQL。Appendix C.4 有超参数之类的具体细节(表 18)。
    • preference 的 segment length = 25。因为 metaworld 的 ground truth reward 在 [0, 10] 之间,因此,LiRE 标记 segment reward 之和差异小于 12.5 的 query 为 p=0.5。

5.2 实验结果

  • 实验主要在 LiRE 自己收集的 MetaWorld medium-replay 上做。Meta-World medium-expert 在 Appendix A。
  • LiRE 声称 PT 跟 MR 差不多;OPRL 因为最小化了(?)reward model 之间的 disagreement,所以性能会有提升;IPL 和 DPPO 基本比不上 MR;但 LiRE 结果很好。

5.3 & 5.4 ablation

  • LiRE 声称自己的性能提升主要因为 1. 线性 reward model,2. RLT。

    • 表 3 显示,线性 reward model 可以有效提高性能(到底是为什么呢……)RLT 也能提高性能。
    • 图 2 可视化了 reward model 预测的奖励和 ground truth 奖励的关系,发现无论是 MR 还是 LiRE,线性 reward model 都能得到更与 ground truth reward 线性相关的 reward 预测值,因此认为是更好的(怎么会有这么神奇的事情呢)。
    • LiRE 推测,使用线性 reward model 和 RLT 可以更清楚地区分估计奖励的最佳和次优部分,还是在讲二阶偏好的故事。
    • Appendix A.5 有线性 reward model 的更多实验。表 12 显示,MR 和 OPRL 换上线性 reward model 后性能都有提升,PT DPPO 性能则有所下降。图 7 声称 online PbRL 中线性 reward model 也可以表现更好。
  • 图 3 做了不同 feedback 数量的 ablation。表 4 做了不同 Q(单个 RTL feedback 预算数量)的 ablation。
  • 图 4 做了 noisy feedback,随机 filp preference 结果。表 5 6 比了 SeqRank。
  • 图 5 改了给 p=0.5 的 reward 阈值。
  • 图 6 把 LiRE 跟 OPRL 和 PT 相结合,发现性能有升有降。
    • OPRL 性能下降是因为,基于 disagreement 的 query selection 可能会对相似的 segment pair 过度采样,这些片段可能很难区分。
    • PT 的 motivation 是捕获奖励建模中的时间依赖关系,因此它似乎难以从 RLT 中准确捕获二阶偏好信息,可能因为对过去 segment 的过拟合。

5.5 human 实验

  • 表 7 在 button-press-topdown 用了作者打的 200 个 feedback,发现 LiRE 比 MR 和 SeqRank 好。

6 & 7 conclusion

  • LiRE 的 limitations:

    • 一个 RLT 可能无法并行化地构建。
    • LiRE 的 RLT 依赖于对 preference 的完备性 + 传递性假设。

offline RL · PbRL | LiRE:构造 A>B>C 的 RLT 列表,得到更多 preference 数据的更多相关文章

  1. 【head first python】1.初识python 人人都爱列表

    #coding:utf-8 #创建简单的python列表 movies = ["The Holy Grail", "The Life of Brain", &q ...

  2. 【C#进阶系列】28 基元线程同步构造

    多个线程同时访问共享数据时,线程同步能防止数据损坏.之所以要强调同时,是因为线程同步问题实际上就是计时问题. 不需要线程同步是最理想的情况,因为线程同步一般很繁琐,涉及到线程同步锁的获取和释放,容易遗 ...

  3. 第1部分: 游戏引擎介绍, 渲染和构造3D世界

    原文作者:Jake Simpson译者: 向海Email:GameWorldChina@myway.com ---------------------------------------------- ...

  4. c语言Winpcap编程构造并接收解析arp包

    /* 程序功能: 1.构造arp包,并发送.程序参数顺序:源IP.目的IP.mac地址.flag 2.获取网络中的ARP数据包,解析数据包的内容.程序参数:日志文件名 winpacp中文技术文档(基本 ...

  5. Redis+Restful 构造序列号和压力测试【原创】

    [本人原创],欢迎交流和分享技术,转载请附上如下内容:如果你觉得这篇文章对你有帮助,请记得帮我点赞, 谢谢!作者:kevin[转自]http://www.cnblogs.com/itshare/ 很多 ...

  6. 从二进制数据流中构造GDAL可以读取的图像数据(C#)

    在上一篇博客中,讲了一下使用GDAL从文件流中构造一个GDAL可以识别的数据来进行处理.原以为这个接口在C#中没有,仔细看了下GDAL库中源码,发现C#版本也有类似的函数,下面是GDAL库中的一个C# ...

  7. 23 , CSS 构造列表与导航

    1. 列表图片 2. 背景列表 3. 翻转列表 4. 水平导航 1. 内边距与外边距 Ul { Margin: 0; Padding: 0; } 2. 使用图片作为列表图标 Ul { Margin: ...

  8. 多层json的构造,取值,还有使用bootstrap的tree view在前端展示的相关问题

    bootstrap-tree view是一款非常好用的插件,它可以添加任意多层节点,效果如下所示: 使用之前需要在HTML页面添加依赖文件: <link href="bootstrap ...

  9. 深度学习原理与框架-Alexnet(迁移学习代码) 1.sys.argv[1:](控制台输入的参数获取第二个参数开始) 2.tf.split(对数据进行切分操作) 3.tf.concat(对数据进行合并操作) 4.tf.variable_scope(指定w的使用范围) 5.tf.get_variable(构造和获得参数) 6.np.load(加载.npy文件)

    1. sys.argv[1:]  # 在控制台进行参数的输入时,只使用第二个参数以后的数据 参数说明:控制台的输入:python test.py what, 使用sys.argv[1:],那么将获得w ...

  10. python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用) import HTMLPar ...

随机推荐

  1. 通过C#在Word中插入或删除分节符

    在Word中,分节符是一种强大的工具,用于将文档分成不同的部分,每个部分可以有独立的页面设置,如页边距.纸张方向.页眉和页脚等.正确使用分节符可以极大地提升文档的组织性和专业性,特别是在长文档中,需要 ...

  2. vue3 如何获取 dom

    1. 通过 ref     1. 在 html 标签上指定 ref 属性     2. 在 setup 中定义并返回.注意:标签上的 ref 属性名需要跟 setup 中的对应 <h1 ref= ...

  3. InfoTS: 具有信息感知增强的时间序列对比学习《Time Series Contrastive Learning with Information-Aware Augmentations》(对比学习、信息感知增强、高保真、多样性、信息论-信息瓶颈、元学习器)(没看懂,还需要再回顾)

    现在是2024年5月23日,14:30,开始看论文. 论文:Time Series Contrastive Learning with Information-Aware Augmentations ...

  4. Nodejs+npm详细安装

    Nodejs详细安装步骤1.去官网下载nodejs,下载地址:https://nodejs.org/en/download/ 根据自己要求下载,我这里下载的是windows installer的. 2 ...

  5. Hadoop & Redis未授权漏洞实战——Vulfocus服务攻防

    什么是未授权访问漏洞?Hadoop & Redis靶场实战--Vulfocus服务攻防 一.介绍 未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访 ...

  6. tailwindcss 3.3.3(完成入门,需要补充每个单独样式)

    归纳 修饰符堆叠 <button class="dark:md:hover:bg-fuchsia-600"> 以下为修饰符 伪类伪元素 使用方法: 在实用程序类前添加h ...

  7. @vue/cli eslint插件使用指南

    使用步骤 使用 npm 安装 @vue/cli-service 版本对应的 @vue/cli-plugin-eslint 例如:"@vue/cli-service": " ...

  8. Navicat Premium 12的下载和安装

    首先下载navicate程序以及破解文件,这里一并存到了百度网盘直接下载即可 链接:https://pan.baidu.com/s/1a2QKHHUZ0ej1D78CjQ1ldA提取码:klus 解压 ...

  9. Nuke导出视频缺失 H.246格式 的解决办法

    同事在使用Nuke导出视频时报错,报错提示:缺失 H.246格式 后来经过我的研究发现,Quicktime Player 在标准安装时,默认不关联一些格式(具体是哪些格式不清楚) Quicktime ...

  10. RedisTemplate设置的key,redis客户端取不到

    原因:RedisTemplate 在set key时,key被序列化 解决办法1: import org.springframework.context.annotation.Bean; import ...