【李弘毅深度强化学习】8.Imitation Learning

本节课我们主要研究的是“Imitation Learning”(模仿学习)

Imitation Learning也被叫做“示范”或者“学徒学习”

使用这种方法的情况通常是这样的:1,agent可以和环境进行交互,但是通常是无法获得具体明确的reward。2,在一些实验中是无法明确定义reward的。3,有的时候我们定义的reward是不准确的,容易造成很大困扰的

虽然reward是很难定义的,但是我们通常都是具有一个专家export并且这个专家会解决我们所要解决的问题。

我们有两种解决这种问题的方法,一种是•Behavior Cloning(行为克隆),一种是Inverse Reinforcement Learning (逆强化学习)下面我们逐一进行介绍

 

首先我们介绍一下行为克隆,这是一种类似于监督学习的方法,就是我们会把export(专家)的数据输入其中,之后agent遇到相似的情况就会效仿专家进行解决了。

我们把(s, )对输入到神经网络中,之后训练actor,训练好的actor遇到相同的s,就会进行对应的a了

举个例子就是机器人实现自动驾驶,我们把export的(s,a)对输入其中,之后actor如果遇到相似的s,就会选择动作a了。

但是这种做法是有缺陷的,缺陷就是我们的export数据不全面,无法sample到比较特殊的情况,export数据是十分有限的,所以一旦agent遇到特殊的情况便不知道该何去何从了。

比如这个转弯的例子,export都是直接按照红色的曲线进行转弯,但是有的agent学习的不好,就撞到护栏了,但是训练集中并没有这种情况,所以就陷入死循环了。

所以为了解决数据不全面的问题,我们设计了一种方法叫Dataset Aggregation 来解决

这种方法就是让一个agent去和环境交互,但是在交互的过程中一直有一个export进行指导,从而让export可以取得极端环境下的数据。

举个例子:自动驾车,让一个agent进行驾车,之后安排一个export对agent进行指导,当agent进行机端环境的时候,export也会对其进行指导,从而收集到很多机端环境的数据,这样数据集就不再匮乏了。

行为克隆的另一个缺点就是:agent会死学export的全部特征,这其中有对行为有利的特征,当然也存在对行为没有任何价值的特征,如果agent将所有的特征(无论有用还是无用的)都进行学习的话还好,但是有时候agent学习的特征是有一定容量限制的,同时agent是无法区分有用特征和无用特征的区别的,他可能只学习了无用的特征而忽略了有用的特征,这九十分尴尬了。

第三个缺点:在监督学习中,我们的数据都是符合独立同分布的,因此数据是无序的,但是在强化学习中,我们的动作存在顺序的不同了,比如a出现在不同的时刻,导致最终的r都是不同的,如果export的a序列和agent的序列是相同的话还好,但是如果不同的话,就何难match住了,因此训练也就无效了。

 

接下来我们探究一下另一种方法,就是Inverse Reinforcement Learning (逆强化学习),在正常的强化学习中,我们是指导环境environment和reward function通过强化学习算法,我们得出一个训练有素的actor。

 

而逆强化学习也同样拥有一个环境作为输入,我们把expert在环境中的马尔可夫链作为输入,通过一个逆强化学习算法,求出这里的reward function。得到这个reward function以后,我们再用这些来作为强化学习训练的输入,之后再训练形成一个好的actor。

 

具体细节的过程如下,export把自己的马尔可夫链输入进去,之后actor再把自己的马尔可夫链输入进去,输入到obtain reward function函数中,得到一个reward function。这个函数的细节是,将export的分数打高,将actor的分数打低。

之后再用得到的reward function函数训练actor,之后训练好的actor再把自己的马尔可夫链输入,和export的马尔可夫链都输入到obtain reward function函数中,更新reward function,再进行强化学习训练。

知道actor和export之间的差距接近于零,才停止训练。

其实整个过程类似于一个GAN,actor相当于是generator,reward function相当于discriminator

GAN中是数据库提供真正的图片,之后generator提供自己生成的图片,放入D中进行评分,给数据库中的图片高分,给生成的图片低分。之后G和D互相对抗提高。

而逆强化学习是actor作为G,提供自己生成的动作,export相当于数据库,提供正确的答案,之后obtain reward function相当于D给打分,最后actor提高,变得和export相似

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值