强化学习之模仿学习

强化学习之模仿学习原文链接:https://blog.csdn.net/weixin_37895339/article/details/82863379前文是一些针对IRL,IL综述性的解释,后文是针对《Generativeadversarialimitationlearning》文章的理解及公式的推导。通过深度强化学习,我们能够让机器人针对一个任务实现从0到1的学习,但是需要我们定义出reward函数,在很多复杂任务,例如无人驾驶中,很难根据状态特征来建立一个科学合理的reward。人类学习新东西有一个重要的

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

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

原文链接:https://blog.csdn.net/weixin_37895339/article/details/82863379

前文是一些针对IRL,IL综述性的解释,后文是针对《Generative adversarial imitation learning》文章的理解及公式的推导。

  1. 通过深度强化学习,我们能够让机器人针对一个任务实现从0到1的学习,但是需要我们定义出reward函数,在很多复杂任务,例如无人驾驶中,很难根据状态特征来建立一个科学合理的reward。
  2. 人类学习新东西有一个重要的方法就是模仿学习,通过观察别人的动作来模仿学习,不需要知道任务的reward函数。模仿学习就是希望机器能够通过观察模仿专家的行为来进行学习。
  3. OpenAI,DeepMind,Google Brain目前都在向这方面发展。

[1] Model-Free Imitation Learning with Policy Optimization, OpenAI, 2016

[2] Generative Adversarial Imitation Learning, OpenAI, 2016

[3] One-Shot Imitation Learning, OpenAI, 2017

[4] Third-Person Imitation Learning, OpenAI, 2017

[5] Learning human behaviors from motion capture by adversarial imitation, DeepMind, 2017

[6] Robust Imitation of Diverse Behaviors, DeepMind, 2017

[7] Unsupervised Perceptual Rewards for Imitation Learning, Google Brain, 2017

[8] Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation, Google Brain, 2017

[9] Imitation from Observation/ Learning to Imitate Behaviors from Raw Video via Context Translation, OpenAI, 2017

[10] One Shot Visual Imitation Learning, OpenAI, 2017

模仿学习

  1. 从给定的专家轨迹中进行学习。
  2. 机器在学习过程中能够跟环境交互,到那时不能直接获得reward。
  3. 在任务中很难定义合理的reward(自动驾驶中撞人reward,撞车reward,红绿灯reward),人工定义的reward可能会导致失控行为(让agent考试,目标为考100分,但是reward可能通过作弊的方式)。
  4. 三种方法:
    a. 行为克隆(Behavior Cloning)
    b. 逆向强化学习(Inverse Reinforcement Learning)
    c. GAN引入IL(Generative Adversarial Imitation Learning)
  5. 行为克隆
    有监督的学习,通过大量数据,学习一个状态s到动作a的映射。
    在这里插入图片描述
    但是专家轨迹给定的数据集是有限的,无法覆盖所有可能的情况。如果更换数据集可能效果会不好。则只能不断增加训练数据集,尽量覆盖所有可能发生的状态。但是并不实际,在很多危险状态采集数据成本非常高。
  6. 逆向强化学习
    RL是通过agent不断与environment交互获取reward来进行策略的调整,最终得到一个optimal policy。但IRL计算量较大,在每一个内循环中都跑了一遍RL算法。
    在这里插入图片描述
    IRL不同之处在于,无法获取真实的reward函数,但是具有根据专家策略得到的一系列轨迹。假设专家策略是真实reward函数下的最优策略,IRL学习专家轨迹,反推出reward函数。
    在这里插入图片描述
    得到复原的reward函数后,再进行策略函数的估计。
    RL算法:
    在这里插入图片描述
    IRL算法:
    在这里插入图片描述
    在给定的专家策略后(expert policy),不断寻找reward function来使专家策略是最优的。(解释专家行为,explaining expert behaviors)。具体流程图如下:
    在这里插入图片描述
  7. 生成对抗模仿学习(GAN for Imitation Learning)
    我们可以假设专家轨迹是属于某一分布(distribution),我们想让我们的模型也去预测一个分布,并且使这两个分布尽可能的接近。
    在这里插入图片描述
    算法流程如下:
    在这里插入图片描述
    Discriminator:尽可能的区分轨迹是由expert生成还是Generator生成。
    在这里插入图片描述
    Generator(Actor):产生出一个轨迹,使其与专家轨迹尽可能相近,使Discriminator无法区分轨迹是expert生成的还是Generator生成的。
    在这里插入图片描述
    其算法可以写为:
    在这里插入图片描述

生成对抗模仿学习(Generative Adversarial Imitation Learning)

GAIL能够直接从专家轨迹中学得策略,绕过很多IRL的中间步骤。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191738.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言:字符数组的输入输出

    C语言:字符数组的输入输出目录用printf输出用scanf输入用gets输入用puts输出 用printf输出 输出方法1:printf逐个字符输出。  voidmain(void){   charc[ ]="Iamhappy";     inti;      for(i=0;i<10;i++){ …

    2022年7月27日
    7
  • pychorm激活码【中文破解版】

    (pychorm激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0UY7RF7AC5-eyJsaWNlbnNlSWQi…

    2022年3月28日
    41
  • nfc怎么复制门禁卡,相关教程在这里

    nfc怎么复制门禁卡,相关教程在这里  在生活中小区、学校都有门禁的,为了保证安全,每一次都要刷门禁卡才能进去,但有时忘记了或者丢了怎么办呢,拉下来看看相关教程。  当然,不是所有的门禁卡都能模拟,所以我们就需要了解你的门禁卡是否是能模拟的类型。  门禁卡一般分为:ID卡和IC卡。而EM卡、M1卡、CPU卡等等,都是这两种卡的细分。  我们看上面这张图。在这张图中,卡是按工作频率来分的:ID卡的工作频率为125KHz频率,而IC卡的工作频率为13.56MHz以上。显然看出,因为IC卡的频率高,所以,它的安全性比较高。小区基本上选择

    2022年5月11日
    155
  • 真正“搞”懂http协议01—背景故事

    去年读了《图解HTTP》、《图解TCP/IP》以及《图解网络硬件》但是读了之后并没有什么深刻的印象,只是有了一层模糊的脉络,刚好最近又接触了一些有关http的相关内容。所以,就打算把它写成一个系列,一

    2022年3月25日
    43
  • MPI 之 点对点通信的一个实例

    MPI 之 点对点通信的一个实例目标:通过MPI实现100次点对点通信,并计算平均每次的通信时间。代码如下:/**点对点通信100次,计算平均通信时间,并观察传输数据量大小和传输时间关系数据量变化采用动态内存方式从4kb增加到400M,每次增大400kb**/#include<stdio.h>//标准输入输出头文件#include<stdlib.h>//标准库#incl…

    2022年7月25日
    8
  • fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY / INDEX有什么区别?

    fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY / INDEX有什么区别?MySQL文档提供了这种格式来创建FULLTEXT索引:|{FULLTEXT|SPATIAL}[INDEX|KEY][index_name](index_col_name,…)[index_option]要使用MySQL实现全文搜索,您可以通过编写来创建索引:CREATETABLEposts(idint(4)NOTNULLAUTO_INCREMENT,titlevarcha…

    2025年6月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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