(十一)模仿学习

(十一)模仿学习  从之前的讨论看,都是有奖励的。哪怕是上一章的稀疏奖励,其实也有奖励。==假如任何奖励都没有怎么办?==本章介绍的就是这种情况的解决办法。什么时候任何奖励都没有。其实还挺常见的,以聊天机器人为例,聊的好不好很难定义奖励。解决这种情况的方法就是模仿学习  模仿学习(imitationlearning),有时也叫示范学习或者学徒学习。指有一些专家的示范,通过模仿这些专家来达到目的。专家的示范含义很广,比如在自动驾驶中,一个司机的行为就可以被称为专家的示范。  模仿学习中主要有两个方法:行为克隆和逆强化

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

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

  从之前的讨论看,都是有奖励的。哪怕是上一章的稀疏奖励,其实也有奖励。==假如任何奖励都没有怎么办?==本章介绍的就是这种情况的解决办法。
什么时候任何奖励都没有。其实还挺常见的,以聊天机器人为例,聊的好不好很难定义奖励。解决这种情况的方法就是模仿学习
  模仿学习(imitation learning),有时也叫示范学习或者学徒学习。指有一些专家的示范,通过模仿这些专家来达到目的。专家的示范含义很广,比如在自动驾驶中,一个司机的行为就可以被称为专家的示范。
  模仿学习中主要有两个方法:行为克隆和逆强化学习

  1.行为克隆

  其实行为克隆和监督学习一样的。它的思路就是完全复制专家的行为(克隆),专家怎么干它就怎么干。
  这种方法大多数情况下没有问题,但行为克隆会有问题

  问题一:特殊情况
  但专家的观测也是有限的。举个例子就是司机不会在能拐弯的时候去撞墙,所以对于撞墙下面的状态就没有示范了。但有的时候机器学习的时候会随机进入这种状态,无法处理。所以只观察专家行为是不够的,需要招数处理这种特殊情况。这个招数就叫做数据集聚合。
  希望收集更多样化的数据,并且包含最极端的情况。数据集聚合的思想很野蛮,就是让专家也处于这种极端的情况(我感觉说了和没说一样),有了这样的数据就能够进行处理了。

  问题二:会跑偏
  除了上面的问题,行为克隆还有一个问题就是可能学不到点子上。比如专家有多种形式的知识,本来想学习知识1,但实际学了知识2,而且内存空间有限,学完了知识2满了。这就彻底跑偏了。

  问题三:有误差
  在学习过程中,很难和专家一摸一样。但RL中是前面状态会影响到后面状态的。监督学习中独立分布没有问题,但这个里面可能就会越走越偏。
所以行为克隆并不能完全解决模仿学习的事情,就需要下面的方法

  2.逆强化学习

  之前介绍过需要模仿学习的原因就是因为获得不了奖励。而常规RL是从奖励函数出发去推导动作。逆强化学习的思路是先推导出一个奖励函数,再接着常规RL学习
  最大的问题就是:怎么利用专家行为推导奖励函数呢?
  首先专家和环境互动,会得到很多轨迹。从这些轨迹中推导奖励函数。要定一个奖励函数,这个奖励函数的原则就是专家得到的分数比演员分高。然后再修改奖励函数,最后使专家和智能体的得分一致,这个时候就认为是最佳的奖励函数。一个直观的问题是:怎么让专家得到奖励大过演员呢?
  实现手段是把奖励函数作为一个神经网络。训练的时候希望专家的输出的奖励越大越好,希望智能体输出的奖励越小越好。逆强化学习的框架如下:
在这里插入图片描述
  还有一种第三人称视角模仿学习,在这里简单提一下。之前介绍的都是第一人称,机器人是参与主体。我们希望它在旁边看人类做就能自己学会做,这对它来说是第三人称。把第三人称变成第一人称然后再学习的技术就叫做第三人称视角模仿学习。它的框架图如下:在这里插入图片描述
  模仿学习over!
  课后题如下:在这里插入图片描述
因作者水平有限,如有错误之处,请在下方评论区指正,谢谢!

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

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

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


相关推荐

  • C++ Template 基础篇(一):函数模板[通俗易懂]

    C++Template基础篇(一):函数模板Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分。CTemplate基础篇一函数模板为什么要有泛型编程函数模板定义普通函数模板成员函数模板为什么成员函数模板不能是虚函数virtual实参推断如何使用当返回值类型也是参数时实参推断时的自动类

    2022年4月16日
    58
  • atm异步传输模式_atm交换机的基本功能

    atm异步传输模式_atm交换机的基本功能ATM(异步传输模式)异步传输模式,又叫信元中继。ATM采用面向连接的交换方式,它以信元为单位。每个信元长53字节。其中报头占了5字节。ATM能够比较理想地实现各种QoS,既能够支持有连接的业务,又能支持无连接的业务。是宽带ISDN(B-ISDN)技术的典范。  异步传输模式(ATM)在ATM参考模式下由一个协议集组成,用来建立一个在固定53字节的数据包(信元)流上传输所有

    2022年9月21日
    2
  • 【科普】显示器VGA、DVI、HDMI、DP等各种接口详细科普

    由于显示器接口十分众多,比如说VGA、DVI、HDMI、DP等等等等,而每个接口都有各种型号,很容易让小白绕晕,因此这里详细介绍一下各个接口以及接口的相关型号参数。

    2022年4月9日
    64
  • oracle修改sequence最大最小值_oracle取最大值的记录

    oracle修改sequence最大最小值_oracle取最大值的记录序列是oracle提供的用于生成一系列唯一数字的数据库对象,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值,系列可以在多个用户并发环境中使用,并且可以为所有用户生成不重复的顺序数字,而不需要任何额外的I/O开销。创建序列序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存他的定义信息。当创建序列时必须拥有createsequence系统权限。语法格式:createsequ…

    2022年10月18日
    2
  • labview示波器波形采集_labview制作简易示波器教程

    labview示波器波形采集_labview制作简易示波器教程前些日子,需要保存示波器图像,可惜身边没有U盘,于是在电脑上安装了keysightBenchVue,可惜不是免费的,只能用一个月;电脑上装有Labview软件,何不自己写一个呢?下载了keysight相关示波器的编程手册,写好命令序列,可是每次打开传过来的png截屏文件,都有问题,图片软件总是显示打不开。查找了NI论坛,终于找到了问题所在,原来是截图中的一个字符需要替换。截图命令如下…

    2022年10月12日
    3
  • Feem(局域网文件传输工具)v4.3.0官方版

    Feem(局域网文件传输工具)v4.3.0官方版Feem是一款非常好用的局域网文件传输工具,软件可以将同一局域网内的不同设备连接到一起,传输文件更加方便,同一局域网下的设备,只要打开Feem就会自动配对连接,发送完了目标设备也就接收完了,免费用户接收的文件会被自动分配到设备上相应的文件夹里面,付费用户可以修改文件储存位置。功能介绍:【轻松发送文字和网页链接】大多数文件传输工具都没有发送文字这个功能,SendAnywhere则…

    2022年5月4日
    253

发表回复

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

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