上一部分研究的是奖励稀疏的情况,本节的问题在于如果连奖励都没有应该怎么办,没有奖励的原因是,一方面在某些任务中很难定量的评价动作的好坏,如自动驾驶,撞死人和撞死动物的奖励肯定不同,但分别为多少却并不清楚,另一方面,手动设置的奖励可能导致不可控的行为。要解决此类问题,可以将人类专家的范例作为强化学习代理的参考去学习,因此模仿学习又叫演示学习(Learning by demonstration)或学徒学习(Apprenticeship Learning)。下面将介绍两种模仿学习方法:行为克隆和逆向强化学习。
1、行为克隆(Behavior Cloning)
  行为克隆和监督学习的思想如出一辙,人类专家采取什么动作,代理就采取什么动作。以自动驾驶为例,收集很多人类专家的驾驶资料,这些资料的状态s是开车的场景,动作a是在此场景下的动作。把这些资料输入到神经网络中,使网络的输出尽可能地接近人类实际做出的动作,就可以完成任务。

  但是在这个过程中,专家观察到的状态是有限的。比如在实验中,让人去开车就都能顺利转弯,而不会出现撞墙的情况,而这时让代理去开车,如果某一时间它没能和人类专家一样及时转弯导致出现快撞墙的状态,由于人类专家并没有给出这种情况下的处理动作,代理就不知道下一步应该怎么办。一种解决方法就是让代理收集更多的数据——Dataset Aggregation。

Dataset Aggregation

  通过Behavior Cloning得到actor Π1,使用Π1与环境进行交互,即开车;让专家坐在车里观察所处的状态并告诉actor做出什么动作;但是actor并不会听取专家的建议,还是以actor的意愿开车,如果最终撞墙一个episode就结束了;这时actor就知道在快要撞墙的时候采取什么动作了,然后用这个新的数据去训练新的策略Π2;重复多次步骤1~4。 以上就是Dataset Aggregation的过程。
  从上面可以看出行为克隆很容易实现,但是也存在问题:

  1. 代理会完全复制专家的行为,不管这个行为对不对,因为没有奖励,代理会将人类专家的行为当成圣旨;
  2. 代理的学习能力有限,代理会选择错误的行为进行复制,那什么该学什么不该学就显得很重要;
  3. 有可能出现mismatch的问题(上面开车的例子)。

  什么是mismatch问题呢?

  在监督学习中,期望训练数据和测试数据具有相同的分布,而在行为克隆中,代理做出的动作是会影响后续状态的。因为神经网络的训练存在误差,训练出来的actor Π*与人类专家Π不可能完全一模一样,就会导致某个状态下,两者采取的动作不一样,自然而然就会导致后面的状态完全不同,最坏的情况就是actor遇到了专家从未遇到过的状态,这时actor就完全懵逼了,即失之毫厘,差之千里。
  所以,虽然行为克隆简单但是并不是一种很好的方法,所以就出现了第二种方法:逆向强化学习。
2、逆向强化学习(Inverse Reinforcement Learning,IRL)

  上面的左图是熟悉的强化学习的步骤,通过环境和奖励函数,最终得到理想的actor。右图是逆向强化学习的步骤,由于无法从环境中获得奖励,那就需要通过收集人类专家的资料和环境的信息,来反推奖励函数,推出奖励函数后就可以使用正常强化学习的做法了。

 emsp;具体来看逆向强化学习的运作步骤:

  1. 让专家先玩游戏,记录游戏过程,形成n个episode;
  2. actor再去玩游戏啊,记录游戏过程,形成n个episode;
  3. 设定一个奖励函数,这个奖励函数强制要求专家的累计得分一定要高于actor的累计得分;
  4. 有了奖励函数就可以使actor去更新出更强的actor;
  5. 当actor能在此时的奖励函数下得到很高的奖励(还是要求专家的得分高于actor),让actor根据新的奖励函数更新出更强的actor;
  6. 重复执行以上步骤。

  逆向强化学习可以实现只用很少的专家示范资料,就可以训练出一个很理想的actor。
  看了以上步骤,可以 想到,actor和奖励函数对应于GAN中的generator和discriminator。通过奖励函数的不断修正,使actor越来越接近专家的水平。

深度强化学习之模仿学习(Imitation Learning)相关推荐

  1. 深度强化学习8:Imitation Learning

    [李宏毅深度强化学习笔记]8.Imitation Learning qqqeeevvv 2020-01-30 18:18:16 3344 收藏 4 分类专栏: 强化学习 # 理论知识 </div ...

  2. 深度强化学习(Deep Reinforcement Learning)的资源

    深度强化学习(Deep Reinforcement Learning)的资源 2015-04-08 11:21:00|  分类: Torch |  标签:深度强化学习   |举报 |字号 订阅 Goo ...

  3. 深度强化学习—— 译 Deep Reinforcement Learning(part 0: 目录、简介、背景)

    深度强化学习--概述 翻译说明 综述 1 简介 2 背景 2.1 人工智能 2.2 机器学习 2.3 深度学习 2.4 强化学习 2.4.1 Problem Setup 2.4.2 值函数 2.4.3 ...

  4. 深度强化学习-稀疏奖励及模仿学习-笔记(七)

    稀疏奖励及模仿学习 稀疏奖励 Sparse Reward Reward Shaping Curiosity Curriculum Learning Reverse Curriculum Generat ...

  5. 纯干货-5Deep Reinforcement Learning深度强化学习_论文大集合

    本文罗列了最近放出来的关于深度强化学习(Deep Reinforcement Learning,DRL)的一些论文.文章采用人工定义的方式来进行组织,按照时间的先后进行排序,越新的论文,排在越前面.希 ...

  6. ​万字总结83篇文献:深度强化学习之炒作、反思、回归本源

    来源:深度强化学习实验室 本文约15000字,建议阅读10+分钟 本文为你深入浅出.全面系统总结强化学习的发展及未来展望. 深度强化学习是深度学习与强化学习相结合的产物,它集成了深度学习在视觉等感知问 ...

  7. 深度强化学习发展现状及展望:万字总结解读83篇文献

    深度强化学习是深度学习与强化学习相结合的产物,它集成了深度学习在视觉等感知问题上强大的理解能力,以及强化学习的决策能力,实现了端到端学习.深度强化学习的出现使得强化学习技术真正走向实用,得以解决现实场 ...

  8. 深度强化学习泡沫及路在何方?

    一.深度强化学习的泡沫 2015年,DeepMind的Volodymyr Mnih等研究员在<自然>杂志上发表论文Human-level control through deep rein ...

  9. (转) 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文)

    本文转自:http://mp.weixin.qq.com/s/aAHbybdbs_GtY8OyU6h5WA 专题 | 深度强化学习综述:从AlphaGo背后的力量到学习资源分享(附论文) 原创 201 ...

最新文章

  1. wincc vbs mysql_Wincc VBS操作txt及SQL2005
  2. C 语言 sizeof 用法
  3. PowerShell2.0之桌面计算机维护(九)磁盘管理
  4. 动态链接库编写与使用(VC6)
  5. 关系型数据的分布式处理系统:Cobar
  6. c语言vbs,我的vbs整人程序
  7. UE4 C++使用Multi Theard的教程
  8. Fluent Ribbon项目出现“命名空间“clr-namespace:Fluent;assembly=Fluent”中不存在“RibbonWindow”名称”的解决方法...
  9. 程序竞赛中常用的C字符串函数
  10. 杭电算法题 HDU 1000-1004
  11. asp.net中调用javascript自定义函数的方法(包括引入JavaScript文件)总结
  12. dw8html合并单元格,DW 做一个table表 对单元格进行合并
  13. 厦门大学LaTeX毕业论文模板:中英文双目录
  14. String的底层分析 (学习笔记)
  15. 安卓开发自学教程,Android研发岗必问30+道高级面试题
  16. 常用分辨率设置,RGB与CMYK_几何途行_新浪博客
  17. 【CC】| 创建三维模型教程
  18. 制作拼多多app网页css,5+App下Mui框架开发仿拼多多App
  19. 被锁死的小程序:苹果、谷歌、Facebook、微信的暗战
  20. C++之一些事一些情--变量值的溢出问题

热门文章

  1. arduino物联网实验:光敏电阻实现光控小夜灯
  2. vue路由跳转 router-link 清除历史记录的三种方式
  3. Qt使用大图标工具栏、svg格式图标
  4. 智能电视如何设置电视直播开机自启动?
  5. 复试项目1--蓝桥杯电子钟
  6. html多个倒计时,倒计时(支持多个).html
  7. 2016计算机中级职称考试,2016.2年中级职称计算机考试模拟及题库.doc
  8. 进程同步——打瞌睡的理发师问题
  9. PHP 实现定时任务的几种方法
  10. php swoft2.*版本(swoole框架)定时任务功能,php定时任务