模仿学习简介

栏目: IT技术 · 发布时间: 4年前

点击 上方 深度学习与先进智能决策 ”进入

以爱与青春为名,陪你一路成长

什么是模仿学习?

模仿学习( Imitation Learning ):Learns from expert demonstrations 。也就是基于这些专家经验数据进行学习。Given only the trajectories from expert,The reward function is not available。

难点就是没有 reward 如果人为构建 reward 的话,它很难精确的描述出来。比如像开车时的油门,当前状态给多少?对应的 reward 又是多少?

Imitation Learning vs.Supervise learning

  • The solution may have important structural properties including constraints (for example, robot joint limits), dynamic smoothness and stability, or leading to a coherent, multi-step plan

Imitation Learning 里面你所作的决策可能不是仅仅基于当前的 state ,而可能是由之前的很多信号所决定的。

  • The interaction between the learner’s decisions and its own input distribution (an on-policy versus off-policy distinction)

这个 learneraction 作用与环境之后,环境的分布会发生变化。如果按照 experts 的数据进行学习,你不能完全复现数据发生的过程,因为你没有 expertspolicy ,只是有一些 data 而已。因此 supervised learning 在环境新产生出来的数据分布上面不会工作太好。

  • The increased necessity of minimizing the typically high cost of gathering examples

supervised learning 里面, function 是有一个明确的更新目标,而在 model freeRL 中,需要大量的数据去 try ,因为反馈的奖励信号只是告诉你好还是不好。但事实上我们经常能拿到一些 expert data ,这些数据的监督信号是要比 RL 自己采样所得到的监督信号要好。

  • 参考文献:S. Shalev-Shwartzand S. Ben-David. Understanding Machine Learning: From Theory to Algorithms . Cambridge University Press, 2014.

Imitation Learning Algorithms

Imitation Learning Algorithms 大体上可分为三类:  Behavioral CloningInverse Reinforcement LearningGenerative adversarial imitation Learning

  • Behavioral Cloning

行为克隆( behavioral cloning )直接从专家的经验数据中直接学习,学习在什么样的 state 采取什么样的 action ,而不需要去构建奖励函数。学完之后再去预测新的状态下需要采取什么样 action

模仿学习简介 但是当有一些 noise 之后,你 action 差一点点之后,之后的状态也会差一点点,后面就会差地越来越多,因此这种方式会误差累计,导致后面学地越来越不像。

模仿学习简介 这种情况也叫做 Distributional shift 。有点类似邯郸学步的感觉,并不能学到 expert policy 里面的精髓。

基于上述问题,也有一些算法对其进行改进,比如说 Dagger 算法。它引入了一些自己所产生的 on-policy 数据,混合在 expert data 里面进行学习。

模仿学习简介
Dagger 算法

也就是减缓一点 distribution shift

那除了这个distribution shift问题之外还有什么问题呢?

  1. Non-Markovian behavior

第一个问题就是 expert data 可能并不满足马尔可夫性,可能会基于历史观测信息所做出的决策,而 agent 所做决策基于当前观测,学习策略。那这种学习方式肯定会产生问题,学习起来会比较困难。

  1. Multimodal behavior

第二个问题就是 behavior 可能会非常复杂,比如输出是混合高斯模型下的分布(mixture of Gaussians),或者由一些非常复杂的 latent variable models,也就是最后由非常复杂的逻辑推理构成;或者我是从一个分布中采样得到的action,你只能看到我采样得到的action,但是看不到背后的分布,(Autoregressive discretization)。

behavior clone直接,好理解,但是很容易邯郸学步,学不到背后的精髓。那如果我们能把奖励函数学出来的话,我们可以说是朝着核心的policy去学,因此有了inverse reinforcement learning。

  • Inverse Reinforcement Learning

逆强化学习 ( Inverse Reinforcement Learning ),通过 expert trajectories 去反推 reward ,之后再用reward构建学习强化学习智能体,从而得到policy。

reward 怎么学呢?简单的用 linear functionNeural net 来学:

就是在当前 stateexpert 所采取的动作所能拿到的 reward 比采取其他 action 所能拿到的 action 都高。怎么来做到这样一点呢?

Maximum causal entropy IRL:

如果我们能找到一个 cost function 使得 expert policy 所拿到的 cost 小,而其他 policy 拿到的 cost 大,也就是 expert policy 所能获得更大的奖励,其他的 policy 所能获得的奖励都很小。第一步我们就希望能够找到这样的一个 cost function

也就是去寻找一个 cost ,希望 expertcost 比其他的 policy 所拿到的 cost 都要小。在此过程中还希望 causal entropy (给定一个状态,输出一个动作分布,这个动作分布的的熵) 要大。

reward 角度来看就是, expertdata 能获得的 reward 比所建模空间中能找到的最好的 reward 还要大。

找到了这个 cost function 之后的话,我们需要去训练智能体, minimize cost (相当于最大化 reward ):

上述算法流程有个缺点,就是每找到一个 cost function 你都需要去计算 ,而它里面又需要去计算 minmax ,相当于是两层 for 循环。

  • 参考文献:ZiebartB D et al. Maximum Entropy Inverse Reinforcement Learning .AAAI. 2008.

  • Generative adversarial imitation learning

生成对抗模仿学习 ( Generative adversarial imitation learning GAIL ) 通过 expert data 与构建的 agent 产生的数据进行对比分析,而使得智能体能够获得 expert 类似的数据,达到学习的目的。

大体思想是希望智能体所产生的数据与专家数据同时送入一个分类器,这个分类器无法将其分开。这样的智能体可以被认为是学习到了专家策略。

GAIL 是将 Agent 引入 GAN ,因此我们需要先来看看 GANLoss function

GAN 中我们希望 generate 一些高质量的数据,但是我们不知道什么是高质量的数据,也就是无法对其打分,因此我们需要去 train 一个网络来判别哪些数据是高质量的数据,这个网络就是 discriminator ,那想要训练 discriminator 的话,我们又需要高质量的数据和差的数据,高质量的数据就是给定样本,而差的数据是生成器生成出来的数据。有了打分函数之后我们去训练 generator 就可以了。到此一个循环就完成了。

主要可分为两步:

  1. Train a good discriminator

  2. Train a good generator to fool the discriminator

GAILLoss

对于 GAIL 多了一个 entropy ,但是步骤也是两步:

  1. Train a good cost function

  2. Train a good generator to fool the discriminator

  • 参考文献:Ho J, ErmonS. Generative adversarial imitation learning . NIPS 2016.

Open Questions

  1. How to generalize skills with complex conditions?

  2. How to find solutions with guarantees?

  3. How to scale up with respect to the number of dimensions? spaces? How to make it tractable?

  4. How to perform imitation by multiple agents?

  5. How to perform incremental/active learning in IRL?

Performance evaluation

  1. How to establish benchmark problems for imitation learning?

  2. What metric should be used to evaluate imitation learning methods?

模仿学习简介

模仿学习简介

模仿学习简介


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

30天自制操作系统

30天自制操作系统

[日] 川合秀实 / 周自恒、李黎明、曾祥江、张文旭 / 人民邮电出版社 / 2012-8 / 99.00元

自己编写一个操作系统,是许多程序员的梦想。也许有人曾经挑战过,但因为太难而放弃了。其实你错了,你的失败并不是因为编写操作系统太难,而是因为没有人告诉你那其实是一件很简单的事。那么,你想不想再挑战一次呢? 这是一本兼具趣味性、实用性与学习性的书籍。作者从计算机的构造、汇编语言、C语言开始解说,让你在实践中掌握算法。在这本书的指导下,从零编写所有代码,30天后就可以制作出一个具有窗口系统的32位......一起来看看 《30天自制操作系统》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具