模仿学习(行为克隆,逆强化学习,生成式对抗模仿学习)

news2024/11/29 0:36:42

目录

1.模仿学习

1.1先说强化学习

1.2再说逆强化学习

1.3最后说生成对抗模仿学习

1.3.1先说GAN

1.3.2再说生成对抗模仿学习

1.4逆强化学习常用方法

参考文献


1.模仿学习

定义:当我们想训练机器人时,通过复制人类的动作,对机器人进行训练,进而达到模仿的目的

行为克隆:不需要奖励函数,直接学习策略。

逆强化学习:需要专家经验得到奖励函数,再根据奖励函数重新学习策略。

生成式对抗模仿学习:可以理解为,逆强化学习的专家经验依赖于真人提供,生成式对抗模仿学习利用GAN用网络去替代真人提供的专家经验,去学习奖励函数,同时得到策略

逆强化学习和生成式对抗模仿学习区别:简单理解逆强化学习就是你亲自拿着机器人的手,手把手教着机器人去做事,同时你还要观察这个过程。生成式对抗模仿学习是你又找了一个人,帮你拿着机器人的手,手把手教着机器人去做事,而你只需要观察这个过程就行了。

1.1先说强化学习

      强化学习关键就是通过设计奖励函数,找到一个动作序列下的最优策略函数,但通常在求解过程中的奖励函数是人为指定的,这无法保证设计的是最合适的奖励函数,而在很多复杂任务中,奖励函数是很难定下来的。所以有了逆强化学习。

1.2再说逆强化学习

      强化学习中最难的问题就是如何设计奖励函数,所以用逆强化学习来解决这个问题,思路如下,假设我们想进行一个机器人采摘红薯的训练,我们找了农业专家,将他们认为好的动作,做成指令集对机器人进行轨迹规划,这就是专家经验,我们假设专家经验建立在最优的奖励函数基础上,然后让机器人运动,在次此基础上,学习该策略下的奖励函数,最后再用该奖励函数重新训练机器人,得到新的策略

      进一步根据下图理解,逆强化学习中,给定了状态s,动作a,状态转移概率函数p,按照固定的策略\pi(专家经验),采样得到动作轨迹,再根据这个动作轨迹,学习奖励函数r,最后再根据得到的奖励函数,重新学习策略\pi

1.3最后说生成对抗模仿学习

1.3.1先说GAN

      GAN的全称是Generative adversarial network,中文翻译过来就是生成对抗网络。生成对抗网络其实是两个网络的组合:生成网络(Generator)负责生成模拟数据;判别网络Discriminator)负责判断输入的数据是真实的还是生成的。生成网络要不断优化自己生成的数据让判别网络判断不出来,判别网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗网络。


1.3.2再说生成对抗模仿学习

      在逆强化学习(IRL)领域有名的算法是生成对抗模仿学习(GAIL),这种算法模仿了生成对抗网络GAN。我们要训练一个策略网络去尽量拟合提供的示教数据,那么我们可以让需要训练的奖励函数来进行评价,奖励函数通过输出评分来分辨哪个是示教数据的轨迹,哪个是自己生成的虚假轨迹;而策略网络(生成网络)负责生成虚假的轨迹,尽可能骗过奖励函数(判别网络),让其难辨真假。两者是对抗关系,双方的损失函数是对立的,两者在相互对抗中一起成长,最后训练出一个较好的奖励函数和一个较好的策略网络。

1.4逆强化学习常用方法

最大边际形式化:包括学徒学习(AL)、MMP方法、结构化分类、神经逆向强化学习,但是这种方法无法解决歧义问题。

      解决歧义问题:很多时候不存在单独的奖励函数使得专家示例行为,既是最优又比其他行为好很多,或者有很多不同的奖励函数使得出现相同的专家策略。

基于概率模型的形式化:可以解决歧义性问题

参考文献

1.强化学习进阶【逆强化学习】_小小何先生的博客-CSDN博客

2.Robot learning by demonstration - Scholarpedia

3.【强化学习】逆强化学习概念_Luminous_song的博客-CSDN博客 

4.西瓜书笔记16-2:逆强化学习_lagoon_lala的博客-CSDN博客 

5.强化学习+逆强化学习简单总结_哔哩哔哩_bilibili 

6.模仿学习(Imitation Learning)概述_Interesting AI的博客-CSDN博客 

7.模仿学习(Imitation Learning)入门_模仿学习加速训练_微笑小星的博客-CSDN博客 

8.【强化学习】GAIL生成对抗模仿学习详解《Generative adversarial imitation learning》_gail算法_贰锤的博客-CSDN博客

9.强化学习(二)--让你轻松玩转生成对抗网络(GAN)与生成对抗模仿学习(GAIL)_强化学习 生成对抗_Robert--cao的博客-CSDN博客10.GAN(生成对抗网络)的系统全面介绍(醍醐灌顶)_打灰人的博客-CSDN博客 

11.生成对抗网络(GAN)详解与实例_gan网络实例_你这个代码我看不懂.的博客-CSDN博客 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm新生报到系统源码和论文PPT

ssm新生报到系统源码和论文PPT004 开发环境 开发工具:idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具:navcat,小海豚等 开发技术:java ssm tomcat8.5 选题依据及意义 每学年九月份随着新生的入校,学校工作中的重点都会集…

Endnote中导入和显示中文文献国标格式具体实现步骤

Endnote中导入和显示中文文献国标格式具体实现步骤 目录 Endnote中导入和显示中文文献国标格式具体实现步骤一、下载中文文献引用标准格式二、将下载的两种格式复制到Endnote安装文件下的Styles子文件夹中三、对导入的样式进行标记,以便在word中方便显示和使用四、在…

领航优配:美联储货币政策风向或已生变 私行纵论下半年黄金配置价值

美联储钱银方针风向或已生变,黄金的拥趸开端跃跃欲试。 费城联储主席帕特里克哈克周二标明,美国有一条通往经济软着陆的路径,失业率或许有所上升,但起伏不会太大;不希望美联储过度收紧钱银方针,估计明年某时…

springBoot整合RabbitMq实现手动确认消息

如何保证消息的可靠性投递? 1.保证生产者向broke可靠性投递,开启ack投递成功确认,如果失败的话进行消息补偿 /*** author yueF_L* date 2023-08-10 01:32* ConfirmCallback:消息只要被 RabbitMQ broker 接收到就会触发confirm方…

OpenAI-Translator 实战总结

最近在极客时间学习《AI 大模型应用开发实战营》,自己一边跟着学一边开发了一个进阶版本的 OpenAI-Translator,在这里简单记录下开发过程和心得体会,供有兴趣的同学参考 功能概览 通过openai的chat API,实现一个pdf翻译器实现一个…

牛客小白月赛75C题题解

文章目录 方豆子问题建模问题分析代码 方豆子 问题建模 给定一个整数n,要求输出n级好豆豆,n级好豆豆由3个n-1级好豆豆和1个n-1级坏豆豆组成,已经给出了1级好豆豆和1级坏豆豆。 问题分析 由于最终的豆豆是由其上一级的豆豆产生的&#xff0…

将应用设置成系统App/获取Android设备SN号

1,和系统签名一致;(签名设置签名文件) 2,配置Manifest 至此你的App就是一个系统App了,可以执行一些系统App才能有的操作,如获取机器SN号: public String getSerialNumber() {Strin…

如何系统的学习单片机?

一、学习单片机需要的一些基础知识 (1)要具有一些模电、数电的知识(不一定要精通,但基本至少要知道) (2)具备C语言基础,有基础就可以入门了。数据结构、设计模式、汇编这些&#x…

IAR目标代码4字节对齐

向工程添加文件 eof.c : // 文件头 #if defined(__CC_ARM) // MDK // uint32_t g_update_flag[2] __attribute__((zero_init, at(0x1000FFF0)));const unsigned long gc_eof __attribute__((used)) 0xFFFFFFFFul; #elif defined(__ICCARM__) // IAR__root const unsigned…

【ur3机械臂配置夹爪Robotiq2F-85】

【ur3机械臂配置夹爪Robotiq2F-85】 1. 前言2. 按照官网要求清点安装设备3. 在示教器上配置夹爪3.1 另一头连接好夹爪和缆线3.2 下载官网驱动 5. 总结 1. 前言 欢迎大家阅读2345VOR的博客【ur3机械臂配置夹爪Robotiq2F-85】🥳🥳🥳2345VOR鹏鹏…

【100天精通python】Day31:使用python操作数据库_数据库编程接口,连接对象和游标对象,数据库连接配置

专栏导读 专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html 数据库编程接口是用于连接、操作和管理数据库的一组函数、类和方法。不同类型的数据库可能有不同的编程接口。以下是一些常见的数据库编程接口: 一、数据库编程接口 …

Android AOSP源码编译——AOSP下载(一)

一、电脑配置 Ubuntu16.04 16G,硬盘的大小最好大于300G (我这边是找了个win电脑装了双系统 没有使用虚拟机的方式) 二、基础环境配置 1、安装git sudo apt install git配置git email和name git config --global user.email "youexample.com" git conf…

大环境下,企业如何找到大数据传输解决方案

随着网络技术的进步和智能设备的普及,大数据成为了当下社会的热点话题。但是,大数据的传输和处理仍然存在着很多的困难和挑战。在大数据传输中,如何解决数据量巨大、网络带宽不足、传输时间过长和数据安全等问题,是当前亟待破解的…

zmibra ssl证书替换

一、阿里云上申请证书 选择其他证书 二、证书上传及制作 首先当然要去阿里云申请的ssl证书下载其他类型证书,解压缩后有两个文件上传到相应目录, 文件名类似18131-mail.xxx.comkey和181111-mail.xxx.com.pem 创建目录 /opt/zimbra/ssl/aliyunssl/ 上传这两个文件 以上是…

JVM 查看配置 jinfo 及使用 jstat,查看堆栈jstack及GC

1. Jinfo 查看正在运行的Java应用程序的扩展参数: 包含 JVM 参数与 java 系统参数 命令: jinfo pid 2 jstat 查看堆内存使用情况及 GC 回收频率等: jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数] 2.1 jstat -gc pid 最常用,可…

多区域平台lazada,虾皮电商商品详情API接口返回值说明

Lazada和虾皮(Shopee)都是知名的电商平台,主要在东南亚地区运营。以下是关于它们的一些信息: Lazada(来赞达): Lazada成立于2012年,起初是一个全球性的电子商务平台,后来…

如何使用Mac终端给树莓派pico构建C/C++程序进行开发,以及遇到各种问题该怎么处理,不使用任何IDE或编辑器(例如VS Code)

写本文的原因是官方的教程已经过时了,如果你现在按照官方教程来在 Mac 上进行配置,那么会遇到一堆问题,比如我几乎把能踩的“雷”都踩了。所以这里记录了完整过程,以及各种错误的原因和处理方法,不然以后换 Mac 了或者…

CH-87——矿井水除氟的技术汇总

矿井水除氟的要求一般是处理后水中的含氟量≤1.0mg/L。氟化物含量高的原水往往呈偏碱性,pH值常大于7.5。利用阴离子交换树脂上的可交换阴离子,去交换水中的氟离子,达到除氟目的。氟离子的选择交换性较大,树脂上的SO42-、Cl-等阴离…

回收站删除的文件怎么恢复?文件恢复方法就看这3个!

回收站是什么呢?一般来说,在我们使用电脑时,如果在电脑上进行删除操作,被删除的文件会被系统自动放入回收站中。这实际上也是在给电脑用户一个思考的时间,如果是误操作,可以通过回收站对文件进行还原&#…

在矩池云安装使用 PaddleHub 和 PaddlePaddle

在安装 PaddleHub 导入的时候我们常常会遇到各种错误,不是这个包没这个模块,就是哪个包没这个属性,每次遇到都会很头痛,网上也没有 PaddleHub 和 PaddlePaddle 对应的版本,只能自己慢慢尝试,通过不断查错误…