一、Behavior Cloning(行为克隆)
1、Dataset Aggregation 解决 “数据不全面” 问题
2、Mismatch
行为克隆第三个缺点:在监督学习中,我们的数据都是符合独立同分布的,因此数据是无序的,但是在强化学习中,我们的动作存在顺序的不同了,比如 action a a a出现在不同的时刻,导致最终的 reward r r r 都是不同的,如果export的 action a a a 序列和 agent的序列是相同的话还好,但是如果不同的话,就何难match住了,会产出mismatch,因此训练也就无效了。
二、Inverse Reinforcement Learning (逆强化学习)-A kind of GAN
在 Inverse reinforcement learning 里面,我们没有 reward function,取而代之的是 expert demo trajectory事实上多数生活中的 case,我们都是没有 reward function 的。比如说,自驾车,撞到一个人,要扣 10000 分吗?撞到一个狗要扣多少分呢?今天我们丢很多现实的任务,是我们根本就不知道 reward function 长怎么样子。所以我们需要 inverse reinforcement learning 这个技术原来的 reinforcement learning 里面,我们有 reward function,有 environment。根据 reward function 还有 environment,用 reinforcement learning 技术找出最好的 actor,inverse reinforcement learning 技术,刚好是reinforcement learning反过来的,我们有 actor,我们虽然不知道最好的 actor 是什么,但是我们有专家,专家去玩了 N 场游戏,告诉我们说厉害的人玩这个游戏,看起来就是怎么样的。根据专家的 demo,还有 environment 透过一个叫做 inverse reinforcement learning 的技术,我们可以推出 reward function 应该长什么样子。把 reward function 推出来以后,你就可以根据你推导出的 reward function。再去 apply reinforcement learning 的方法,去找出最好的 actor。所以你是用 inverse reinforcement learning 的方法去推出 reward function,再用 reinforcement learning 的方法去找出最好的 actor。
1、inverse reinforcement learning 原理
它的原则就是:你的老师,就是那些 experts 他永远是对的什么意思,就是说,现在你一开始你有一个 actor,先随机的找出初始化一个 actor 出来然后去用这个 actor 去跟环境做互动,那这个 actor 会得到很多的 trajectory。会得到很多的游戏纪录,然后接下来啊,你比较 actor 的游戏纪录跟老师的游戏纪录,然后你订一个 reward function,一定要让老师得到的分数,比 actor 得到的分数高。就是先射箭,再画靶的概念,就是 expert 去玩一堆游戏,他有一堆游戏的纪录,然后 actor 也去玩游戏,也有游戏的纪录,那我们不知道 reward function 是什么,等他们都玩完以后,再订一个 reward function,订的标准就是,老师,就是这个 expert 得到的分数一定要比学生还要高学生说,好吧,虽然因为根据这个新的 reward,我是比较弱的。没关系,那我就再去学习,我想要 maximize 新的 reward functionactor 学到 maximize 新的 reward function 以后,他就再去跟环境互动,他就会得到新的 trajectory。他得到新的 trajectory 以后,他本来以为,他跟老师一样厉害了,但是不幸的就是,那个规则是会一直改的,当他变得跟老师一样厉害以后,我们再改一下规格,让老师算出来的分数,还是比较高,然后 actor 就只好很生气的,想办法学,想要跟老师做的一样好。就反复反复进行这个 process,最后,就可以找到一个 reward function这整个 process,我们用图示画来表示一下,有一个 expert,他有 N 笔游戏纪录,然后你有一个 actor,它也有 N 笔游戏纪录。然后你要订一个 reward function,让 expert 得到的分数,永远赢过 actor。然后你接下来,反正你去找一个 reward function,老师一定是好的,它一定是不好的,接下来根据这个 reward function,你可以去学这个 actor,根据这个 reward function,你可以去学这个 actor,让这个 actor 根据这个 reward function,可以得到最好的分数。但等这个 actor 做得比较好之后,这个规则又变了,然后这个 process又反复的循环,这个 process,你有没有觉得很熟悉呢?它跟 GAN 的 process,其实是一模一样的。
三、Third Person Imitation Learning
Imitation Learning & Domain-Adversarial Training,抽取最重要的因素,使得第三视角与第一视角看到的环境是一样的。
四、Imitation Learning 类比 Sentence Generation & Chat-bot
Sequence GAN 里,其实 Sentence Generation 或 Chat-bot 这件事情也可以想成是 Imitation Learning,即:机器在 imitate 人写的句子。你可以把写句子这件事情,你写下去的每一个 word都想成是一个 action,所有的 word 合起来就是一个 episodesentence generation 里面,你会给机器看很多人类写的文字,这个人类写的文字其实就是这个 expert 的 demonstration,每一个词汇,其实就是一个 action。你让机器做 Sentence Generation 的时候,其实就是在 imitate expert 的 trajectory。如果单纯用 Maximum likelihood 这个技术来 maximize 会得到 likelihood,这个其实就是 behavior cloning。做 behavior cloning 时,就是看到一个 state,接下来预测,我们会得到甚么样的 action,看到一个 state,有一个 Ground truth 告诉机器说甚么样的 action 是最好的。在做 likelihood 的时候也是一样,Given sentence 已经产生的部分,接下来 machine 要 predict 接下来要写哪一个 word 才是最好的。所以,其实 Maximum likelihood 在做这种 Sequence generation 的时候,Maximum likelihood 对应到 Imitation Learning 里面的 behavior cloning。那我们说光 Maximum likelihood 是不够的,我们想要用 Sequence GAN。其实 Sequence GAN 就是对应到 Inverse Reinforcement Learning。其实 Inverse Reinforcement Learning 就是一种 GAN 的技术。你把 Inverse Reinforcement Learning 的技术放在 Sentence generation或 Chat-bot 里面,其实就是 Sequence GAN 跟他的种种的变形。模仿学习(Imitation Learning)介绍