论文:

《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. Spring Data JPA 学习笔记1 - JPA与Spring Data

    标记[跳过]的未来完善 1 理解JPA 1.1 什么是持久化? 当一个软件关闭的时候,软件内储存的状态数据还能在下次开启时被恢复,这就是持久化.对象持久化是指每个独立的对象的生命周期都能不依赖应用程序 ...

  2. JVM垃圾回收器(详解)

    引言 垃圾回收(GC,Garbage Collection) 在笔者上一篇文章中(JVM内存模型),介绍了JVM内存模型以及JVM运行时的数据区,堆是JVM内存区域里面最大的一块区域,用于存放实例数据 ...

  3. 阿里也出手了!Spring CloudAlibaba AI问世了

    写在前面 在之前的文章中我们有介绍过SpringAI这个项目.SpringAI 是Spring 官方社区项目,旨在简化 Java AI 应用程序开发, 让 Java 开发者想使用 Spring 开发普 ...

  4. 在Xcode编写我们的quick help

    程序环境 Xcode 13.2.1 "写代码要经常写注释."虽然很多人不以为然,但是在使用Xcode的时候,我们在写注释的时候稍微注意一下格式的话,Xcode会给我们带来额外的正反 ...

  5. k8s中的亲和性、污点与容忍(调度到不同的宿主机)

    本文章并未经过严格实践,如有错误,辛苦指出. 背景 服务需要多副本,来保证高可靠.多活. 那么问题来了,假如这些副本都在同一个宿主机上,或者同一个交换机下-宿主机.交换机其中一项坏掉了,那多副本还有什 ...

  6. Hbase第二课:Hbase架构与基础命令

    目录 HBase架构与基础命令 一.了解HBase 1.1 HBase概述 1.2 HBase处理数据 1.3 HBase与HDFS 二.HBase相关概念 2.1 分布式数据库 2.2 列式存储 2 ...

  7. FFmpeg新旧接口对照使用一览

    背景 根据例程学习调用ffmpeg 库方法的时候,发现了一堆警告. main.cpp:81:37: warning: 'AVStream::codec' is deprecated [-Wdeprec ...

  8. Linux 提权-Docker 容器

    本文通过 Google 翻译 Docker Breakout – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充. ...

  9. 背包DP——多重背包

    多重背包也是 0-1 背包的一个变式.与 0-1 背包的区别在于每种物品有 k 个,而非一个. 朴素 直接把相同的每个物品视作各个单独的物品,没有关联,仅条件相同: 转换后直接用01背包的状态转移方程 ...

  10. Windows部署语音转文字项目_Whisper

    Windows部署语音转文字项目_Whisper Windows部署语音转文字项目_Whisper 一.前置安装准备 Github源仓库,Whisper 下载安装whisper及其依赖项 官方有两种部 ...