人工智能-强化学习:Imitation Learning(模仿学习)= Learning by Demonstration(示范学习)【每一步action都没有reward】

  • Imitation Learning(模仿学习)是从给定的展示中进行学习。机器在这个过程中,也和环境进行交互,但是,并没有显示的得到 reward。
  • 在某些任务上,也很难定义 reward。如:自动驾驶,撞死一人,reward为多少,撞到一辆车,reward 为多少,撞到小动物,reward 为多少,撞到 X,reward 又是多少,诸如此类。。。
  • 另外,某些人类所定义的 reward,可能会造成不可控制的行为,如:我们想让 agent 去考试,目标是让其考 100,那么,这个 agent 则可能会为了考 100,而采取作弊的方式,那么,这个就比较尴尬了,是吧 ?
  • 我们当然想让 agent 在学习到某些本领的同时,能遵守一定的规则。给他们展示怎么做,然后让其自己去学习,会是一个比较好的方式。
  • Imitation Learning(模仿学习)实用性非常高,假设有一个状况是,你不知道该怎么定义 reward,但是你可以收集到 expert 的 demonstration,你可以收集到一些范例的话,你可以收集到一些很厉害的 agent (比如说人) 跟环境实际上的互动,那你就可以考虑 Imitation learning 这个技术。

一、Behavior Cloning(行为克隆)

  • Behavior Cloning(行为克隆)其实就是一个 Supervised learning 的问题。
    在这里插入图片描述
  • 行为克隆,这是一种类似于监督学习的方法,就是我们会把export(专家)的数据输入其中,之后agent遇到相似的情况就会效仿专家进行解决了。
  • 我们把 ( s , a ) (s, a) (s,a) 输入到神经网络中,之后训练 actor,训练好的actor遇到相同的 s s s,就会进行对应的 a a a 了。
  • 但是这种做法是有缺陷的,缺陷就是我们的export数据不全面,无法sample到比较特殊的情况,export数据是十分有限的,所以一旦agent遇到特殊的情况便不知道该何去何从了。
    在这里插入图片描述
  • 比如这个转弯的例子,export都是直接按照红色的曲线进行转弯,但是有的agent学习的不好,就撞到护栏了,但是训练集中并没有这种情况,所以就陷入死循环了。
  • 所以为了解决数据不全面的问题,我们设计了一种方法叫Dataset Aggregation 来解决。

1、Dataset Aggregation 解决 “数据不全面” 问题

在这里插入图片描述

  • 这种方法就是让一个agent去和环境交互,但是在交互的过程中一直有一个export进行指导,从而让export可以取得极端环境下的数据。举个例子:自动驾车,让一个agent进行驾车,之后安排一个export对agent进行指导,当agent进行极端环境的时候,export也会对其进行指导,从而收集到很多机端环境的数据,这样数据集就不再匮乏了。
  • 行为克隆的另一个缺点就是:agent会死学export的全部特征,这其中有对行为有利的特征,当然也存在对行为没有任何价值的特征,如果agent将所有的特征(无论有用还是无用的)都进行学习的话还好,但是有时候agent学习的特征是有一定容量限制的,同时agent是无法区分有用特征和无用特征的区别的,他可能只学习了无用的特征而忽略了有用的特征,就十分尴尬了。

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 function
  • actor 学到 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 合起来就是一个 episode
  • sentence 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)介绍

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值