Imitation Learning


很多场景是很难有一个明确的reward甚至没有reward。所以需要很厉害的agent或者直接由人来示范的资料,让agent跟着做。
本文会讲两个Imitation Learning的方法:

1.Behavior Cloning

在这里插入图片描述
Behavior Cloning其实和监督学习(supervised learning)是一样的。 以自动驾驶为例子,搜集很多的expert(假设是人类)驾驶资料,这些资料的状态s是开车的场景,动作a是在此场景下做出的动作。把这些资料输入到Neural Network中,使网络输出的动作能尽可能接近实际人类做出的动作,就完成任务。
在这里插入图片描述
但是这个过程中,expert观察到state是有限的。比如在实验中,让人去开车,都能顺利转弯,没有出现撞墙的情况。而这时让agent去开车,如果某一时间它没及时转弯导致处于快撞墙的state,由于缺少相应的训练资料导致agent不知道接下来怎么做。

所以这时需要引入Dataset Aggregation稍微缓解下这个问题。
在这里插入图片描述
1.让actor π 1 \pi_1 π1开车
2.让一个专家坐在车子里观察所处状态并告诉actor 做出什么动作。
3.但是actor不会听取专家的建议,还是以actor的意愿去开车,最终就撞墙了,一个episode结束。
4.这时actor就知道在快要撞墙的时候要采取什么样的动作,然后用这个新的data去训练新的actor π 2 \pi_2 π2
5.重复1234步

以上就是Dataset Aggregation的过程

从上面我们可以看出Behavior Cloning很容易实现,但是它也有问题:

1.agent会完全复制expert的行为,不管这个行为对不对
2.agent的学习能力有限,没办法什么都学,有可能只学到不好的东西,没学到有价值的东西
3.有可能会遇到Mismatch的问题(上面开车那个例子)

这里再具体看一下第三点
在这里插入图片描述
在监督学习中,是希望训练数据和测试数据有独立同分布的。而在Behavior Cloning中,actor做出的action是会影响后续的state的。因为Network的训练是有误差的,训练出来的actor 不可能完全和expert actor 一模一样,就会导致某个state下,两者采取的action不一样,然后就导致后面的state完全不一样了,最坏的情况就是actor后面遇到的state是expert没遇到过的,这时actor就会完全不知道如何进行下去了。即,失之毫米,差之千里。

所以,虽然Behavior Cloning简单但是并不是一个很好的办法,所以又有第二种方法Inverse Reinforcement Learning (IRL)

2.Inverse Reinforcement Learning (IRL)

在这里插入图片描述
左图是熟悉的Reinforcement Learning的步骤,通过Environment和Reward function,最终更新出理想的Actor。

右图就是 Inverse Reinforcement Learning 的步骤,由于没办法从Environment获得reward,那就通过收集expert的资料还有Environment的信息,来反推Reward function,推出Reward function就能应用以前的Reinforcement Learning的做法了。
在这里插入图片描述
具体来看Inverse Reinforcement Learning怎么运作的。

1.expert π \pi π去玩游戏,记录游戏过程,形成n个 τ \tau τ,每个 τ \tau τ代表1个episode。
2.actor π \pi π 去玩游戏,记录游戏过程,形成n个 τ \tau τ
3.设定一个Reward Function,这个Reward Function强制要求expert的累计得分一定要高于actor的累计得分。
4.有了Reward Function就可以使actor去更新出更强的actor。
5.当actor能在此时的Reward Function达到很高的reward时,修改Reward Function(还是要求expert的得分一定要高于actor),6.让actor根据新Reward Function去更新出更强的actor。
7.重复上述步骤。

Inverse Reinforcement Learning可以实现只用很少量的expert的示范资料,就训练出一个很理想的actor。

看了以上的步骤,可以想到,actor和reward function就对应类似于GAN的generator和discriminator。通过reward function的不断修改,使actor越来越接近expert的水平。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值