【模仿学习】:离线和在线模仿

news/2024/4/29 7:12:35/文章来源:https://blog.csdn.net/gongdiwudu/article/details/132014527

一、说明

         模仿学习(Imitation Learning )是机器学习的一种,代理通过观察和模仿专家的行为来学习。在这种方法中,为代理提供了一组所需行为的演示或示例,并通过尝试复制专家的行为来学习输入观察和输出操作之间的映射。

        模仿学习通常用于难以定义代理优化目标函数的场景,例如玩游戏或驾驶汽车等复杂任务。通过从专家演示中学习,代理可以实现高水平的性能,而不需要复杂或手工设计的奖励函数。

        模仿学习的主要挑战之一是当代理暴露于新环境或一组不同的输入时处理分布变化。这可能会导致学习的行为变得脆弱或导致意外的失败。领域适应和逆强化学习等技术可以用来解决这个问题。

二、什么是模仿学习?

        正如同样本身所暗示的那样,包括人类在内的几乎所有物种都通过模仿和即兴创作来学习。一句话就是进化。同样,我们可以让机器模仿我们并向人类专家学习。自动驾驶就是一个很好的例子:我们可以让代理从数百万个驾驶员演示中学习,并模仿专家驾驶员。

        这种从演示中学习也称为模仿学习 (IL),是强化学习和一般人工智能的一个新兴领域。IL在机器人中的应用无处不在,机器人可以通过分析人类主管执行的策略演示来学习策略。

        专家缺席与在场: 模仿学习采取 2 个方向,条件是专家在培训期间是否缺席或专家是否在场以纠正代理的行为。让我们谈谈专家缺席时的第一种情况。

三、培训期间专家缺席

        专家的缺席基本上意味着代理只能访问专家演示,仅此而已。在这些“专家缺席”任务中,代理尝试使用由专家演示的固定训练集(状态-操作对),以便学习策略并实现与专家尽可能相似的操作。这些“专家缺席”任务也可以称为离线模仿学习任务。

        这个问题可以按分类框定为监督学习。专家演示包含许多训练轨迹,每个轨迹都包含一系列观察和专家执行的一系列动作。这些训练轨迹是固定的,不受代理策略的影响,这种“专家缺席”任务也可以称为离线模仿学习任务。

        这个学习问题可以表述为监督学习问题,其中可以通过解决一个简单的监督学习问题来获得策略:我们可以简单地训练一个监督学习模型,该模型直接将状态映射到动作上,通过他/她的演示来模仿专家。我们称这种方法为“行为克隆”。

        现在我们需要一个替代损失函数来量化所证明的行为和学习策略之间的差异。我们使用最大预期对数似然函数来制定损失。

L2 误差 ~ 最大化对数似然

        如果我们要解决分类问题,我们选择交叉熵,如果解决回归问题,我们选择 L2 损失。很容易看出,最小化 l2 损失函数等效于最大化高斯分布下的预期对数似然。

四、挑战

        到目前为止,一切看起来都很好,但行为克隆的一个重要缺点是泛化。专家只收集代理可以体验的无限可能状态的子集。一个简单的例子是,专业的汽车驾驶员不会通过偏离航线来收集不安全和危险的状态,但代理可能会遇到这样的危险状态,它可能没有学习纠正措施,因为没有数据。这是因为“协变量偏移”是一个已知的挑战,其中训练期间遇到的状态与测试期间遇到的状态不同,从而降低了鲁棒性和泛化性。

        解决这种“协方差偏移”问题的一种方法是收集更多风险状态的演示,这可能非常昂贵。培训期间的专家出席可以帮助我们解决这个问题,并弥合所展示的策略和代理策略之间的差距。

五、专家展示:在线学习

        在本节中,我们将介绍最著名的在线模仿学习算法,称为数据聚合方法:DAGGER。 这种方法在缩小训练期间遇到的状态与测试期间遇到的状态之间的差距方面非常有效,即“协变量移位”。

        如果专家在学习过程中评估学习者政策怎么办?专家提供了正确的行动,以采取来自学习者自身行为的例子。这正是DAgger试图实现的目标。DAgger的主要优点是专家教学习者如何从过去的错误中恢复过来。

        这些步骤很简单,类似于行为克隆,只是我们根据代理到目前为止学到的知识收集了更多的轨迹。

        1. 通过对专家演示 D 的行为克隆来初始化政策,从而产生政策
        π1 2.代理使用 π1 并与环境交互以生成包含轨迹
        1 的新数据集 D3。D = D U D1:我们将新生成的数据集 D1 添加到专家演示 D.
        1 中。新的演示 D 用于训练策略 π2.....

        为了利用专家的存在,专家和学习者的组合用于查询环境和收集数据集。因此,DAGGER从学习策略诱导的状态分布下的专家演示中学习策略。如果我们设置 β=0,在这种情况下,这意味着期间的所有轨迹都是从学习代理生成的。

六、算法:

DAgger缓解了“协方差偏移”的问题(由学习器策略诱导的状态分布与初始演示数据中的状态分布不同)。这种方法显著减小了获得令人满意的性能所需的训练数据集的大小。

七、结论

        DAgger在机器人控制方面取得了非凡的成功,并已应用于控制无人机。由于学习者会遇到专家没有演示如何行动的各种状态,因此在这些应用程序中,诸如 DAGGER 之类的在线学习方法是必不可少的。

        在本系列的下一篇博客中,我们将了解DAgger算法的缺点,重要的是我们将强调DAgger算法的安全方面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_338050.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装win版本的neo4j(2023最新版本)

安装win版本的neo4j 写在最前面安装 win版本的neo4j1. 安装JDK2.下载配置环境变量(也可选择直接点击快捷方式,就可以不用配环境了)3. 启动neo4j 测试代码遇到的问题及解决(每次环境都太离谱了,各种问题)连接…

【linux 结束pts/1踢人踢除另一个终端】

centos7上误执行了个命令,导致一直刷屏,强制CTRLC无法正常退出,一直出现如下: 网上搜索通过ctrlD,q均无法正常退出, 不想强行关掉,通过:who命令查看均用户: who mshns…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis

 Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个&am…

从 0 到 1!得物如何打造通用大模型训练和推理平台

1.背景 近期,GPT 大模型的发布给自然语言处理(NLP)领域带来了令人震撼的体验。随着这一事件的发生,一系列开源大模型也迅速崛起。依据一些评估机构的评估,这些开源模型大模型的表现也相当不错。一些大模型的评测情况可…

【ChatGPT辅助学Rust | 基础系列 | 基础语法】变量,数据类型,运算符,控制流

文章目录 简介:一,变量1,变量的定义2,变量的可变性3,变量的隐藏 二、数据类型1,标量类型2,复合类型 三,运算符1,算术运算符2,比较运算符3,逻辑运算…

算法通过村第二关-链表白银笔记|指定区间反转

文章目录 前言链表反转|指定区间内头插法:穿针引线法: 总结 前言 提示:人啊,果然跟花一样,开花前的等待无比漫长,绽放的魅力却转瞬即逝。 链表反转|指定区间内 参考题目:92. 反转链表 II - 力…

超详细 | 模拟退火算法及其MATLAB实现

模拟退火算法(simulated annealing,SA)是20世纪80年代初期发展起来的一种求解大规模组合优化问题的随机性方法。它以优化问题的求解与物理系统退火过程的相似性为基础,利用Metropolis算法并适当地控制温度的下降过程实现模拟退火,从而达到求解…

IO流简述

IO流IO流使用场景 什么是IO流常用的IO流字节流字符流缓冲流 BIO、NIO、AIO的区别 IO流 IO流使用场景 如果操作的是纯文本文件,优先使用字符流如果操作的是图片、视频、音频等二进制文件。优先使用字节流如果不确定文件类型,优先使用字节流。字节流是万能…

vue2实现一个树型控件(支持展开树与checkbox勾选)

目录 vue2实现一个树型控件(支持展开树与checkbox勾选)TreeItem.vueTree.vue效果 vue2实现一个树型控件(支持展开树与checkbox勾选) TreeItem.vue <template><div class"tree-item"><span click"toggleExpanded" class"icon" v…

如何将论文中的字快速复制出来?图片如何提取文字?

在日常的办公中&#xff0c;我们经常会遇到需要将纸质文件里的文字提取出来&#xff0c;再转换为电子档的情况&#xff0c;如果我们采用手动输入的话&#xff0c;不仅速度太慢&#xff0c;而且还可能因此耽误到后边的工作&#xff0c;是不是已经有小伙伴遇到这种现象&#xff0…

Redis以及Java使用Redis

一、Redis的安装 Redis是一个基于内存的 key-value 结构数据库。 基于内存存储&#xff0c;读写性能高 适合存储热点数据&#xff08;热点商品、资讯、新闻&#xff09; 企业应用广泛 官网&#xff1a;https://redis.io 中文网&#xff1a;https://www.redis.net.cn/ Redis…

mysql的日期类型的数据转换为年或者月类型的统计

SELECT CONCAT(YEAR(DATE), if (MONTH(DATE)<10,CONCAT(0,MONTH(DATE)),MONTH(DATE))) AS date , round(SUM(capacity),2) AS ca_dsoc FROM dianchi4 where date > 20211231 GROUP BY YEAR(DATE), MONTH(DATE) 月度的跨年处理就是第一个

文本怎么用手机生成二维码?二维码在线文本码制作技巧

现在二维码可以展示的内容越来越丰富&#xff0c;比如文本就是很常见的一种形式。编辑好文本内容之后&#xff0c;将文字内容添加到二维码中&#xff0c;其他人扫码就可以获取到文字内容&#xff0c;那么文本二维码该如何制作呢&#xff1f;想要制作二维码&#xff0c;那么可以…

SpringCloud集成OpenTelemetry的实现

SpringCloud项目做链路追踪&#xff0c;比较常见的会集成SleuthZipKin来完成&#xff0c;但这次的需求要集成开源框架OpenTelemetry&#xff0c;这里整理下实现过程。相关文章&#xff1a; 【SpringCloud集成SleuthZipkin进行链路追踪】 【OpenTelemetry框架Trace部分整理】 …

百度地图点标记加调用

先看效果 PHP代码 <?phpnamespace kds_addons\edata\controller;use think\addons\Controller; use think\Db;class Maps extends Controller {// 经纬度计算面积function calculate_area($points){$totalArea 0;$numPoints count($points);if ($numPoints > 2) {f…

国企普通员工如何才能成为公务员,这三种途径可供参考

国企普通员工如何转变成公务员&#xff1f;作为国企普通员工&#xff0c;如果要成为国家公务员&#xff0c;其主要的路径有三个方面&#xff0c;一是符合国家公务员法规定的公务员招录条件要求的&#xff0c;可以报考国家公务员&#xff1b;二是在国有企业担任领导职务&#xf…

有趣的Python之基本语法(一篇足够)

目录 Python简介 基本数据类型 进入交互模式 input()函数 条件语句 逻辑运算符 列表list 元组 字典 循环语句 format()方法和f 定义函数 python中的标准库引入 引入第三方库模块 面向对象 读文件 写文件 异常处理 Python简介 面向对象编程、函数式编程和过程…

【rtmp】1: FLV videotag 转annexb

【FLV】AVC+AAC的FLV解析过程及pts、dts计算 反复多次,才能熟记细节。 明确细节,遇到问题才能解决。 rtmp 推送flv时, 首先解析flv,flv videotag 转annexb 格式。 然后 按照annexb 输入给rtmp,让rtmp 推送。 而rtmp 推送又需要把annexb 转为avcc 。 annexb 格式文件 录制的…

day58 单调栈

单调栈 使用场景&#xff1a;通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置 本质&#xff1a;空间换时间 三个判断条件&#xff1a; 当前遍历的元素T[i]小于栈顶元素T[st.top()]的情况 当前遍历的元素T[i]等于栈顶元素T[st.to…

网络安全学习笔记——burp和SqlMap的tips

一、Burp 爆破 1、Burp爆账号密码 burp爆破的前提条件——该网站账号密码没有进行加密而是明文&#xff0c;且验证码可以重复使用&#xff0c;如下图数据包中直接显示账号与密码且验证码不需要重复提交&#xff08;此处需要自己使用burp进行测试&#xff09; 1、进入burp&am…