模仿学习研究笔记

模仿学习定义

模仿学习是指从示教者提供的范例中学习,一般提供人类专家的决策数据

$${ \tau_1,\tau_2,\ldots,\tau_m }$$

,每个决策包含状态和动作序列

$$\tau_i = <s_1^i,a_1^i,s_2^i,a_2^i,\ldots,s_{n_ni+1}^i>$$

,将所有「状态-动作对」抽取出来构造新的集合

$$\mathcal{D}={ (s_1,a_1),(s_2,a_2),(s_3,a_3),\ldots }$$

。之后就可以把状态作为特征(feature),动作作为标记(label)进行分类(对于离散动作)或回归(对于连续动作)的学习从而得到最优策略模型。模型的训练目标是使模型生成的状态-动作轨迹分布和输入的轨迹分布相匹配。

模仿学习意义

在传统的强化学习任务中,通常通过计算累积奖赏来学习最优策略(policy),这种方式简单直接,而且在可以获得较多训练数据的情况下有较好的表现。然而在多步决策(sequential decision)中,学习器不能频繁地得到奖励,且这种基于累积奖赏及学习方式存在非常巨大的搜索空间。而模仿学习(Imitation Learning)的方法经过多年的发展,已经能够很好地解决多步决策问题,在机器人、 NLP 等领域也有很多的应用。

模仿学习实现

当前主要以下几种方法实现模型学习:

行为克隆(Behavior Cloning)

行为克隆(Behavior Cloning)根据人类提供的状态动作对来习得策略,是作为监督学习的模仿学习。

逆强化学习(Inverse Reinforcement Learning )

IRL 是 反过来的 RL,RL 是根据 reward 进行参数的调整,然后得到一个 policy。

但是, IRL 就不同了,因为他没有显示的 reward,只能根据 人类行为,进行 reward的估计(反推 reward 的函数)。在得到 reward 函数估计出来之后,再进行 策略函数的估计。

逆强化学习是在给定一个专家之后(expert policy),通过不断地寻找 reward function 来满足给定的 statement(即,解释专家的行为,explaining expert behavior)。

结构化预测(Structured prediction)

在机器学习过程中,对数据的拟合其实就是在找一个拟合函数f,比如对于回归问题(Regression)来说,这个函数输出一个标量(scalar),对于分类问题(Classification)来说,这个函数输出一个类别(一个one-hot的向量),但是有一类的预测,它并不是输出一个标量或者一个类别,而是输出些有结构的输出,比如,一个序列,一个句子,一个图,一颗树。

生成对抗网络(GAN for Imitation Learning)

那么如何用 GAN 来做这个事情呢?对应到这件事情上,我们知道,我们想得到的 轨迹 是属于某一个高维的空间中,而 expert 给定的那些轨迹,我们假设是属于一个 distribution,我们想让我们的 model,也去 predict 一个分布出来,然后使得这两者之间尽可能的接近。从而完成 actor 的训练过程。

参考链接

  1. 模仿学习(Imitation Learning)完全介绍(一),by 我勒个矗.
  2. 深度强化学习之:模仿学习(imitation learning),by wangxiaocvpr.
  3. 机器人学习Robot Learning之模仿学习Imitation Learning的发展,by c2a2o2.
  4. 行为克隆,by XINGYES.
  5. 最前沿:用模仿学习来学习增强学习,by Flood Sung.
  6. 机器人学习最前沿:一眼模仿学习(One-Shot Imitation Learning)的三级跳,by Flood Sung.
  7. 深度学习课程笔记(七):模仿学习(imitation learning),by WangXiao.