偏好强化学习概述

news2024/11/24 12:34:01

文章目录

    • 为什么需要了解偏好强化学习
    • 什么是偏好强化学习
      • 基于偏好的马尔科夫决策过程(Markov decision processes with preferences,MDPP)
    • 反馈类型分类
    • 学习算法分类
      • 近似策略分布(Approximating the Policy Distribution)
      • 比较和排序策略(Comparing and Ranking Policies)
      • 学习偏好模型(Learning a Preference Model)
      • 学习奖励函数(Learning a Utility Function)
    • 近期工作
      • Deep Reinforcement Learning from Human Preference(2023)
      • Preference Transformer: Modeling Human Preferences using Transformers for RL(2023)
    • 更多相关文章

为什么需要了解偏好强化学习

为什么需要了解偏好强化学习?目前强化学习主流的方法都是基于奖励的,强化学习优化目标是长期的累计奖励。而如何设计一个好的奖励函数通常需要大量专家领域知识。并且需要考虑提出的奖励函数是否会影响学习过程,比如学习速度等等问题。在有些场景也并不是能够很好地去定义出这样一个奖励。

对于实际业务问题,业务本身比较复杂,传统解决方法(比如行为树)如果不好,那也不能基于数据去做一些offline RL。并且如果不好给定奖励函数的话,通常会采用模仿学习的方法。但是也存在一些场景人类专家也不能给出一些确切的行为,因此也不能去做一些模仿学习,比如在机器人领域控制电机的电流进而控制机械臂,人类专家无法直接给出电流的参考示例。直接人类给出动作的代价相比于给出偏好的代价是更高的。还有一些场景动作空间巨大,比如电网调度领域,动作空间高达几万个等等的一些传统解决方案很棘手的场景中,可以考虑去采用偏好强化学习来作为一种初始化网络参数,或者微调修复性能的方法。

随着生产物质的丰富,用户对于个性化追求将愈发强烈。如何将用户的个性化偏好进行量化,进而更好地服务用户(比如用GPT作为智能家居中控,给用户提供个性化的全家智能)。比如在游戏AI领域,如何基于用户反馈,设计出拟人性的智能体,或者是符合玩家兴趣爱好的智能体,或者依据玩家偏好变化而变化的NPC都是未来的发展趋势。

什么是偏好强化学习

想要去解决一个问题,首先需要去寻找的就是优化目标。在强化学习里面的优化目标就是奖励函数,因此想要待解决的问题用强化学习方法来求解,就需要将优化目标与奖励函数挂钩。而基于专家经验设计的奖励函数通常会面临四个问题:1. Reward Hacking: 只管最大化奖励分数,不考虑实际情况。2. Reward Shaping: 平衡goal definition和guidance task。3. Infinite Rewards: 存在一些case,是坚决不允许发生的。虽然现在有mask可以去做,但是也有一些问题其实是没有办法用mask去做的,只有做了之后才能验证是否违反了硬约束条件。4. Multi-objective Trade-off: 如果需要考虑多个优化目标
当然也有一些方法在设计一些内在的奖励,来处理这样一个问题。然而设计一个好的内在奖励其实也是很困难的。

偏好强化学习(Preference-Based Reinforcement Learning, PbRL)直接基于专家的反馈进行学习,并不需要设计奖励函数,并且对于人类对于专业领域的需求也比较少,因为给一个确切的数值奖励给智能体,而是一个比较值。PbRL的关键在于说把强化学习里面,对于奖励,从一个数值的反馈信号变成了一个偏好的反馈信号。想要构建偏好强化学习的优化过程,我们还需要去定义一些符号,和我们能够拿到的数据集合:

  • z i ≻ z j z_{i} \succ z_{j} zizj: 数据 z i z_{i} zi是strictly preferred。
  • z i ∼ z j z_{i} \sim z_{j} zizj: 数据偏好是无法区分的 indifferent。
  • z i ⪰ z j z_{i} \succeq z_{j} zizj: 数据 z i z_{i} zi是weakly preferred。

基于偏好的马尔科夫决策过程(Markov decision processes with preferences,MDPP)

一个MDPP可以定义成 ( S , A , μ , δ , γ , ρ ) (S, A, \mu, \delta, \gamma, \rho) (S,A,μ,δ,γ,ρ)

  • S S S 状态空间
  • A A A 动作空间
  • μ ( s ) \mu(s) μ(s) 初始状态分布
  • δ \delta δ 状态转移模型 δ ( s ′ ∣ s , a ) \delta(s^{\prime} | s, a) δ(ss,a)
  • γ \gamma γ 折扣因子

一条采样的轨迹(trajectory)可以表示为:

τ = { s 0 , a 0 , s 1 , a 1 , … , s n − 1 , a n − 1 , s n } \boldsymbol{\tau}=\{s_0,a_0,s_1,a_1,\ldots,s_{n-1},a_{n-1},s_n\} τ={s0,a0,s1,a1,,sn1,an1,sn}

ρ ( τ i ≻ τ j ) \rho(\tau_{i} \succ \tau_{j}) ρ(τiτj)定义为给定轨迹 ( τ i , τ j ) (\tau_{i}, \tau_{j}) (τi,τj)下, τ i ≻ τ j \tau_{i} \succ \tau_{j} τiτj的概率。智能体可以接收到一个偏好集合:

ζ = { ζ i } = { τ i 1 ≻ τ i 2 } i = 1... N \zeta=\{\zeta_i\}=\{\tau_{i1}\succ\tau_{i2}\}_{i=1...N} ζ={ζi}={τi1τi2}i=1...N

并且假设偏好是严格偏好,也就是有:

ρ ( τ i ≻ τ j ) = 1 − ρ ( τ j ≻ τ i ) \rho(\boldsymbol\tau_i \succ \boldsymbol\tau_j) = 1 - \rho(\boldsymbol{\tau}_j \succ \boldsymbol{\tau}_{i}) ρ(τiτj)=1ρ(τjτi)

注意:这里并没有假设一个奖励的数值信号 r ( s , a ) r(s, a) r(s,a)

如何基于人类反馈的偏好来优化策略呢?

基于人类反馈的优化框架如下图所示:

对于一个智能体来说,一个通用的目标是,在一个给定的集合 ζ \zeta ζ中去寻找到一个策略 π ∗ \pi^{*} π,能够最大化人类偏好。 τ 1 ≻ τ 2 ∈ ζ \tau_{1} \succ \tau_{2} \in \zeta τ1τ2ζ需要满足的条件是:

τ 1 ≻ τ 2 ⇔ Pr ⁡ π ( τ 1 ) > Pr ⁡ π ( τ 2 ) \boldsymbol{\tau_1}\succ \boldsymbol{\tau_2}\Leftrightarrow\operatorname*{Pr}_\pi(\boldsymbol{\tau}_1)>\operatorname{Pr}_\pi({\boldsymbol\tau}_2) τ1τ2πPr(τ1)>Prπ(τ2)

其中

Pr ⁡ π ( τ ) = μ ( s 0 ) ∏ t = 0 ∣ τ ∣ π ( a t ∣ s t ) δ ( s t + 1 ∣ s t , a t ) \Pr_{\pi}(\boldsymbol{\tau})=\mu(s_0)\prod\limits_{t=0}^{|\boldsymbol{\tau}|}\pi(a_t\mid s_t)\delta(s_{t+1}\mid s_t,a_t) πPr(τ)=μ(s0)t=0τπ(atst)δ(st+1st,at)

基于轨迹(trajectory)的最大化偏好问题可以描述为:

τ 1 ≻ τ 2 ⇔ π ∗ = arg ⁡ max ⁡ π ( Pr ⁡ π ( τ 1 ) − Pr ⁡ π ( τ 2 ) ) \pmb\tau_1\succ\pmb\tau_2\Leftrightarrow\pi^*=\arg\max\limits_{\pi}\left(\Pr_\pi(\pmb\tau_1)-\Pr_\pi(\pmb\tau_2)\right) τ1τ2π=argπmax(πPr(τ1)πPr(τ2))

到此,我们就可以定义出一个最小化偏好损失函数:

L ( π , τ 1 ≻ τ 2 ) = − ( Pr ⁡ π ( τ 1 ) − Pr ⁡ π ( τ 2 ) ) L(\pi,\boldsymbol{\tau_1} \succ \boldsymbol{\tau_2}) = - \left(\Pr_\pi(\boldsymbol{\tau}_1) -\Pr_\pi({\boldsymbol\tau_2})\right) L(π,τ1τ2)=(πPr(τ1)πPr(τ2))

在有多个偏好相互比较的关系下,损失函数可以表示为:

L ( π , ζ ) = ( L ( π , ζ 0 ) , L ( π , ζ 1 ) , … , L ( π , ζ n ) ) \boldsymbol{L}(\pi,\zeta)=(L(\pi,\zeta_{0}),L(\pi,\zeta_1),\dots,L(\pi,\zeta{_n})) L(π,ζ)=(L(π,ζ0),L(π,ζ1),,L(π,ζn))

表示为权重加和的方式则为:

L ( π , ζ ) = ∑ i = 1 N α i L ( π , ζ i ) \mathcal{L}(\pi,\zeta)=\sum_{i=1}^N\alpha_i L(\pi,\zeta_i) L(π,ζ)=i=1NαiL(π,ζi)

反馈类型分类

  1. 动作偏好(action preference): 对于给定的相同状态,比较两个动作。这种方法无法处理短期偏好与长期偏好的关系。
  2. 状态偏好(state preference): s i 1 ≻ s i 2 s_{i1} \succ s_{i2} si1si2表示相比于状态 s i 2 s_{i2} si2,人类更偏好状态 s i 1 s_{i1} si1
  3. 轨迹偏好(trajectory preference): τ i 1 ≻ τ i 2 \tau_{i1} \succ \tau_{i2} τi1τi2表示轨迹 τ i 1 \tau_{i1} τi1优于轨迹 τ i 2 \tau_{i2} τi2。轨迹偏好里一个重要问题就是信用分配问题(temporal credit assignment problem)。

学习算法分类

近似策略分布(Approximating the Policy Distribution)

对于给定的trajectory ζ \zeta ζ,基于参数化的策略分布 Pr ⁡ ( π ∣ ζ ) \Pr(\pi | \zeta) Pr(πζ)产生不同的策略 π 1 , π 2 \pi_{1}, \pi_{2} π1,π2,再基于产生的不同的策略来产生不同的trajector τ 1 , τ 2 \tau_{1}, \tau_{2} τ1,τ2, 再给定人类评判偏好,存储偏好轨迹。最后产生能够最大化轨迹偏好的策略 a r g m a x π P r ( π ∣ ζ ) argmax_{\pi}Pr(\pi | \zeta) argmaxπPr(πζ)

比较和排序策略(Comparing and Ranking Policies)

给定策略集合,在策略集合中直接进行偏好排序,选取获取偏好排序最大的策略作为最终策略进行输出:

学习偏好模型(Learning a Preference Model)

直接学一个偏好模型: C ( a ≻ a ′ ∣ s ) C(a \succ a^{\prime} | s) C(aas),策略为贪婪策略。类似DQN,在这里是直接计算偏好函数,然后基于偏好函数来直接求解策略。

学习奖励函数(Learning a Utility Function)

基于偏好计算一个奖励函数 U ( τ ) U(\tau) U(τ),在许多场景中可以拆分为 U ( s , a ) U(s, a) U(s,a)。策略求解即为最大化奖励的过程。 这也是目前主流的求解方案:

总结这四类方法就是:1. 构建一个产生策略的函数 θ \theta θ,一最大化偏好轨迹来优化 θ \theta θ。2. 给定一个策略集合,基于偏好,直接在策略集合中选取能够产生人类偏好最大的策略。3. 学习一个偏好模型 C ( a ≻ a ′ ∣ s ) C(a \succ a^{\prime} | s) C(aas), 基于这个偏好模型直接贪婪产生策略。4. 学习奖励函数,策略基于奖励函数进行优化。

近期工作

Deep Reinforcement Learning from Human Preference(2023)

  • Deep Reinforcement Learning from Human Preference

这篇文章主要贡献是用于比较困难的游戏场景中:

奖励预测器损失函数可以表示为:

P ^ [ σ 1 ≻ σ 2 ] = exp ⁡ ∑ r ^ ( a t 1 , a t 1 ) exp ⁡ ∑ r ^ ( o t 1 , a t 1 ) + exp ⁡ ∑ r ^ ( o t 2 , a t 2 ) \hat{P}\bigl[\sigma^1\succ\sigma^2\bigr]=\frac{\exp\sum\hat{r}\bigl(a_t^1,a_t^1\bigr)}{\exp\sum\hat{r}(o^1_t,a_t^1)+\exp\sum{\hat{r}(o_t^2,a_t^2)}} P^[σ1σ2]=expr^(ot1,at1)+expr^(ot2,at2)expr^(at1,at1)

log ⁡ ( r ^ ) = − ∑ ( σ 1 , σ 2 , μ ) ∈ D μ ( 1 ) log ⁡ P ^ [ σ 1 ≻ σ 2 ] + μ ( 2 ) log ⁡ P ^ [ σ 2 ≻ σ 1 ] \log(\hat r)=-\sum_{(\sigma^1,\sigma^2,\mu)\in\mathcal D}\mu(1)\log\hat P\big[\sigma^1\succ\sigma^2\big]+\mu(2)\log\hat P\bigl[\sigma^2\succ\sigma^1\bigr] log(r^)=(σ1,σ2,μ)Dμ(1)logP^[σ1σ2]+μ(2)logP^[σ2σ1]

人类偏好的不稳定性,会导致奖励预测器的偏差和方差都受到一定的影响。

实验结果:

Preference Transformer: Modeling Human Preferences using Transformers for RL(2023)

  • Preference Transformer: Modeling Human Preferences using Transformers for RL

这篇文章主要用于解决非马尔科夫性

整体框架图:


Preference Transformer局部:

注意奖励在Linear层就已经进行了预测,后续输出是对trajectory奖励的加权。

在实验部分,作者设计了一系列的评估指标,用于确定Preference Transformer确实是学到了中间的关键步骤奖励,也就是确实进行了置信分配。

更多相关文章

  • Tencent AI Lab:DEPLOYING OFFLINE REINFORCEMENT LEARNING WITH HUMAN FEEDBACK(2023)
  • UC Berkeley:Principled Reinforcement Learning with Human Feedback from Pairwise or K-wise Comparisons(2023)
  • OpenAI: Deep reinforcement learning from human preferences (2023)
  • UC Berkeley:Preference Transformer: Modeling Human Preferences using Transformers for RL(2023)
  • DeepMind: Improving Multimodal Interactive Agents with Reinforcement Learning from Human Feedback(2022)
  • Humans are not Boltzmann Distributions: Challenges and Opportunities for Modelling Human Feedback and Interaction in Reinforcement Learning(2022)
  • Google:Offline Reinforcement Learning from Human Feedback in Real-World Sequence-to-Sequence Tasks(2021)
  • Explore, Exploit or Listen: Combining Human Feedback and Policy Model to Speed up Deep Reinforcement Learning in 3D Worlds (2021)
  • Human feedback in continuous actor-critic reinforcement learning(2019)
  • Stanford: Deep Reinforcement Learning from Policy-Dependent Human Feedback (2019)
  • A Survey of Preference-Based Reinforcement Learning Methods (2017)
  • Nature: Reinforcement learning improves behaviour from evaluative feedback(2015)
  • Augmenting Reinforcement Learning with Human Feedback(2011)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/448896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STATS 782 - R Basic Concepts

文章目录 前言一、R basic1. R Operator2. 变量赋值3. c() - combine 函数4. 对向量的操作5. Special Numerical Values 二、 Built-in Functions1. min, max and range2. sum and prod3. Cumulative Summaries4. paste5. list()6. seq(&…

【Unity VR开发】结合VRTK4.0:添加遮蔽追踪器

语录: 恋爱应该是双方扶持对方共同完成自己的目标,而不是虚幻的思想、肤浅的物质、和纸醉金迷的生活。 前言: 遮蔽追踪器(Trackers.ObscuranceTracker)是基于游戏对象存在或不可见之间切换对象的状态,从而遮…

SpringBoot 通过AOP + Redis 防止表单重复提交

Spring Boot是一个用于构建Web应用程序的框架&#xff0c;通过AOP可以实现防止表单重复提交。在这篇博客中&#xff0c;我将介绍如何使用AOP来防止表单重复提交。 配置Redis 1. 添加Redis依赖 <dependency><groupId>org.springframework.boot</groupId>&…

【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

目录 🐱背景🐱工具🐱分析流程🐔登陆分析🐔检索分析🐔模拟HTML代码请求🐔 解析HTML🐔 再次分析🐟分析js算法🐟 拿下furl🐟拿下sfname🐟拿下sfname🐔 构造请求🐔再次瓶颈🐔分析cookie🐟 成功演示🐱总结

【历史上的今天】3 月 24 日:苹果推出 Mac OS X;微软前任 CEO 出生;Spring 1.0 正式发布

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 24 日&#xff0c;在 2016 年的今天&#xff0c;暴雪娱乐公司发布了第一人称射击多人游戏《守望先锋》。根据评分汇总网站 Metacritic 的统计&#xff0c…

新形势新政策下建企分包分供管理模式优化探索

通过建筑工程分包的模式&#xff0c;总包商可以有效地扬长避短&#xff0c;选择最有优势的分包企业&#xff0c;提高资源的使用效率&#xff0c;有利于在激烈的市场竞争中取得一席之地。当前&#xff0c;国内建筑市场工程分包总体运行情况良好&#xff0c;但还是存在着诸多阻碍…

Postcat 如何生成接口文档,2 分钟学会

Postcat 是一个强大的开源、跨平台&#xff08;Windows、Mac、Linux、Browsers...&#xff09;的 API 开发测试工具&#xff0c;支持 REST、Websocket 等协议&#xff08;即将支持 GraphQL、gRPC、TCP、UDP&#xff09;&#xff0c;帮助你加速完成 API 开发和测试工作。 作为代…

研读Rust圣经解析——Rust learn-12(智能指针)

研读Rust圣经解析——Rust learn-12&#xff08;智能指针&#xff09; 智能指针智能指针选择Box<T>使用场景创建Box使用Box在堆上存储递归类型数据解决 通过 Deref trait 将智能指针当作常规引用处理追踪指针的值创建自定义的智能指针&#xff08;*&#xff09; Deref隐式…

手把手实现一个lombok

手把手实现一个lombok 一、lombok原理 JSR269二、实现步骤1.工程与环境依赖注意细节 2.注解处理器3.注解4.jcTree 修改语法4.新建模块依赖我们这个jar包进行编译5.源码调试 一、lombok原理 JSR269 什么是JSR &#xff1f; JSR是Java Specification Requests的缩写&#xff0c…

python 神经网络回归

神经网络回归数据&#xff0c;21条&#xff0c;每条12个月&#xff0c;根据输入预测下一年 数据集&#xff1a; 下载链接 620906209062090620906209062090620906209062090620906209062090660936365969622628916949069597656066534455211622826735957783727886869762952670916…

【远程访问及控制】

目录 一、OpenSSH服务器1.1、SSH远程管理1.2、ssh服务器的端口1.3、修改端口号1.4、设置用户登录 二、实验2.1、设置白名单2.2、设置黑名单 三、sshd 服务支持两种验证方式:3.1、密码验证3.2、密钥对验证公钥和私钥的关系&#xff1a; 四、使用SSH客户端程序4.1、ssh 远程登录4…

java项目之疫情网课管理系统(springboot+vue源码)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的疫情网课管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

Java集合框架(Collection)

集合框架 一个Java对象可以在内部持有若干其他Java对象&#xff0c;并对外提供访问接口&#xff0c;把这种Java对象称为集合 集合框架都包含三大块内容&#xff1a;&#xff08;接口、实现、算法&#xff09; &#xff08;1&#xff09;对外的接口 &#xff08;2&#xff09;…

【C++】string类的简单模拟实现

目录 string类初识 string模拟实现 string类成员变量 构造函数 拷贝构造 赋值运算符重载 析构函数 深浅拷贝问题 string类初识 由于C语言中的字符串不太符合OOP(面向对象编程)的思想&#xff0c;而且其底层空间需要用户自己管理&#xff0c;经常有访问越界的情况出现。…

模仿风宇博客登录蒙层弹窗(vuex+computed实现)

效果图 使用了动态组件做组件切换使用vue内置的transition组件实现过渡效果&#xff0c;蒙层 和 弹框 都使用了transition&#xff0c;并嵌套vuex computed计算属性&#xff0c;实现数据 和 方法共享&#xff0c;让其它组件也能够控制到登录弹框蒙层使用了固定定位未实现&…

读取注册表中的REG_QWORD和REG_BINARY(二进制)类型数据

读取注册表中的REG_QWORD和REG_BINARY二进制类型数据 发现的问题注册表中的一些概念&#xff08;统一认识&#xff09;读取代码&#xff08;字节数据大于8的会显示f开头的前缀&#xff09;说明&#xff08;备注&#xff09;改进代码参考链接 发现的问题 首先我们要明确&#x…

【Jetpack】DataBinding 架构组件 ⑥ ( RecyclerView 数据绑定 )

文章目录 一、RecyclerView 数据绑定核心要点1、启用数据绑定 / 导入依赖2、RecyclerView 条目 DataBinding 布局3、自定义 RecyclerView.Adapter 适配器要点 ( 本博客重点 ★ ) 二、RecyclerView 数据绑定源码示例1、build.gradle 构建脚本 ( 启用数据绑定 / 导入依赖 )2、主界…

ggplot中的注释图层annotate

文章目录 介绍利用注释层添加图形利用注释层添加文本利用注释层添加公式 介绍 ggplot作图包中除了常见的geom图层外&#xff0c;还有一个annotate的注释图层&#xff0c;实现对作图对象的额外添加&#xff0c;其添加要素不在ggplot()所接受的数据框中。 利用注释层添加图形 …

家政服务APP小程序开发功能详解

随着人们生活水平的提高&#xff0c;对家政服务的要求也越来越高。而传统的到家政公司寻找服务人员的方法显然已经无法满足人们需求&#xff0c;取而代之的是线上预约家政服务。家政服务App小程序软件可以满足用户在线预约&#xff0c;还可以根据自己的需求定制家政服务、选择家…

【Hadoop-CosDistcp】通过CosDistcp的方式迁移Cos中的数据至HDFS

【Hadoop-CosDistcp】通过CosDistcp的方式迁移Cos中的数据至HDFS 1&#xff09;功能说明2&#xff09;使用环境3&#xff09;下载与安装4&#xff09;原理说明5&#xff09;参数说明6&#xff09;使用示例7&#xff09;迁移 Cos 中的数据至 HDFS 及数据校验7.1.数据迁移7.2.数据…