Imitation_Learning

Imitation Learning

别名learning from demonstration(示范学习)apprenticeship learning(学徒学习)learning by watching(观察学习)

必要性:其实,多数的情况,我们都没有办法真的从环境里面得到非常明确的奖励。以 chat-bot 为例,机器跟人聊天,聊得怎么样算是好,聊得怎么样算是不好,你无法给出明确的奖励。

虽然没有办法给出奖励,但是收集专家的 demonstration 是可以做到的。

Approach1–Behavior Cloning

本质上一个监督学习的问题,收集expert的在状态s下采取动作a的数据集,训练一个网络来拟合它。

但存在的问题是:

  1. 有些极限的情况人类可能从来不会见过,例如驾驶员不可能会看到前方是拐弯的路段还继续直行。
  2. 有些人类没必要的固有的习惯被agent强记下来,比如下车前要先吸根烟再回家,下车就直接下就好了。此时分辨什么该学什么不该学就很重要。
  3. 在做 Behavior Cloning 的时候,training data 跟 testing data 是 mismatch 的。我们可以用 Dataset Aggregation 的方法来缓解这个问题。这个问题是,在 training 跟 testing 的时候,data distribution 其实是不一样的。因为在 reinforcement learning 里面,action 会影响到接下来所看到的 state。下一个状态会受上一状态和动作的影响。因此学习到的网络π和代表expert的网络π*,也许只差一点,但测试的时候可能差老远。

因此需要引入一个招数:Dataset Aggretion(DAgger)

Dataset Aggretion(DAgger)

在这里插入图片描述

π1训练自己的,不受expert 控制,不过会记录下expert 在每一个observation的action,用这个数据集来训练π2

Approach2–Inverse RL or Inverse Optimal Control

img

  1. 让expert去玩游戏收集 { τ ^ 1 , τ ^ 2 , . . . , τ ^ N } \{\hat{\tau}_1,\hat{\tau}_2,...,\hat{\tau}_N\} {τ^1,τ^2,...,τ^N}​​
  2. 让actor去玩游戏收集 { τ 1 , τ 2 , . . . , τ N } \{\tau_1,\tau_2,...,\tau_N \} {τ1,τ2,...,τN}
  3. 定一个奖励函数确保expert的奖励比actor的高
  4. 根据这个奖励函数learn一个maximize R的actor
  5. 重复步骤2~4

什么叫做一个最好的奖励函数?最后学习出来的奖励函数应该就是专家和 actor 在这个奖励函数都会得到一样高的分数。最终奖励函数没有办法分辨出谁应该会得到比较高的分数。

Connection with GAN

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值