【强化学习纲要】8 模仿学习「建议收藏」

【强化学习纲要】8 模仿学习「建议收藏」【强化学习纲要】8模仿学习8.1模仿学习概要8.2BehavioralcloningandDAGGER8.3InverseRLandGAIL8.4进一步改进模仿学习的模型8.5模仿学习和强化学习结合8.6Casestudies周博磊《强化学习纲要》学习笔记课程资料参见:https://github.com/zhoubolei/introRL.教材:SuttonandBarton《ReinforcementLearning:AnIntroduction》8.1

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

周博磊《强化学习纲要》

学习笔记

课程资料参见:
https://github.com/zhoubolei/introRL.

教材:Sutton and Barton


Reinforcement Learning: An Introduction

8.1 模仿学习概要

  • 什么是模仿学习?
    • 模仿学习可以把它看作是对agent policy network的一种强监督学习,在训练这个agent的时候会告诉他正确的action是什么,每一步agent都会做出一个决策。
    • 在正常的强化学习里面,agent并没有及时得到反馈每一步对不对。模仿学习是说在每一步做出行为后就可以直接告诉agent当前这一步正确行为是什么,所以就可以把它看作对行为模型的监督学习。
    • 但是这两者也不完全一致,因为这里面也有很多问题,agent是在一个时序决策过程,所以它每一步做出的影响都会影响它后面做出的决策,所以把它当作一个纯粹的监督学习还是不能满足所有的需求的。
      在这里插入图片描述

8.2 Behavioral cloning and DAGGER

  • 所以对于每一步的决策,很多情况下面可以采集到很多监督信号。比如说需要训练一个自动驾驶的车辆,最容易采集的就是直接在每一个出租车以及人前面装上摄像头,记录司机的行为,这样就会采集到很多的驾驶数据,那么我们可以把它转换成一个监督学习的任务,相当于使得模型每一步都模仿人类世界的行为。
    • 这就是模仿学习里面比较常见的一个算法:Behavioral cloning(BC),就是每一步都克隆人的行为。
      在这里插入图片描述

Case Study: End to End Learning for Self-Driving Cars

  • DAVER-2 System By Nvidia: It works to some degree!
    自动驾驶的demo。
    • 在车上面记录前置摄像头以及司机的转向行为,记录数据。然后车就在无人驾驶的情况下面输入In-vehicle camera,自动针对前置摄像头观测到的数据来进行决策。
  • 利用72小时人类开车的数据作为训练
    在这里插入图片描述
    有3个摄像头,把3个摄像头采集到的数据放入CNN网络,这里训练也同时记录了人类对方向盘的操控,用方向盘的操控作为一个训练,这样就可以得到训练强监督的办法,训练开车的agent。然后就可以在真实场景里面开车。
    在这里插入图片描述
    但显而易见这样有很大的缺陷,比如你没法控制让agent左转还是右转,它只会从输入直接给一个输出,所以里面还有很多不足的地方。但是这个工作证明了Behavioral cloning是可以正常运作的。
  • Example code of behavior clone: https://github.com/Az4z3l/CarND-Behavioral-Cloning

Case Study: Trail following as a classification轨迹跟踪

  • A. Giusti, et al. A Machine Learning Approach to Visual Perception of Forest Trails for Mobile Robot. IEEE trans on Robotics and
    Automation
    在这里插入图片描述
    在这里插入图片描述
  • https://youtu.be/umRdt3zGgpU
    在这里插入图片描述

监督模仿学习的局限性

  • 训练好的policy没法训练off-course situation。也就是说如果进入到之前没有的状态,他就不知道怎么做了。训练这个模型的时候其实用的离线数据,离线数据采集好后就固定下来了。
  • agent进入之前并没有见到的状态后,会发生错误,会随着时间 T T T 上面已知累加,会进入一个完全未知的状态。在这种情况下就没法进行一个正常的行为。
  • 现在我们的问题是,怎么让agent采集到的数据和实际面临的数据分布尽可能一致?
    在这里插入图片描述

Annotating More On-Policy Data Iteratively

我们可以采取的一个办法是一直保证采取更多的数据。

  • 在我们训练好一个agent后,我们可以让这个agent在这个环境里面进行运作;
  • 如果进入之前没有的状态,我们就把这个状态收集过来,让人给一个标签,就可以收集到这种状态,放入数据库,就可以重新收集policy网络。
  • 就可以在我们deploy(部署)这个数据的时候采集更多的数据,就使得之前的数据库变得越来越完善,训练出来的agent也会越来越好。
    在这里插入图片描述

DAgger: Dataset Aggregation数据集集合

这也是DAgger的核心。

  • 它希望解决的问题是希望 p d a t a ( o t ) p_{data}(o_t) pdata(ot)的分布和policy 采集到的数据 p π θ ( o t ) p_{
    {\pi}_{\theta}}(o_t)
    pπθ(ot)
    尽可能一致。
  • 它采取的办法是,利用初步的human data训练一个agent;让agent在环境里面进一步采集,和环境交互采集到另外一个数据库;让人给新采集到的数据进行标签;把它组合到原来的数据库里面去。再重新训练policy,这样迭代的过程就可以采集到越来越多更实际的数据,这样就可以让agent在运作的过程中,遇到的数据都是在训练数据中出现过的。
    在这里插入图片描述
  • 局限性是第三步是很耗时的过程。
  • 因此这里可以改进的办法是可以在第三步的时候可以用其他的算法。因为有些其他的算法可能是个速度比较慢的算法,因为这里是个离线的过程可以允许比较慢的算法,或者可以用优化的办法来search最佳的结果。因此第三步可以用其他算法来产生标签这样就可以完善它的数据集,来训练policy network。

8.3 Inverse RL and GAIL

Inverse Reinforcement Learning (IRL)

在这里插入图片描述

  • 左边是普通强化学习的情况。在强化学习里面是给定了环境,也给定了奖励函数,通过强化学习可以对价值函数以及决策函数进行参数化来优化参数。
  • 右边是逆强化学习。面临的问题是相反的,给定了环境,行为(可能是policy network也可能是expert的一些示教(数据)),我们希望从这些数据里面去反推reward function。相当于我们可以把reward function进行建模变成需要去优化的一个函数。通过观测到数据去优化reward function,训练出reward function后,我们可以去新训练这个agent,模仿这个Expert agents/demonstrations的行为。

Guided Cost Learning

  • Finn, et al, ICML’16. https://arxiv.org/pdf/1603.00448.pdf
    在这里插入图片描述
    大致思想是由一个human demonstrations,用human demonstrations和机器人得到了行为,训练一个cost function c θ c_{\theta} cθ去优化函数,使得和policy optimization结合起来,可以使得policy network的行为和human network的行为越来越一致。

Generative Adversarial Imitation Learning(GAIL)生成对抗模仿模型

  • 仿照的是GAN,GAN是在数据生成里面利用非常广的算法,利用了对抗损失函数的方法,来训练generator G G G。在GAN模型里面由generator G G G生成七discriminator D D D辨别器 。generator的目的是产生数据欺骗discriminator,discriminator的目的是区分开generator生成的虚假和真实的数据。通过对抗的原理就可以得到generator和discriminator。
    在这里插入图片描述
  • GAIL是模仿了GAN的思想。可以把demonstration trajectory τ \tau τ看成是sample x x x;把policy π \pi π q ( τ ) q(\tau) q(τ)看成generator G G G;把reward function r r r看成discriminator D D D
    在这里插入图片描述
  • 我们希望训练一个generator可以产生轨迹使得discriminator没法区分出是human产生的轨迹还是生成模型产生的轨迹。
  • Ho and Ermon,NIPS’16. https://arxiv.org/pdf/1606.03476.pdf

IRL和GAIL的联系

在这里插入图片描述

  • 在Guided Cost Learning里面是希望训练一个reward function,使得human demonstration可以maximized cost function,robot attempt可以minimized cost function。
  • 在GAIL环境下面是训练了一个discriminator,是个binary分类器,使得discriminimator对robot attempt和human domostrations的区分越来越小。
  • Finn, Christiano, et al. A connection between GANs, Inverse RL, and Energy-based Models. https://arxiv.org/pdf/1611.03852.pdf
    这篇论文揭示了这三者之间的联系。

8.4 进一步改进模仿学习的模型

  • 这里比较重要的一点是我们采集到的demonstration很多时候可能是在同一个状态下面有多个可能的解。
    比如像绕开这棵树,可以从左边也可以从右边走。
    在这里插入图片描述
    但是在采集的时候只能采集到其中一条数据。
  • 因此我们希望改进能够解决:
    • Multimodal behavior多模态行为
    • Non-Markovian behavior非马尔可夫行为
  • 比较直接的改进是可以把policy network建成一个mixture of Gaussians,即多峰的高斯分布的输出。因为这样的多峰的可以由很多个mode,这样就可以输出很多个action的行为。
    在这里插入图片描述
  • 另外我们可以把policy network进一步改进,让它实际采集的input behavior 观测把之前的观测都考虑进来,做出下一步的决策行为。
    在这里插入图片描述
    所以我们输入的情况下可以把之前帧尽可能多的放到网络里面,这样这个网络就可以通过之前很多帧做出正确的决策。
    在这里插入图片描述
  • 更进一步的改进,比如把LSTM加入里面,把之前帧的信息做一个整合,再输出当前应该做出怎么样的行为。这样使得它做出更准确的决策。
    在这里插入图片描述

Case Study: Learning from demonstration using LSTM

  • Rahmatizadeh et al. Learning real manipulation tasks from virtual demonstrations using LSTM. AAAI 2018
  • 很多机器人的应用里面imitation learning都是非常重要的,因为机器人的setup下,是非常贵的。如果纯粹通过强化学习trial and error的方法,去尝试的话很难学到好的policy。最好的办法是让人控制手臂,采集到demonstration,然后让机器人结合demonstration来学习就可以极大的提高它的效率。在这里插入图片描述
    比如说这个工作就是在一个虚拟环境下面,通过控制一个手柄采集到了示教的数据,然后把采集到的示教的数据用到机械臂上。
  • 模型中利用LSTM当成监督学习来训练它的模型。这里也用到了Mixture of Gaussians 来处理多峰的模型,因为机器人模型要控制很多jiont model,所以输出是一个连续的输出。
    在这里插入图片描述
  • 但是这样的机械臂控制也有一个问题,怎样scale up(提高)它的 demonstration?因为在控制手臂的时候他都是通过人来控制机器人,去示教它的值。
    在这里插入图片描述
    比如之前的那个是人为的控制了650次demonstrations。
  • 因此我们提出可以用==Crowd-sourcing(众包)==的办法来采集数据。

RoboTurk: Crowdsourcing Robotic Demonstrations

  • RoboTurk is a crowdsourcing platform that is collecting human demonstrations of tasks such as “picking” and “assembly”;
    在这里插入图片描述
  • 137.5 hours of demonstration for two tasks
  • 1071 successful picking demonstrations and 1147 assembly demonstrations
    在这里插入图片描述

模仿学习的缺点

  • 必须人为的收集数据,数据并不是很好的收集到。
  • 有些比较复杂的机械情况下面,人并不是很好的提供数据,比如六旋翼的飞行桨很难通过一个遥控来采集数据
  • 人的行为有的时候是非监督学习

8.5 模仿学习和强化学习结合

  • 模仿学习:
    • 优点:
      • 简单稳定的监督学习
    • 缺点:
      • 需要提供demonstration
      • distributional shift(分配移位),data分布不一致
      • 只能和demo一样好
  • 强化学习:
    • 优点:
      • 可以取得比demo(人)更好的结果
    • 缺点:
      • 需要定义好reward function
      • 需要平衡exploration和exploitation
      • Potentially non-convergent
  • 怎样结合起来?在训练的过程中既有人的示教demonstration又有reward function?

Simplest Combination: Pretrain预训练 & Finetune微调

  • 最简单的一个方法是pretraining预训练的方法。先采集到人为的数据,然后把人为的数据监督学习得到一个初步的策略网络。得到策略网络后,再进一步用强化学习来改进初步得到的策略网络。
  • Pretrain预训练 & Finetune微调
    在这里插入图片描述
    先利用demonstration data,通过监督的方法得到网络;
    再进一步改进策略。
  • == DAgger==
    在这里插入图片描述
    相对于DAgger,是先采集human data,得到data set;
    然后把data set里面data都进行标定;
    再合成新的数据库,再训练policy。

Pretrain & Finetune for AlphaGo

  • SL Policy Network:通过监督学习采集到人类选手下围棋的30million的moves 的数据,通过监督的办法先训练了policy network,
  • RL policy network:然后把policy network放到self-play里面,通过强化学习的办法进一步finetune weight,这样就可以得到一个超人的行为。
    在这里插入图片描述
  • David Silver, et al. Mastering the ancient game of Go with Machine Learning. Nature 2016

Pretrain & Finetune for Starcraft2

  • https://deepmind.com/blog/alphastar-mastering-real-time-strategy-game-starcraft-ii/
  • 首先采集人类的行为训练出policy
    在这里插入图片描述
  • 采用Population-based and multi-agent reinforcement learning
    在这里插入图片描述

Problem with the Pretrain & Finetune

在这里插入图片描述
当得到了一个初步的policy network后,用强化学习来训练的时候,强化学习采集到的experience可能本身是非常糟糕的,会直接摧毁policy network。
那么在这个过程中,怎么让它不要忘记demonstrations呢?

Solution: Off-policy Reinforcement Learning

  • Off-policy RL是可以用任何experience,是可以把人类施教的experience也放到buffer里面。
  • 把demonstration当作data在每一步都提供。
  • Off-policy policy gradient (with importance sampling)
  • Off-policy Q-learning

Policy gradient with demonstrations

在这里插入图片描述

Guided Policy Search

在这里插入图片描述

Q-learning with demonstrations

在这里插入图片描述

  • Vecerik et al., ‘17, “Leveraging Demonstrations for Deep Reinforcement Learning on Robotics Problems with Sparse Rewards

Imitation learning as an auxiliary loss function

  • Hybrid objective: we can combine RL and imitation learning objective
    在这里插入图片描述
    第一部分是强化学习本身需要优化expectation over reward function,另外一半是直接优化极大似然imitation learning。
    面临问题:放KaTeX parse error: Undefined control sequence: \lamda at position 1: \̲l̲a̲m̲d̲a̲

Hybrid policy gradient

在这里插入图片描述

  • Rajeswaran et al., ‘17, “Learning Complex Dexterous Manipulation with Deep Reinforcement Learning and Demonstrations”

Hybrid Q-Learning
在这里插入图片描述

  • Hester et al., AAAI’18, “Deep Q-learning from Demonstrations”

8.6 Case studies

Case Study: Motion Imitation

在这里插入图片描述

  • 把这个reference motion表征成一个sequence of target poses
    在这里插入图片描述
  • 定义一个reward function
    在这里插入图片描述
  • First term is imitation objective (imitate the reference motion),
    second term is task dependent
  • Train with PPO
  • Imitation reward is carefully designed
    在这里插入图片描述
  • Peng et al. SIGGRAPH’18. DeepMimic: Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills
    https://xbpeng.github.io/projects/DeepMimic/index.html
  • Follow-up work: how to get rid of MoCap data(在人身上贴很多标定点)
    在这里插入图片描述
  • Learning dynamics from videos
    在这里插入图片描述
  • Vision-based pose estimator
    在这里插入图片描述
  • Peng, et al. SFV: Reinforcement Learning of Physical Skills from Videos Transactions on Graphics (Proc. ACM SIGGRAPH Asia 2018) https://bair.berkeley.edu/blog/2018/10/09/sfv/

Two Major Problems in Imitation Learning

  • How to collect expert demonstrations
    • Crowdsourcing
    • Guided policy search or optimal control for trajectory optimization
  • How to optimize the policy for off-course situations
    • Simulate those situations to collect new labels
    • Use off-policy learning with the already collected samples
    • Combine IL and RL

Conclusion

  • Imitation learning is an important research topic to bridge machine learning and human demonstration
    • Robot learning (learn from few samples)
    • Inverse reinforcement learning
    • Active learning
    • etc
  • Recent survey: An Algorithmic Perspective on Imitation Learning: https://arxiv.org/pdf/1811.06711.pdf
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191915.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • pycharm配置文件路径_pycharm添加解释器

    pycharm配置文件路径_pycharm添加解释器搭建Python环境1.下载安装python首先进入python官网https://www.python.org/2.点击windows3.如图所示,点击python3.8.34.在下载页面选择如图所示的下载安装包5.下载完之后,开始安装,按下图所示勾选,然后进入用户设置页面customizeinstallation6.按照图示勾选,然后next7.勾选installforalluse…

  • git的安装和配置

    git的安装和配置

    2021年10月16日
  • 关联图谱位于反欺诈技术金字塔模型什么层_知识图谱的应用场景

    关联图谱位于反欺诈技术金字塔模型什么层_知识图谱的应用场景关系图谱概要随着近几年互联网金融的发展,玲琅满目的信贷产品早已被羊毛党盯上,层出不穷的营销活动更是让欺诈分子有了可乘之机,伪造资料、恶意注册大量虚假账号、团伙包装、刷单、抢红包、套返利等等,他们的欺诈技术手段也越来越高明(群控、云控),成本也越来越低。为了限制这些欺诈用户,信贷机构通过建立反欺诈团队和风控防范体系,使用专家规则和预测模型来拦截欺诈份子。但是道高一尺魔高一丈,再严密的规则也…

  • 短短数月 两代“矿工”遭遇冰与火的洗礼「建议收藏」

    短短数月 两代“矿工”遭遇冰与火的洗礼「建议收藏」“比特币又跳水了。”  “那还有回暖的机会吗?”  最近这段时间,相信因为数字货币价格集体跳水而感到恐慌的,不止是炒币的投机客,还有大量“矿工”。  在过去一年多时间里,区块链逐渐变为人人热议的亲民话题,“挖矿”也成为很多人热议的火爆职业。甚至有金融界、互联网公司金领不惜放弃高薪,转型成为比特币“矿工”。  在过去的大半年时间里,比特币等数字货币也经历过几次不同程度的震荡。在遭遇价格上的大起大落之…

  • 【Python】Jupyter在PyCharm中的使用

    【Python】Jupyter在PyCharm中的使用最近在学CS231n的课程,打算把作业做一下。由于官方给的例程是用的IPython,后缀名为ipynb,和之前接触的Python写法不一样,来记录一下自己今天踩到的一个坑。其实有一个很简单的解决方法就是安装Anaconda,我也不知道自己为什么要在PyCharm上死磕。步骤0安装Jupyterpipinstalljupyter1新建一个IPython文件这里

    2022年10月24日
  • linux系统下怎么安装.deb文件?

    linux系统下怎么安装.deb文件?

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号