多精度 simulator 中的 RL:一篇 14 年 ICRA 的古早论文
全文快读
- 论文题目:Reinforcement learning with multi-fidelity simulators,是 14 年的 ICRA 会议的论文。师兄说是 robotics 顶会,但中稿率蛮高的。
- 链接:https://ieeexplore.ieee.org/document/6907423
- main contribution:把 multi-fidelity optimization 拓展到 sequential decision 场景。
- 主要内容:
- 目标:real-world sample 数量最少。
- 定义 optimistic multi-fidelity simulator chain:一大串 multi-fidelity 的 simulator。
- KWIK 技术:很 naive 的技术,就是,如果我们看到过足够多这种情况,就根据经验给出 reward / transition 估计,否则,给出最大 reward 作为估计(鼓励 exploration)。
- MF-bandit 算法:
- 假设 state 不变,我们要找到最优 action;
- 目前在尝试 a* = argmax Reward(最大化 reward 估计值)这个动作,在 level d 的 fidelity 尝试了这个动作,得到其 reward,用这个 reward 更新 reward 估计值。
- reward 估计值的更新:如果在最 low-fidelity 的 simulator,估计值 = R_max;否则,用 fidelity 低一层的 reward 估计值,作为当前 fidelity reward 估计的 heuristic,估计 = R_{d-1} + β。
- 然后,我们继续做 a* = argmax R,因为 reward 估计值变了嘛,所以这个 a* 很可能跟上一轮的 a* 不是同一个。
- 如果是同一个,那我们就认为 policy 在 level d 的 fidelity 收敛了,去 level d+1 继续做 MF-bandit。
- 如果不是同一个:如果这个 a* 在 level d-1 上并没有估计值,即,我们没法拿 d-1 的 reward 估计做 d 层 reward 估计的 heuristic 了,那么回退到 d-1 层,先把 d-1 层 reward 估计算出来。
- MFRL 算法:跟 MF-bandit 基本一样。
- 我们需要估计的有:1. reward,2. env transition。
- 要通过 argmax Q function 取 action。
- 每次 1. reward,2. env transition 有所更新(根据 KWIK,即出现 (s,a,r,s’) 次数足够多),就重新计算 Q function。并且,如果 1 2 有所更新,把数据同步到所有更 low-fidelity 的 KWIK learner。
- 局限性:我还没太想好,如果用 DRL 来做,具体该怎么做。
0 abstract
- 提出一个 RL 框架:在有多个保真度(fidelity)不断降低的 simulator 的情况下。
- 我们的框架允许 agent 选择仍能提供信息的最 low-fidelity 的 simulator,来限制 high-fidelity simulator 的样本数量。
- 该方法基于 know-what-it-knows 技术,将 low-fidelity 的 Q function 作为 high-fidelity RL 的 heuristic。与迁移学习(transfer learning)或无模拟器学习相比,real-world sample 数量更少。
- 给出了关于 sample conplexity 的理论证明,并在一辆有 multi-fidelity simulator 的遥控汽车上做实验。
1 intro
迁移学习:将策略从 simulator 转移到 real-world。
多保真 RL(MFRL):
- 结合多保真优化 [6] 和 model-based RL,"面对不确定性的乐观主义 "启发式方法,RL [7] 的 "知道它知道什么"(know what it knows,KWIK)model-learning framework。
- 1 在 coarse model 里探索,2 用 fine model 更新 coarse model。
与只向现实世界的 agent 传递一次 heuristics 的单向方法不同[5],MFRL 框架还规定了 agent 何时应该向上移动到高保真模拟器,以及在更昂贵的模拟中进行过度探索之前,向下移动保真度的规则。有理论上的收敛、采样效率的保证。
具体来说,该框架
- (1)不会在高水平上运行已被证明为次优的行动,
- (2)(在一定条件下)将最高 fidelity 的样本数量降到最低,
- (3)限制 sample 总数。
- 此外,可以证明 MFRL without resets 在最高 fidelity 的 simulator 上的样本数(最坏情况)不比“单向传输”方法多。
main contributions:
- (1)介绍 MFRL framework;
- (2)对该框架的 sample complexity 进行了理论分析;
- (3)实验。
2 related work
RL:1 在 simulator 里学,然后直接在 real-world 跑,2 一直在 real-world 里跑,但用 low-fidelty simulator 算 policy gradient。
已经有监督学习的 multi-fidelty 工作了。
使用 low-fidelty model 生成的东西,作为指导 exploration 的 heuristic。
- 不是 用上一个环境训出来的 policy 指导当前环境学习的迁移学习(transfer learning,TL)。
- 不是 在 action space 不同的环境间的 TL [10],因为 env 的 dynamics 和 rewards 也不一样。
类似的方法是 transferred delayed Q-learning(TDQL)[5]。可以证明我们的方法在 highest-fidelity env 上的 sample 数量 ≤ TDQL。
我们的工作将多保真优化(MFO)[6] 扩展到顺序决策(sequential decision-making)问题,借鉴 MFO 的经验,用 high-fidelity 数据更新模型,并根据 low-fidelity 结果作为 RL exploration 的 constraint。
3 背景 & 假设
3.1 RL & KWIK(know what it knows)的背景
- KWIK:是一种 standardize RL sample complexity 的 framework。sample complexity 就是次优步骤的数量。
- 如果 agent 对 (s,a) 的预测 (s’, r) 有把握,即 || prediction - ground truth || ≤ ε,则使用预测值 (s’, r),否则 agent 给出⊥,表示它不知道 (s,a) 会发生什么。
- KWIK-Rmax RL:于是,使用预测的 s’ 和 real env 的 reward 建立近似 MDP。如果 agent 给出了⊥,则乐观的将 reward 设成 (1-γ)R_max。
- 它保证了多项式的 sample complexity。
- (并没有听懂)
3.2 问题定义
- 用 Σ 表示 MDP simulator。
- 貌似,假设 low-fidelity 是 high-fidelity 的一种状态集结,用 |Q(s, a) - Q(ρ[s], a)| 来定义 fidelity f(Σi, Σj, β),其中 ρ 是 Si → Sj 的 state mapping,Σi 的 fidelity<Σj。(见公式)
- 所以,Σi 对 Σj 的 fidelity 与它们最优 Q function 的误差成(负的)正比,前提是 low-fidelity Σi 对 Q function 的低估(还是高估)不超过 β,否则就是负无穷。
- 合理性解释:在汽车模拟器中,low-fidelity Σi 假设行动会有完美的结果,然而在 higher-fidelity 中,这些乐观的 Q function 被更现实的 value function 所取代。
- Definition 1: optimistic multi-fidelity simulator chain:一系列 Σ1 .. ΣD,其中 ΣD 是 real world,并且对于一个特定的 ρi 和 βi,有 fidelity(Σi, Σ_{i+1}, βi) 不是负无穷。
- Assumption 1: 假设对于 low-fidelity Σi 和 high-fidelity Σ_{i+1},在后者上模拟一步的 cost 是在前者上模拟多项式步(polynomial)的 cost。
- Assumption 2: 只能通过连续 trajectory 的方式使用模拟器,不能随机访问 (s,a) 或直接读参数。
- objectives:
- 尽量减少 ΣD(real-world)的 sample 数量。
- sample 数量是多项式的约束?
- switch simulator 次数是多项式的约束。
4 Multi-Fidelity Bandit Optimization
考虑最简单的 setting:一个带有随机性的、只包含一个 state、k 个 action(称为 arm)的 MDP,使用 MF 优化寻找最优 arm。
4.1 MF 寻找最优 arm 的算法(MF-bandit)
变量与初始化:
- 首先维护一个 reward 集合 R_d(a),用于存储尝试各种 action(arm)的经验。
- 如果 reward 经验集合 R_d(a) 里关于某 action a 的经验超过 m 条,则取这些经验 reward 的平均值为 reward 估计值 U^_{d,a};
- 否则给出⊥即“我不知道”,并将 R_max 作为估计值(乐观估计)。
- 维护 bool 变量 closed_d,表示 Σ_d 的 action 是否收敛。
- 维护采取某 action 后的 reward 的 upper bound,U_{d,a}。
- 维护 bool 变量 con_{d,a},表示 d 层的 action a 我是否了解透了。
- 维护 bool 变量 change_d,表示 d 层的 a* = argmax R_d(a) 是不是要变了。
算法:
- 首先取 a* = argmax U_{d,a},即 reward 上界最大的 action。
- 更新 closed_d = con_{d,a*} 或者 a* 肯定是 near optimal,表示 Σ_d 的 action 收敛了。
- 如果 closed_d == false,即 Σ_d 中 action 的 reward 还没收敛,则执行 a*,得到 reward r,更新 reward 经验集合 R_d(a)。
- 然后,更新 reward upper bound U_{d,a*} = min(U_{d,a*}}, U^_{d,a*})。
- 最初的 U_{d,a} = U_{d-1,a} + β_{d-1} 是来自 low-fidelity 的 heuristic,是 low-fidelity simulator 的 heuristic 加上高估的极限 β。
- 如果 R_d(a) 能够给出对于 a 的 reward 估计(即经验超过 m 条)了,则
- con_{d,a*} = true,表示 a* 我了解透了;
- change_d = true,表示 既然我获得了基于真实经验的 reward 估计值,可能 d 层的 a* = argmax R_d(a) 要换一换了。
- 然后,更新 reward upper bound U_{d,a*} = min(U_{d,a*}}, U^_{d,a*})。
- 如果 closed_d == true,即 Σ_d 中 action 的 reward 收敛了,则 d += 1。
- 同时更新 heuristic U_{d+1,a} = U_{d,a} + β_d,changed_{d+1} = false。
- 如果 con_{d-1,a*} == false(目前给出的 a* 还没了解透)&& change_d == true(上一轮得到了一个 action 的真实 reward 估计,所以这一轮换 argmax action 了),则代表 a* = argmax R 换了个 action,但这个 action 在 low-fidelity 中还没理解透(也就是所谓的 low-fidelity 给出的最佳 action 在 high-fidelity 表现不好),要回溯到 low-fidelity simulator,d -= 1。
- 更新 changed_{d-1} = false。
- for 所有的 action a:如果 con_{d,a} == true(表示 action a 在 simulator d 研究透了),then
- 把 high-fidelity 的经验 R_{d} 拷贝到 low-fidelity 经验集合 R_{d-1},
- 设置 con_{d-1,a} == true(既然上层研究透了,下层也不用做研究了),
- change_{d-1} = true。
真抽象。
4.2 一个例子 4.3 理论证明
不愿多看。
5 Multi-Fidelity RL
5.1 MFRL algorithm
变量与初始化:
- ρ 是 simulator 之间的 state mapping。
- m_known 是去往更高 fidelity 的采样次数。
- Q function 初始化为 R_max / (1-γ),乐观的估计。
- 如果模型参数发生变化,change_d = true,重新计算 Q 值。
- 关键技术和前面的 MF-bandit 很像:如果在当前 fidelity 上,刚刚模型学到了更多 (s,a) 的值(change == true),导致 Q function 重新计算,a* = argmax Q 的 a* 变化了;然而,变化后的 a* 在上一 fidelity(d-1 层)仍然存在不确定性,那么就回溯到 d-1 层。
算法:
- 首先取 a* = argmax Q_d(s,a),即估计的 Q function 上界最大的 action。
- 如果 d>1 && change_d == true && \(T_{d-1}[ρ_{d-1}^{-1}(s),a]\) == ⊥ 或者 \(R[ρ_{d-1}^{-1}(s),a]\) == ⊥,则回溯到 low-fidelity simulator,d -= 1。
- \(Q_{d-1}[s,a] = P(\hat\Sigma_{d-1}, Q_{d-2} + \beta_{d-2})\)。
- m_k = 0。
- else,执行 action a*,观测 r 和 s'。
- 如果 \(R_d[s,a^*]\) == ⊥ 或者 \(T_d[s,a^*]\) == ⊥,那么 m_k = 0,更新 R_d 和 T_d。
- else,m_k += 1。
- 如果 \(R_d[s,a^*]\) 和 \(T_d[s,a^*]\) 从 ⊥ 变成 known,那么
- \(Q_d[s,a^*] = P(\langle S_d,A,R_d,T_d,\gamma\rangle, Q_{d-1} + \beta_{d-1})\) 。
- 对于所有 d’ ≤ d,根据 \(R_d[s,a^*]\) 和 \(T_d[s,a^*]\) 的新值,来更新 \(\langle R,T\rangle_{d'}(ρ_{d-1}^{-1}(s),a^*)\)。
- 把 high-fidelity 的数据传递给【所有】更低的 fidelity。
- 并且 change_d’ 都 = true。
- 如果 \(R_d[s,a^*]\) == ⊥ 或者 \(T_d[s,a^*]\) == ⊥,那么 m_k = 0,更新 R_d 和 T_d。
- 如果 d<D && m_k == m_{known},那么增加 fidelity,去 d+1 层,d += 1。
- \(Q_{d+1}(s,a) = P(\hat\Sigma_{d+1},Q_d+\beta_d)\) 。
- m_k = 0,change_d == false。
5.2 一个例子 5.3 理论证明
不愿多看。
6 实验:RC car results
自己开 Google 翻译看就好啦。
看起来实验 setting 蛮 naive 的。
7 extensions & conclusions
- 虽然这项工作是 tabular transition model & tabular reward,但 NN 近似当然可以。
- 生成一些样本(?)第二段没看懂。
- MFRL:
- sequential decision 的 multi-fidelity optimization,用 low-fidelity 作为 heuristic 来指导 high-fidelity 探索。
- 与 transfer learning 不同,我们还可以从 high-fidelity transfer 到 low-fidelity。
- 有一堆理论证明。
- 在遥控汽车上做实验。
多精度 simulator 中的 RL:一篇 14 年 ICRA 的古早论文的更多相关文章
- iOS 把图片从Mac本地添加到iOS Simulator中
[把图片从Mac本地添加到iOS Simulator中] 1. 把图片从Mac本机拖动到iOS Simulator中: 2. iOS Simulator会自动打开Safari去打开对应的图片,然后你用 ...
- 视觉SLAM中的数学基础 第二篇 四元数
视觉SLAM中的数学基础 第二篇 四元数 什么是四元数 相比欧拉角,四元数(Quaternion)则是一种紧凑.易于迭代.又不会出现奇异值的表示方法.它在程序中广为使用,例如ROS和几个著名的SLAM ...
- Linux中磁盘分区——理论篇
Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...
- 全面解析JavaScript中“&&”和“||”操作符(总结篇)
1.||(逻辑或), 从字面上来说,只有前后都是false的时候才返回false,否则返回true. ? 1 2 3 4 alert(true||false); // true alert(false ...
- vue项目中使用bpmn-节点篇
前情提要 根据之前的操作,我们可以创建.导入.导出流程图,并对其进预览.通过此篇可以学到: 为节点添加点击.鼠标悬浮等事件 获取流程图内所有指定类型的节点 通过外部更新节点名字 获取节点实例的两种方法 ...
- vue项目中使用bpmn-基础篇
内容概述 本系列“vue项目中使用bpmn-xxxx”分为五篇,均为自己使用过程中用到的实例,手工原创,目前属于陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项 ...
- vue项目中使用bpmn-番外篇(留言问题总结)
前情提要 “vue项目中使用bpmn-xxxx”系列的七篇文章在上周已经更新完成,发表后,有小伙伴在使用时提出了一些文章中没有讲到的问题,此篇作为番外篇,将大家提出的共性问题解答一下,欢迎大家支持原创 ...
- Java中的泛型 - 细节篇
前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的泛型 - 细节篇>,希望对大家有帮助,谢谢 细心的观众朋友们可能发现了,现在的标题不再是入门篇,而是各种详细篇,细节篇: 是因为之 ...
- 聊聊 Netty 那些事儿之 Reactor 在 Netty 中的实现(创建篇)
本系列Netty源码解析文章基于 4.1.56.Final版本 在上篇文章<聊聊Netty那些事儿之从内核角度看IO模型>中我们花了大量的篇幅来从内核角度详细讲述了五种IO模型的演进过程以 ...
- 当初要是看了这篇,React高阶组件早会了
当初要是看了这篇,React高阶组件早会了. 概况: 什么是高阶组件? 高阶部件是一种用于复用组件逻辑的高级技术,它并不是 React API的一部分,而是从React 演化而来的一种模式. 具体地说 ...
随机推荐
- element select多选选项卡页面抖动问题
最近做项目是有个功能需要下拉框多选,然后碰到了一个问题就是选择选项的时候出现频繁抖动的情况 问题描述: 页面选择到三个选项时长度为三的时候就会开始抖动,其他长度没有问题,检索elements是发现选择 ...
- 记录Echarts官网打开慢的解决方法
进入C:\Windows\System32\drivers\etc: 在hosts文件里添加 151.101.2.132 echarts.apache.org
- 2月22日javaweb学习之Maven
Maveb是专门用于管理和构建java项目的工具,它的主要功能有: 1.提供一套标准化的项目结构. 2.提供一套标准化的构建流程(编译.测试.打包.发布......) 3.提供了一套依赖管理机制 Ma ...
- 从零开始:在树莓派上安装OpenEuler
树莓派(Raspberry Pi)是一款基于ARM架构的小型电脑,它的便携性和低功耗性能使它成为制作物联网设备或运行嵌入式系统的理想选择.在这篇博客中,我们将介绍如何在树莓派上安装OpenEuler操 ...
- C# NAudio 检测声音
using NAudio.Wave;using System;using System.Collections.Generic; namespace WinFromBaidu{ class NAudi ...
- 三、JMeter实战-快速上手JMeter
1.JMeter基本操作 线JMeter最基本的操作有三个步骤: 先添加一个线程组. 添加HTTP请求. 添加查看结果树. 1.1.添加线程组 在测试计划下新建一个线程组 1.2.添加HTTP请求 在 ...
- js中的占位函数
String.prototype.signMix= function() { if(arguments.length === 0) return this; var param = arguments ...
- (6) JavaScript - Math对象与日期对象
1 认识对象 概念:对象就是一种类型,一种引用类型,而对象则是引用类型的实例.在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,通常它也被称作类. 面向过程思想:只考虑过程 ...
- CMake指定的任务可执行文件"cmd.exe" 未能运行。System.IO.IOException:未能创建临时文件。临时文件夹已满或其路径不正确。对路径"......exec.cmd "的访问被拒绝
我觉得是我使用VS2022的原因,网上也没有找到相同的问题.
- Matlab %伍
第五章:初级绘图进阶 Special Plots loglog semilogx semilogy plotyy hist bar pie polar Logarithm Plots x = lo ...