(十一)模仿学习

(十一)模仿学习  从之前的讨论看,都是有奖励的。哪怕是上一章的稀疏奖励,其实也有奖励。==假如任何奖励都没有怎么办?==本章介绍的就是这种情况的解决办法。什么时候任何奖励都没有。其实还挺常见的,以聊天机器人为例,聊的好不好很难定义奖励。解决这种情况的方法就是模仿学习  模仿学习(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【crossbeam系列】3 crossbeam-deque:work-stealing算法

    【crossbeam系列】3 crossbeam-deque:work-stealing算法work-stealing算法简介crossbeam-deque包提供了一个无锁的双向队列(deque)。那么这个双向队列在并发中又起到了什么重要的作用呢?这就涉及到了在多任务环境下的一…

    2022年9月14日
    3
  • php unicode编码_js unicode转中文

    php unicode编码_js unicode转中文php实现汉字转unicode编码的方法:首先创建一个PHP示例文件;然后通过“functionUnicodeEncode($str){…}”方法将指定汉字转换为unicode字符串即可。本文操作环境:Windows7系统、PHP7.1、DellG3电脑。下面来看PHPUnicode编码方法,将中文转为Unicode字符,例如将新浪微博转换为unicode字符串,代码如下:functio…

    2025年7月20日
    2
  • 图片怎么一键重命名_多个图片重命名并按指定的顺序

    图片怎么一键重命名_多个图片重命名并按指定的顺序其主要功能是将某个目录下的指定文件复制到另一个目录下,同时:1.对于目录结构,可以选择将原各级子目录合并成一个目录,或保持原目录结构。2.对于文件名,可以选择(1).保持原文件名不变,但在重名时自动更名;(2).将所有文件重新编号,新文件名=前缀+分隔字符+编号,前缀可以指定,或用子目录名为前缀;(3).去掉原文件名的头几个字符;(4).在文件名开头添加指定的字符串;(5).在第n个字符后添加…

    2025年9月12日
    4
  • Bitmap.MakeTransparent 方法

    Bitmap.MakeTransparent 方法使默认的透明颜色对此Bitmap透明。重载列表使默认的透明颜色对此Bitmap对象透明。[Visual Basic]OverloadsPublicSubMakeTransparent()[C#]publicvoidMakeTransparent();[C++]public:voidMakeTransparent();[JScript]publicfunctionM

    2022年7月21日
    13
  • 深入理解 Spring 之 SpringBoot 事务原理

    深入理解 Spring 之 SpringBoot 事务原理前言今天是平安夜,先祝大家平安夜快乐。我们之前的数十篇文章分析了Spring和Mybatis的原理,基本上从源码层面都了解了他们的基本原理,那么。在我们日常使用这些框架的时候,还有哪些疑问呢?就楼主而言,楼主已经明白了IOC,AOP的原理,也明白了Mybatis的原理,也明白了Spring和Mybatis是如何整合的。但是,我们漏掉了JavaEE中一个非常重要的特性:事

    2022年6月11日
    40
  • Flowable工作流入门

    Flowable工作流入门Flowable工作流入门本文链接:https://blog.csdn.net/qq_37059838/article/details/83576097原作者:吕小小布下载地址:Flowable下载使用springbootflowble生成所需表<dependency><groupId>org.flowable</gro…

    2022年5月21日
    118

发表回复

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

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