深度学习课程笔记(七):模仿学习(imitation learning)

深度学习课程笔记(七):模仿学习(imitation learning)函数

2017.12.10 学习

 

  

  本文所涉及到的 模仿学习,则是从给定的展现中进行学习。机器在这个过程当中,也和环境进行交互,可是,并无显示的获得 reward。在某些任务上,也很难定义 reward。如:自动驾驶,撞死一人,reward为多少,撞到一辆车,reward 为多少,撞到小动物,reward 为多少,撞到 X,reward 又是多少,诸如此类。。。而某些人类所定义的 reward,可能会形成不可控制的行为,如:咱们想让 agent 去考试,目标是让其考 100,那么,这个 agent 则可能会为了考 100,而采起做弊的方式,那么,这个就比较尴尬了,是吧 ?咱们固然想让 agent 在学习到某些本领的同时,能遵照必定的规则。给他们展现怎么作,而后让其本身去学习,会是一个比较好的方式。测试

  本文所涉及的三种方法:1. 行为克隆,2. 逆强化学习,3. GAN 的方法优化

  

  接下来,咱们将分别介绍这三种方法:spa

  1、Behavior Cloning 3d

  

  这里以自动驾驶为例,首先咱们要收集一堆数据,就是 demo,而后人类作什么,就让机器作什么。其实就是监督学习(supervised learning),让 agent 选择的动做和 给定的动做是一致的。。。blog

  

  可是,这个方法是有问题的,由于 你给定的 data,是有限的,并且是有限制的。那么,在其余数据上进行测试,则可能不会很好。ip

  要么,你增长 training data,加入日常 agent 没有看到过的数据,即:dataset aggregation 深度学习

 

   经过不断地增长数据,那么,就能够很好的改进 agent 的策略。有些场景下,也许适应这种方法。。。it

  

  并且,你的观测数据 和 策略是有联系的。由于在监督学习当中,咱们须要 training data 和 test data 独立同分布。可是,有时候,这二者是不一样的,那么,就惨了。。。

  因而,另外一类方法,出现了,即:Inverse Reinforcement Learning (也称为:Inverse Optimal Control,Inverse Optimal Planning)。

  

   2、Inverse Reinforcement Learning (“Apprenticeship learning via Inverse Reinforcement Learning”, ICML 2004) 

  顾名思义,IRL 是 反过来的 RL,RL 是根据 reward 进行参数的调整,而后获得一个 policy。大体流程应该是这个样子:

  

  可是, IRL 就不一样了,由于他没有显示的 reward,只能根据 人类行为,进行 reward的估计(反推 reward 的函数)。

  

  在获得 reward 函数估计出来以后,再进行 策略函数的估计。。。

  

  本来的 RL,就是给定一个 reward function R(t)(奖励的加和,即:回报),而后,这里咱们回顾一下 RL 的大体过程(这里以 policy gradient 方法为例)

  

  而 Inverse Reinforcement Learning 这是下面的这个思路:

  

  逆强化学习 则是在给定一个专家以后(expert policy),经过不断地寻找 reward function 来知足给定的 statement(即,解释专家的行为,explaining expert behavior)。。。

  专家的这个回报是最大的,英雄级别的,比任何其余的 actor 获得的都多。。。

  听说,这个 IRL 和 structure learning 是很是类似的:

  

  能够看到,貌似真是的哎。。。而后,复习下什么是 结构化学习:

  

 

  咱们对比下, IRL 和 结构化学习:

  

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

  

  咱们能够看到,因为咱们没法知道获得的 reward 状况,因此,咱们只能去估计这些 奖励的函数,而后,咱们用参数 w 来进行估计:

  因此, r 能够写成 w 和 f(s, a) 相乘的形式。w 就是咱们所要优化的参数,而 f(s,a)就是咱们提取的 feature vector。

  

   

  那么 IRL 的流程到底是怎样的呢???

  

  上面就是 IRL 所作的整个流程了。  

 

  3、GAN for Imitation Learning (Generative Adversarial imitation learning, NIPS, 2016) 

  

  那么如何用 GAN 来作这个事情呢?对应到这件事情上,咱们知道,咱们想获得的 轨迹 是属于某一个高维的空间中,而 expert 给定的那些轨迹,咱们假设是属于一个 distribution,咱们想让咱们的 model,也去 predict 一个分布出来,而后使得这二者之间尽量的接近。从而完成 actor 的训练过程,示意图以下所示:

  

  ===============================  过程  ================================

  

  ====>>  Generator:产生出一个轨迹,

  ====>>  Discriminator:判断给定的轨迹是不是 expert 作的?

  

 

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

  Recap:Sentence Generation and Chat-bot 

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

  

 

 

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

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

  Examples of Recent Study : 

  

  

  

 

   

相关文章
相关标签/搜索