offline RL · PbRL | LiRE:构造 A>B>C 的 RLT 列表,得到更多 preference 数据
- 论文标题:Listwise Reward Estimation for Offline Preference-based Reinforcement Learning,ICML 2024。
- arxiv:https://arxiv.org/abs/2408.04190
- pdf:https://arxiv.org/pdf/2408.04190
- html:https://ar5iv.org/html/2408.04190
- GitHub:https://github.com/chwoong/LiRE
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。
- 有些方法直接获得一个相对 preference 数值(明显更好 / 略好),或每个轨迹的绝对 rating(非常好 好 一般 中 差),但它们获取 feedback 的成本较高。
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 是不是这么写)
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 建模成了线性形式(而非指数形式):
\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 数据的更多相关文章
- 【head first python】1.初识python 人人都爱列表
#coding:utf-8 #创建简单的python列表 movies = ["The Holy Grail", "The Life of Brain", &q ...
- 【C#进阶系列】28 基元线程同步构造
多个线程同时访问共享数据时,线程同步能防止数据损坏.之所以要强调同时,是因为线程同步问题实际上就是计时问题. 不需要线程同步是最理想的情况,因为线程同步一般很繁琐,涉及到线程同步锁的获取和释放,容易遗 ...
- 第1部分: 游戏引擎介绍, 渲染和构造3D世界
原文作者:Jake Simpson译者: 向海Email:GameWorldChina@myway.com ---------------------------------------------- ...
- c语言Winpcap编程构造并接收解析arp包
/* 程序功能: 1.构造arp包,并发送.程序参数顺序:源IP.目的IP.mac地址.flag 2.获取网络中的ARP数据包,解析数据包的内容.程序参数:日志文件名 winpacp中文技术文档(基本 ...
- Redis+Restful 构造序列号和压力测试【原创】
[本人原创],欢迎交流和分享技术,转载请附上如下内容:如果你觉得这篇文章对你有帮助,请记得帮我点赞, 谢谢!作者:kevin[转自]http://www.cnblogs.com/itshare/ 很多 ...
- 从二进制数据流中构造GDAL可以读取的图像数据(C#)
在上一篇博客中,讲了一下使用GDAL从文件流中构造一个GDAL可以识别的数据来进行处理.原以为这个接口在C#中没有,仔细看了下GDAL库中源码,发现C#版本也有类似的函数,下面是GDAL库中的一个C# ...
- 23 , CSS 构造列表与导航
1. 列表图片 2. 背景列表 3. 翻转列表 4. 水平导航 1. 内边距与外边距 Ul { Margin: 0; Padding: 0; } 2. 使用图片作为列表图标 Ul { Margin: ...
- 多层json的构造,取值,还有使用bootstrap的tree view在前端展示的相关问题
bootstrap-tree view是一款非常好用的插件,它可以添加任意多层节点,效果如下所示: 使用之前需要在HTML页面添加依赖文件: <link href="bootstrap ...
- 深度学习原理与框架-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 ...
- python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser(原理很大程度上就是对类构造的熟练运用) import HTMLPar ...
随机推荐
- echarts 等相关问题解答过程
echarts 绘制中国地图https://blog.csdn.net/sleepwalker_1992/article/details/126959198 elmentui table数据轮播显示: ...
- 006.MinIO基础使用
图形界面基础使用 bucket bucket创建 图形界面创建bucket. 特性: Versioning 开启版本控制,开启版本控制则允许在同一键下保持同一对象的多个版本. Object Locki ...
- EF Core – Library use EF
前言 写 Library 有时候会用到 database, 会想用 EF 来维护. 比如 Identity, IdentityServer, OpenIddict, 这些 Library 都有使用到 ...
- Windows自动更新hosts(bat脚本方式)
为了解决无法打开 github 网页的问题,才有了这个自动更新hosts 的命令脚本 hosts 里的内容会每日更新,内容从这里拿 文件:https://raw.hellogithub.com/hos ...
- 【赵渝强老师】Flink的DataSet算子
Flink为了能够处理有边界的数据集和无边界的数据集,提供了对应的DataSet API和DataStream API.我们可以开发对应的Java程序或者Scala程序来完成相应的功能.下面举例了一些 ...
- IDEA更改远程git仓库地址
前言 我们在使用IDEA开发时,一般会配置好对应的git仓库,这样就比较容易对代码进行控制以及协同开发. 但有时候,我们远程的仓库地址由于这样那样的原因,需要迁移(这在爱折腾的企业是常有的事情). ...
- 10款好用的开源 HarmonyOS 工具库
大家好,我是 V 哥,今天给大家分享10款好用的 HarmonyOS的工具库,在开发鸿蒙应用时可以用下,好用的工具可以简化代码,让你写出优雅的应用来.废话不多说,马上开整. 1. efTool efT ...
- Sealos Devbox 发布,珍爱生命,远离 CI/CD
水滴攻击太阳系用的是最原始的攻击方式:撞击!却又如此有效率. 当我们搞了一堆容器.编排.CI/CD.DevOps,发明了一大堆没什么用的名词之后,最终发现这些操作都是花里胡哨,让开发者越陷越深. 最终 ...
- 2022年 GOPS 全球运维大会(上海站)资料分享
2022年 GOPS 全球运维大会(上海站)主题为"XOps 风向标",共分为16个专场,主要侧重方向是运维.DevOps.AIOps.DevSecOps.云原生.研发效能.可观测 ...
- 墨天轮最受DBA欢迎的数据库技术文档-SQL优化篇
[墨天轮最受欢迎的技术文档]系列文章得到了很多朋友的支持,大家也告诉了我们期待看到的主题这不!大家想看的优化系列-SQL优化篇来啦~原文文末送墨值中,欢迎大家参与! 数据库的调优被分成多个阶段,每个阶 ...