论文:

《A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning》

算法描述:

=====================================================

Mixing Policy:

个人理解:

imitation learning的大意就是有一个expert专家,你给它输入状态,他就能给你返回一个action,这个action是质量比较好的action,也就是说expert的policy会更优,但是我们现在需要根据expert的经验来训练一个自己的控制器(一个输入state就可以输出一个不错的action的)。对于这个问题最intuitively的解法就是使用我们的需要训练的policy去环境交互,然后采集大量的episode数据,再把这些采集到的数据(state)输入到expert策略中得到expert的action,然后使用监督学习算法来进行拟合,以此来训练我们自己的policy;但是这种使用监督学习方法来根据expert的策略训练我们自己policy难以得到很好的效果,往往随着策略的rollout展开会随着时间步的增加其策略的action和expert的策略action会更加的偏离,因此该种监督学习的方式难以根据expert的policy来训练出一个效果不错的自己的policy,也是因此就有了其他的一些方法,其中一个效果不错的算法就是这里的Data Aggregation Approach: DAGGER算法。

在DAGGER算法中有一个操作是mixing policy,对于这一步操作个人一直都不是很能理解的,因为如果expert的policy是一个已知参数的神经网络,那么我们自然可以采用加权合并的方式来计算这个mixing policy,但是在实际设定中这个expert往往是human being甚至是一些无法得到其内部情况的一个黑盒,因此这里就不能采用加权合并的方式来获得这个mixing policy。对此,给出一个个人的观点,那就是这里的mixing policy其实就是在执行时随机采样,小于belta概率的话就执行expert的策略来进行采样,否则就使用自己的策略来进行采样,以此来达到mixing policy的效果。

关于belta的值的设定:

我们看到论文中的设置方式可以有两种,第一种是只有在第一次迭代计算时使用belta=1,其他迭代次数时belta=0;第二种是设置ßi=pi-1,i=1,2,3,4,5.....,这里可以设置p的取值为0.1到0.9。 第一种设置要比第二种设置要简单,往往效果也不错,这里要说明一下,在论文中一般的迭代次数比较少,如20次迭代,当然原始论文中的拟合函数都是比较简单的分离器,但是这也能体现出该种方法往往不需要太多次数的迭代;第一种设置的demo代码:https://gitee.com/devilmaycry812839668/Imitation-Learning-Dagger-Torcs

根据论文中的原始实验,采用第二种方式设置belta时p时往往选择小一些的会有更好的效果,如上面的实验效果图中p=0.5要优于p=0.9。

=====================================================

模仿学习算法:Data Aggregation Approach: DAGGER算法——Mixing policy的更多相关文章

  1. [Algorithm] 群体智能优化算法之粒子群优化算法

    同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...

  2. 转载: scikit-learn学习之K-means聚类算法与 Mini Batch K-Means算法

    版权声明:<—— 本文为作者呕心沥血打造,若要转载,请注明出处@http://blog.csdn.net/gamer_gyt <—— 目录(?)[+] ================== ...

  3. 算法9-5:最大流算法的Java代码

    残留网络 在介绍最大流算法之前先介绍一下什么是残留网络.残余网络的概念有点类似于集合中的补集概念. 下图是残余网络的样例. 上面的网络是原始网络.以下的网络是计算出的残留网络.残留网络的作用就是用来描 ...

  4. 链表插入和删除,判断链表是否为空,求链表长度算法的,链表排序算法演示——C语言描述

    关于数据结构等的学习,以及学习算法的感想感悟,听了郝斌老师的数据结构课程,其中他也提到了学习数据结构的或者算法的一些个人见解,我觉的很好,对我的帮助也是很大,算法本就是令人头疼的问题,因为自己并没有学 ...

  5. [2] TensorFlow 向前传播算法(forward-propagation)与反向传播算法(back-propagation)

    TensorFlow Playground http://playground.tensorflow.org 帮助更好的理解,游乐场Playground可以实现可视化训练过程的工具 TensorFlo ...

  6. 机器学习:k-NN算法(也叫k近邻算法)

    一.kNN算法基础 # kNN:k-Nearest Neighboors # 多用于解决分裂问题 1)特点: 是机器学习中唯一一个不需要训练过程的算法,可以别认为是没有模型的算法,也可以认为训练数据集 ...

  7. 冒泡排序算法和简单选择排序算法的js实现

    之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现. 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(d ...

  8. 『嗨威说』算法设计与分析 - 贪心算法思想小结(HDU 2088 Box of Bricks)

    本文索引目录: 一.贪心算法的基本思想以及个人理解 二.汽车加油问题的贪心选择性质 三.一道贪心算法题点拨升华贪心思想 四.结对编程情况 一.贪心算法的基本思想以及个人理解: 1.1 基本概念: 首先 ...

  9. 模拟退火算法SA原理及python、java、php、c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径

    模拟退火算法SA原理及python.java.php.c++语言代码实现TSP旅行商问题,智能优化算法,随机寻优算法,全局最短路径 模拟退火算法(Simulated Annealing,SA)最早的思 ...

  10. 机器学习算法-K-NN的学习 /ML 算法 (K-NEAREST NEIGHBORS ALGORITHM TUTORIAL)

    1为什么我们需要KNN 现在为止,我们都知道机器学习模型可以做出预测通过学习以往可以获得的数据. 因为KNN基于特征相似性,所以我们可以使用KNN分类器做分类. 2KNN是什么? KNN K-近邻,是 ...

随机推荐

  1. Vue学习:12.生命周期实例

    两个小例子,巩固一下生命周期钩子函数. 实例1:初始化渲染 实现功能: 在 Vue 实例数据为空的情况下,用户在一进入页面就向服务器发送请求获取数据,并在数据返回后进行动态渲染. 思路: 创建一个 V ...

  2. work07

    day08作业: 必做题:============================================================ 第一题: 定义一个字符串s = "Hell ...

  3. mysql加解密,substring substring_index函数

    mysql加解密,substring substring_index函数 SELECT to_base64(AES_ENCRYPT('测试串','key12345678')) ;SELECT AES_ ...

  4. Thanos解码:打造企业级云原生监控解决方案

    本文深入探讨了Thanos技术在云原生监控领域的应用,详细介绍了Thanos的基本概念.核心组件.安装配置步骤以及一个实战案例,帮助读者理解如何利用Thanos解决大规模监控数据的存储.查询和高可用性 ...

  5. arm linux 移植 curl

    背景 libcurl是一个跨平台的开源网络协议库,支持http, https, rtsp等多种协议 .libcurl同样支持HTTPS证书授权,HTTP POST, HTTP PUT, FTP 上传, ...

  6. STM32 CubeMX 学习:003-定时器

    背景 上一讲 STM32 CubeMX 学习:外部中断的使用 介绍了如何配置以及操作GPIO外部中断. 这一讲我们介绍定时器的有关概念,并对其中一种进行示范. HOST-OS : Windows-10 ...

  7. OpenCV程序练习(三):图像运算

    一.图像加法运算 代码 import cv2 img=cv2.imread("demoimg.jpg",0) #读取图片,参数0等价于cv2.IMREAD_GRAYSCALE,将图 ...

  8. xlookup与vlookup的区别

    区别还是很大的,vlookup暂时扔不了.

  9. Nuxt3 的生命周期和钩子函数(十)

    title: Nuxt3 的生命周期和钩子函数(十) date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要:本文详细介绍了Nu ...

  10. Centos7安装nacos详细步骤(配置开机自启)

    Nacos 解压文件 创建数据库nacos,导入nacos的sql文件 创建数据库nacos,导入nacos的sql文件 修改启动文件(根据系统选择) [root@localhost bin]# cd ...