用 Gaussian Process 建模 state-action 空间相关性,加速 Multi-Fidelity RL
全文快读
- 题目:Multi-fidelity Reinforcement Learning With Gaussian Processes: Model-Based and Model-Free Algorithms
- 链接:https://ieeexplore.ieee.org/abstract/document/9069479
- IEEE Robotics & Automation Magazine 是 robotics 顶刊。
- main idea:
- 全文没有数学证明。
1 intro
- 利用相邻 state-action 的空间相关性来加速学习:通过 Gaussian Process(GP)作为函数逼近器。
- 主要贡献:两个算法。
- model-based MFRL 算法 GP-VI-MFRL,估计转换函数,然后使用 value iteration 计算最优策略。
- model-free MFRL 算法 GPQ-MFRL,直接估计最优 Q 值以及随后的最优策略。
3 背景
- 高斯过程:https://www.zhihu.com/question/46631426
- GP 被证明是 RL 中具有收敛保证的一致函数逼近器。
4 method
4.1 model-based 算法:GP-VI-MFRL

- 结构:包括 1 model learner、2 planner。
- model learner 使用 GP regression 学 env transition: s_{t+1} = f(s_t,a_t),使用高斯分布的形式。
- 使用 value iteration 作为 planner,用学到的 env transition 计算出最优策略。
- 算法:
- 在执行一个 action 前,agent 检查(第 8 行)它是否对当前 state-action pair 在前一个模拟器 Σi-1 中的 transition function 有足够准确的估计(方差小于 σ_th)。
- 如果不是,并且如果当前环境中的 transition model 发生了变化,它就会切换到 Σi-1,并在 Σi-1 中执行 action 。
- 跟踪当前模拟器中,最近访问的 L 个 state-action 对的方差。若方差和低于阈值 σ_th^sum(第 15 行),表明 agent 对当前模拟器很有信心,可以推进到下一个模拟器。
- 在最初的工作中 [2],agent 遇到一定数量的已知 state-action 对后,就会切换到更高保真度的模拟器。
- (第 7 行)如果一个 state-action pair 的后验方差下降到阈值 σ_th 以下(即 agent 对该 transition 有足够准确的估计),当前环境的模型就会改变,即 change = TRUE。
- 第 10 - 13 行描述了算法的主体, agent 执行贪婪地选择的 action(第 6 行),并在 Di 中记录观察到的 transition (第 11 行)。 transition function 的 GP 模型在每一步之后被更新(第 12 行)。每次更新 transition function 后,都会计算新的 Q 值估计(第 13 行)。
- 对每个模拟器,使用一个单独的 GP 来估计它的 transition function 。
- 终止条件(第 5 行):步数限制、价值函数的变化、最大的 env 切换次数…
- planner 利用上级(第 26 - 28 行)和下级模拟器(第 25 行)的转换知识,鼓励当前模拟器的探索。
- 对于每一个 state-action pair (s,a),planner 寻找最大保真度的模拟器(第 26 行遍历所有模拟器),这个模拟器对 (s,a) 的 transition 有一个已知的估计(第 28 行),使用这个估计在当前模拟器中进行规划(第 28 行)。
- 如果方差低于一个阈值,那么一个估计值就被称为“已知”。
- 如果没有这样的模拟器,那么它就使用在前一个模拟器中学到的 Q 值,再加上一个保真度参数 β(第 25 行),这个参数是连续的模拟器中最佳 Q 值之间的最大可能差异。
- 对于每一个 state-action pair (s,a),planner 寻找最大保真度的模拟器(第 26 行遍历所有模拟器),这个模拟器对 (s,a) 的 transition 有一个已知的估计(第 28 行),使用这个估计在当前模拟器中进行规划(第 28 行)。
- 必须进行状态空间离散化,以规划 action 。然而,学到的 transition function 是连续的。
- 在执行一个 action 前,agent 检查(第 8 行)它是否对当前 state-action pair 在前一个模拟器 Σi-1 中的 transition function 有足够准确的估计(方差小于 σ_th)。
4.2 model-free 算法:GPQ-MFRL

- 直接使用 GPs 学习最佳 Q 值,而非学习 env model。
- 基本假设:附近的 state-action pair 产生类似的 Q 值。
- GPs 使用 squared-exponential kernel。
- 同样,每个模拟器使用单独的 GP。
- 算法:
- 使用类似的阈值(σ_th 和 σ_th^sum)来确定何时切换到低保真或高保真模拟器。
- GPQ-MFRL 检查 agent 在前一个模拟器中是否对最佳 Q 值有足够准确的估计(第 8 行),如果没有,切换到前一个模拟器。
- 第 10 - 15 行描述了算法的主体,agent 将 transition 存入 Di(第 11 行),然后为每个 Di 中的 transition 更新目标值(第 14 行)(batch training)。GP 模型在每一步后被更新(第 16 行)。
- agent 利用在上级模拟器中收集的经验(第 25 - 27 行)来选择当前模拟器中的最佳行动(第 6 行),利用最高已知 Q 值((s,a) 的后验方差小于阈值 σ_th)的模拟器(第 27 行),来选择当前模拟器的下一个动作。
- 如果不存在这样的高保真模拟器,则使用低一层模拟器的 Q 值(第 24 行),使用保真度参数 β。
- 每当 agent 在模拟器中收集到新的样本时,GPQ-MFRL 就会进行一次 batch re-training(第 13 - 15 行),使用新样本的知识,更新以前训练数据的 y 值。
- 然后,用这些更新的 y 值,来训练 GPs 形式的 Q 值(第 16 行)。
- 更新 GP 的计算成本是数据量的三次方;然而,我们可以使用稀疏 GP 技术 [6] 对数据集进行修剪,即,只用一小部分数据来 fit GP。
- 不容易选择置信度界限的值。在目前的实验中,我们选择 σ_th^sum 为可能的最大 Q 值的 10%,σ_th 为 σ_th^sum 的 1/5。
5 experiment
- 写的蛮清楚的。
- GP-MFRL 比 14 年最初的 MFRL 效果更好(用的 high-fidelity 样本更少)。
- GP-VI-MFRL(model-based)在训练最开始时比 GPQ-MFRL(model-free)表现更好,与传统 RL 经验一致,即 model-based>model-free。
6 讨论与展望
- 未来可以将 MFRL 技术与 sim2real 方法进行比较 [1]。
- 与 sim2real 不同的是,MFRL 技术明确决定何时在模拟器之间切换,并使用两层以上的模拟器。
- 或许可以将这两个想法结合起来:使用 MFRL 来利用一些更便宜 / 更快的模拟器;使用参数化的模拟器,来引入领域适应 / 随机化(domain adaptation/randomization),以获得更好的 generalization。
- 可改进的地方:在目前的方法中,进行 GP 回归时,来自不同模拟器的数据没有结合起来。
- 1 使用多任务 GPs,它可以同时产生多个输出,分别对应于每个保真度模拟器。
- 2 使用 deep GP ,将不同保真度的数据 拿来训同一个 NN。
- 对以上两种情况,我们希望直接学习不同环境下的数值之间的相关性。
用 Gaussian Process 建模 state-action 空间相关性,加速 Multi-Fidelity RL的更多相关文章
- Gaussian Process for Regression
python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...
- [Bayesian] “我是bayesian我怕谁”系列 - Gaussian Process
科班出身,贝叶斯护体,正本清源,故拿”九阳神功“自比,而非邪气十足的”九阴真经“: 现在看来,此前的八层功力都为这第九层作基础: 本系列第九篇,助/祝你早日hold住神功第九重,加入血统纯正的人工智能 ...
- 高斯过程(gaussian process)
Definition 1. A Gaussian Process is a collection of random variables, any finite number of which hav ...
- [Bayes] Latent Gaussian Process Models
比较难理解,通过做题来入门. 目的:简单的了解下相关概念. 基础 热身 目的:找x到y的映射关系. 假设:Q latent functions {fi} fj 作为先验,跟x没什么直接关系,x只是作为 ...
- 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
维纳过程又叫布朗运动过程(Brownian motion): 1. 维纳过程 维纳过程 Wt 由如下性质所描述: W0=1, a.s.(a.s.,almost surely)
- [Functional Programming] Combine State Dependent Transactions with the State ADT (composeK to replace multi chian call)
When developing a Finite State Machine, it is often necessary to apply multiple transitions in tande ...
- Linux 进程与信号的概念和操作 linux process and signals
进程 主要参考: http://www.bogotobogo.com/Linux/linux_process_and_signals.php 译者:李秋豪 信号与进程几乎控制了操作系统的每个任务. 在 ...
- State of Hyperparameter Selection
State of Hyperparameter Selection DANIEL SALTIEL VIEW NOTEBOOK Historically hyperparameter determina ...
- Introduction to Gaussian Processes
Introduction to Gaussian Processes Gaussian processes (GP) are a cornerstone of modern machine learn ...
- 【UML 建模】状态图介绍
1.Statechart Diagram 即状态图,主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列.引起状态转移的事件(Event).因状态转移而伴随的动作(Action) ...
随机推荐
- JAVA 学习打卡 day3
2022-04-25 22:53:16 1.运算符 表达式是由操作数与运算符所组成Java中的语句有很多种形式,表达式就是其中一种形式.表达式是由操作数与运算符所组成,操作数可以是常量.变量也可以是方 ...
- MapReduce实践
1. 词频统计任务要求 首先,在Linux系统本地创建两个文件,即文件wordfile1.txt和wordfile2.txt.在实际应用中,这两个文件可能会非常大,会被分布存储到多个节点上.但是,为了 ...
- django orm的增删改查 以及django1.x和2.x的区别
ORM对字段的增删改查 # 建一个作者表 class Author(models.Model): ''' 如果你以后在创建表的时候,主键就叫id名,那么可以省略不写,orm会自动帮你创建出主键名称为i ...
- Linux远程挂载目录
Linun远程挂载文件目录 需求:有两台服务器,一个是nginx,一台服务器是weblogic,图片上传到weblogic服务器上,但是需要nginx做代理,可是nginx访问不到weblogic服务 ...
- EL_获取域中存储的值_ List 集合&Map集合值和EL _ empty 运算符&隐式对象 pageContext
3.获取对線. List 集合. Map 集合的值 1.对線:${域名称,键名.属性名}本质上会去调用对線的 getter 方法 2. List 集合:${域名称.键名[索引]} List list ...
- Django数据迁移介绍
1.简介 迁移是 Django 将你对模型的修改(例如增加一个字段,删除一个模型)应用至数据库表结构对方式 2.基本命令 python manage.py migrate---负责应用和撤销迁移 py ...
- 记录下老dropbox的使用
32-bit: wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf - 64-bit: wget ...
- [Mac技巧] 你真的会使用Mac的“聚焦搜索”吗?
Mac的"聚焦搜索"是对Mac整个磁盘的全局搜索,搜索起来极其便捷,但也常被使用者忽略使用. 以下列出比较常用的几个场景供使用者参考 场景一:文件在哪儿,要立即查看? 1.打开&q ...
- Winform 使用DotNetBar 设置界面为Office2007 样式
public partial class FrmMain : DevComponents.DotNetBar.Office2007RibbonForm { public FrmMain() { Ini ...
- Linux shell usage()使用说明
usage()类似于执行文件-help展示的内容,即告诉使用者有哪些参数选项可供使用. usage()格式 点击查看代码 #!/bin/bash usage() { echo "Usage: ...