强化学习组队学习task05—— 稀疏奖励及模仿学习

一、Sparse Reward

实际上在训练强化学习的时候,多数时候agent是很难获得奖励的。举例来说,假设要训练一个机器手臂用螺丝起子把螺丝钉栓进去,这种情况很难因为一开始的 agent 是什么都不知道,它唯一能够做不同的 action 的原因是采取的一些随机动作。随机到把螺丝起子捡起来,再把螺丝栓进去,然后就会得到奖励,这件事情是永远不可能发生的。所以最后什么都不会学到。

如果环境中的奖励非常稀疏,强化学习的问题就会变得非常的困难,要解决稀疏奖励的问题有三种方法:

1.Reward Shaping

Reward shaping 的意思是说环境有一个固定的奖励是真正的奖励,但是为了让 agent 学出来的结果是我们要的样子,我们刻意地设计了一些奖励来引导我们的 agent。

例如设计一个第一人称射击游戏,原本的奖励是杀了敌人会得到正的奖励,被敌人杀掉是负奖励。但我们可以人为设定一些奖励比如掉血获得一点负奖励,待在原地会得到负奖励,移动得到一点正奖励等。

当然这种方法也有坏处就是我们需要有一些领域的知识来辅助设计奖励。

ICM(intrinsic curiosity module)

在这里插入图片描述
其中一种技术使给机器加上好奇心。这个好奇心本质上是一个新的奖励函数,它的输入时状态s1、行为a1和状态s2,输出是另外一个奖励函数。ICM的详细结构如下:
在这里插入图片描述
黄色的格子代表特征抽取,它的输入时状态,输出是一个特征向量用来代表这个状态,我们希望得到的特征向量能够将状态s中没有意义的东西过滤掉。

网络一的作用是给定一个行为和状态的特征向量,预测下一个状态的特征向量,将预测的结果和真实的特征向量结果进行比较,差别越大,奖励越大。即鼓励机器进行冒险。

网络二的输入时两个状态的特征向量,输出为预测的行为并和真正的行为进行比较,希望两者越接近越好。

2.Curriculum Learning

curriculum learning 的意思是为机器的学习做规划,训练的时候是有顺序的,通常都是由简单到难。

Reverse Curriculum Generation

一个比较通用的方法叫做Reverse Curriculum Generation,示意图如下:
在这里插入图片描述

  1. 首先我们一开始有一个gold state,即sg,它是最后最理想的状态。
  2. 之后根据gold state去寻找比较接近的其他状态,即上图的s1
  3. 之后从这些s1开始与环境互动,看能否达到gold state,过程中我们会得到一个奖励函数
  4. 接下来,我们删除掉奖励比较极端的情况,即奖励太大或太小的情况
  5. 然后根据这些s1继续寻找接近的s2状态
  6. 重复以上步骤即可

3.Hierarchical RL

分层的强化学习的思想是有好几个agent,有一些agent负责比较高层次的行为,有些负责低层次的行为,每一个agent都将上层agent得到的输出作为输入,然后决定自己产生什么输出。

二、Imitation Learning

模仿学习考虑的情况是奖励未知。在模仿学习里有一些专家的示范,机器通过观察专家的行为来进行学习。在模仿学习里,有两个方法,分别是行为克隆和反强化学习

1.行为克隆(Behavior Cloning)

行为克隆和监督学习类似,以自动驾驶汽车为例,你可以收集到人开自动驾驶汽车的所有资料,比如通过行车记录器进行收集。前面空旷无人的时候人会决定向前开。机器就采取跟人一样的行为,也向前,就结束了。这个就叫做行为克隆。实现行为克隆的方法也很简单,学习一个网络,输入时状态s,输出就是需要采取的行为。但是,行为克隆存在很多问题:

  • 行为克隆虽然很简单,但是仅仅收集专家的资料得到的结果是非常局限的。

    有一种方法叫做Dataset Aggregation 。我们希望能够收集更多多样性的数据。以自动驾驶汽车为例的话,假设一开始的 actor 叫作π,你让π去开车。车上坐了一个专家。这个专家会不断地告诉机器在环境里应该怎么做。所以π自己开自己的,但是专家会不断地表示它的想法。比如说专家可能就会说往右转。但π是不管专家的指令的会继续去撞墙。我们要做的记录的是专家在某种情况下采取的行为。用这些数据去进行训练,不断重复这些步骤就是Dataset Aggregation。

  • 行为克隆还有一个问题是机器会完全克隆专家的行为,无论对错。有些行为是多余的,这无疑会影响网络的承载能力,所以区分哪些需要学习哪些不需要学习是一个问题。

  • 在进行行为克隆时,训练集和测试集的分布不一定相同。这是由于未来的状态要由当前的状态及采取的行为来决定,在进行了行为克隆后,我们只能观察到专家的状态-行为对。

    所以我们希望学习另一个决策π‘,我们希望π和π‘越接近越好,但对于强化学习来说,即使只有一点点的误差,得到的结果可能千差万别。

2.反强化学习(Inverse RL)

在正常的强化学习中,我们有环境和奖励函数,然后通过agent和环境进行互动学到恰当的决策。而反强化学习则相反,在反强化学习中,我们有环境和很多专家的行为,来反推奖励函数。找出奖励函数后,再用强化学习来寻找决策。
在这里插入图片描述
反强化学习的步骤如下:

  1. 首先有一个专家π‘,让其与环境进行互动,得到很多状态-行为的数据
  2. 有一个一开始表现很差的actor π,用这个π也和环境做互动得到状态-行为数据
  3. 接下来确定一个奖励函数,原则是让专家得到的奖励大于actor π得到的奖励
  4. 用得到的奖励函数使用强化学习方法得到一个新的actor ,使当前奖励最大
  5. 之后再确定一个新的奖励函数,原则和之前一样,重复这些步骤即可得到最终结果。

得到的最好的奖励函数原则上希望专家得到的奖励和actor 得到的奖励相同。很显然,反强化学习的过程和GAN的训练过程很类似。

IRL 有很多的应用,比如可以用开来自动驾驶汽车, 可以让自动驾驶汽车学会各种不同的开车风格。这种技术也可以拿来训练机器人。你可以让机器人,做一些你想要它做的动作。

反强化学习有一个有趣的地方,通常你不需要太多的训练数据,训练数据往往都是个位数。因为反强化学习只是一种范例,实际上机器可以去跟环境互动非常多次。所以需要的数据很少。

3.Third Person Imitation Learning

机器将从第三视角观察到的经验泛化到第一人称视角采取的行为的过程叫做Third Person Imitation Learning。
在这里插入图片描述
它的技术不只是用到模仿学习,还用到了 Domain-Adversarial Training ,这是一个GAN 的技术。其实区别第一人称视角和第三人称视角,模仿学习用的技术其实也是一样的,希望学习一个特征抽取器,机器在第三人称的时候跟它在第一人称的时候看到的视野其实是一样的,就是把最重要的东西抽出来就好了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值