【逆强化学习-0】Introduction

文章目录

  • 专栏传送门
  • 0.引言
  • 1.逆强化学习发展历程
  • 2.需要准备的

专栏传送门

0.简介
1.学徒学习
2.最大熵学习

0.引言

\qquad相比于深度学习,国内强化学习的教程并不是特别多,而相比强化学习,逆强化学习的教程可谓是少之又少。而本人想将整理到的资料融合到一块并记录下来,因此开辟了这个分栏。有关这个领域的应用倒是有很多博客可以参考,但真正介绍原理很清楚的博客很少,因此本系列以介绍原理为主,辅助代码实验。
\qquad逆强化学习(Inverse Reinforcement Learning,IRL)其实是模仿学习(Imitation Learning,IL)的一种,与普通IL方法不同的是,其通过学习Expert,求得Environment的奖励函数Reward,再结合正强化学习(Forward Reinforcement Learning),达到与环境互动,模仿专家系统行为的目的。
\qquad与普通强化学习不同,强化学习虽然不像监督学习一样需要知道样本的标签,但是需要知道每一个样本对应的奖励函数Reward;然而逆强化学习则利用人类的行为求取这个Reward。在这个过程中会遇到各种问题,但是成功的案例也不少,最典型的要数美国berkly大学做的机器人摆盘子和倒弹珠的实验:

http://rll.berkeley.edu/gcl

在这里插入图片描述
\qquad在该实验中,机器人将10个盘子依次摆放到对应位置是一个特定的强化学习任务,这个任务的损失函数很难人为界定,但是可以通过人工演示正确的范例来让机器人加以学习,从而达到学习环境奖励函数并优化Policy的目的。

\qquadIRL领域open-access的papers有很多,可惜本人水平有限,理解太浅。虽说知乎和CSDN的大V们也做过很多介绍,可惜看了之后都是失望大于期望的,这些博客大多参考了国外的课程,可惜播放源大多数都不是国内源,虽说打不开,本人将链接也贴在下方以作参考。

  1. 莫烦python-强化学习系列
  2. 台湾大学-深度强化系学习系列视频(非国内源)
  3. 台湾大学-模仿学习简介(非国内源)
  4. 美国Berkly大学-模仿学习课程(非国内源)
  5. 模仿学习(行为克隆+逆强哈学习)教学(非国内源)

1.逆强化学习发展历程

IRL的重要论文(OpenAI提供的论文)

论文链接

\qquad如果翻看近些年IRL的论文就会发现,其IRL的思想早在2000年左右就已经提出了,但它的热门期也是随着2013年Deep RL的出现而开始的。目前主要的方法有以下几种:

  1. 学徒学习(Apprenticeship Learning, 2004)
  2. 最大熵学习(Maximum Entropy Learning,2010)
  3. 引导损失函数学习(Guided Cost Learning,2016)
  4. Gail(Generative Adversarial Imitation Learning,2016)
  5. DeepMimic(Example-Guided Deep Reinforcement Learning of Physics-Based Character Skills,2018)
  6. Vail(Variational Discriminator Bottleneck: Improving Imitation Learning,2018)
  7. MetaMimic(One-Shot High-Fidelity Imitation,2018)

\qquad本人在这个领域也属于小白水平,目前只大概了解了前4种方法的原理,若有错误或不清晰的地方,还望大家指正(后续系列方法的整理会持续更新)。
\qquadIRL与RL一样,它的分类方法也基本遵循了以下原则(图片来自OpenAI的spiningup官网):
在这里插入图片描述
\qquad首先出现的Model-Free的方法,其次出现Model-Based方法。在Model-Free方法中,大家也是先研究Q-Learning系列的(Value-Based)方法,然后再研究Policy-Based方法。这里的Model指的是Dynamic Model,在MDP中指状态转移概率(矩阵),很多时候这个矩阵无法求得,就必须依赖Model-Free的方法,通常Model-Free都是基于Policy Optimization或者Sample Based的,以下是一些Model-Based和Model Free的IRL方法整理。

Model-BasedModel-Free
Maximum Margin Optimization, Apprenticeship Learning, Maximum Entropy Learning, Deep Maximum Entropy LearningRelative Entropy Learning, Path Integral Entropy Learning, Guided Cost Loss, Model-Free Imitation Learning via Policy Optimization

\qquad在深度学习盛行之后,也出现了很多IRL的Deep Learning的方法,当然,只要知道了梯度如何计算,其实深度学习和线性函数是一回事。

2.需要准备的

博客篇幅不宜过长,因此以下基础知识内容本系列的博客不会再详细赘述,还望读者自行学习,毕竟基础不牢地动山摇嘛

  1. 强化学习的基础知识(可以看引言中莫烦的视频,或者参考OpenAI官网教程)在这里插入图片描述
  2. 深度学习的基本理论(其实这才是最好学的,好在B站有不少,在这里就不作推荐了)
  3. 概率论的基础知识(说实话,高数和线代用的不是特别多,但是对概率论基础知识的掌握还是非常必要的)
  4. Linux的开发环境(强化学习的仿真环境gym目前只支持Linux呀,虽说有人在Windows上成功了,但也不是Official Support的)

\qquad后续会根据第一章提到的发展历程更新这个系列的博客,欢迎同道之人交流探讨!

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

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

相关文章

不知道Mysql排序的特性,加班到12点,认了认了!

小弟新写了一个功能,自测和测试环境测试都没问题,但在生产环境会出现偶发问题。于是,加班到12点一直排查问题,终于定位了的问题原因:Mysql Limit查询优化导致。现抽象出问题模型及解决方案,分析给大家&…

js中==与===的区别

2019独角兽企业重金招聘Python工程师标准>>> 1、对于string,number等基础类型,和是有区别的 1)不同类型间比较,之比较“转化成同一类型后的值”看“值”是否相等,如果类型不同,其结果就是不等 2&#xff09…

【逆强化学习-1】学徒学习(Apprenticeship Learning)

文章目录0.引言1.算法原理2.仿真环境3.运行4.补充(学徒学习深度Q网络)本文为逆强化学习系列第1篇,没有看过逆强化学习介绍的那篇的朋友,可以看一下:Inverse Reinforcement Learning-Introduction 传送门 0.引言 \qquad…

面试官:HashMap有几种遍历方法?推荐使用哪种?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)HashMap 的遍历方法有很多种,不同的 JDK 版本有不同的写法,其中 JDK 8 就提供了 3 种 HashMa…

【逆强化学习-2】最大熵学习(Maximum Entropy Learning)

文章目录0.引言1.算法原理2.仿真0.引言 \qquad本文是逆强化学习系列的第2篇,其余博客传送门如下: 逆强化学习0-Introduction 逆强化学习1-学徒学习 \qquad最大熵学习是2008年出现的方法,原论文(链接见【逆强化学习0】的博客&#…

面试官又整新活,居然问我for循环用i++和++i哪个效率高?

前几天,一个小伙伴告诉我,他在面试的时候被面试官问了这么一个问题:在for循环中,到底应该用 i 还是 i ?听到这,我感觉这面试官确实有点不按套路出牌了,放着好好的八股文不问,净整些幺…

面试官:如何实现 List 集合去重?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)本文已收录《Java常见面试题》系列,开源地址:https://gitee.com/mydb/interviewList 去重指的…

Windows重装Anaconda3失败解决方案【重装失败10来次首次成功的案例!】

文章目录0.环境1.原因2.解决方案0.环境 Win10 Anaconda3 2018版 python 3.7.1 注意!此种情况只会在windows上发生,因为在linux上你只需要删除anaconda3整个文件夹,重新安装一定会成功! 1.原因 Anaconda肯定是没有成功安装的&am…

python读取pcd点云/转numpy(python2+python3,非ROS环境)

0.引言 \qquadROS的PCL库支持python读取点云,ROS1关联的是python2(2.7),ROS2关联的是python3(>3.5),但这对于windows的用户和没装ROS的ubuntu用户似乎不够友好。下面就介绍两种不需要ros的方…

Java中List排序的3种方法!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)在某些特殊的场景下,我们需要在 Java 程序中对 List 集合进行排序操作。比如从第三方接口中获取所有用户的列表&…

Spring 事务失效的 8 种场景!

在日常工作中,如果对Spring的事务管理功能使用不当,则会造成Spring事务不生效的问题。而针对Spring事务不生效的问题,也是在跳槽面试中被问的比较频繁的一个问题。点击上方卡片关注我今天,我们就一起梳理下有哪些场景会导致Spring…

vscode无法识别constexpr

问题 vscode 无法识别constexpr(常指针类型) 方法 打开工程路径下的.vscode文件夹(一般是自动隐藏的,CtrlH显示隐藏)设置c_cpp_properties.json文件如下: {"configurations": [{"name…

三流Java搞技术,二流Java搞框架,一流Java…

如何反驳“99% 的 Java 程序员都是 Spring 程序员”这句话?答案是不能。互联网发展至今,站在巨人肩膀上编程像一日三餐一样寻常。Spring Boot 的确凭一己之力拉低了 Java 开发的门槛,可普通开发与高开之间,真就因为一个…

【Ubuntu】vscode配置PCL库/vscode无法导入PCL库

问题 PCL库是ROS框架自带的点云处理库,可以通过find_package(PCL REQUIRED)在CMakeLists.txt中导入,但是vscode却无法识别,出现问题如下: 注意,本文解决方案仅限Ubuntu! 解决方案 打开工程路径下的.vsc…

面试官:HashSet是如何保证元素不重复的?

作者 | 磊哥来源 | Java面试真题解析(ID:aimianshi666)转载请联系授权(微信ID:GG_Stone)本文已收录《Java常见面试题》系列,开源地址:https://gitee.com/mydb/interviewHashSet 实现…

【Ubuntu】Ubuntu 20.04无法识别网口/以太网/有线网卡

这里写自定义目录标题0.症状1.查看网卡类型2.下载网卡驱动3.安装网卡驱动0.症状 \qquad表现为插入以太网网口后右上角没有显示网络,即没有下图的音量左侧的标志 打开设置的【网络】选项没有以太网接入,然而以太网口信号灯仍然正常闪烁。这种情况基本可以…

小心Lombok用法中的坑

刚才写完了代码,自测的时候,出现了NPE问题。排查的时候发现是Lombok的坑,以前也遇到过,所以觉得有必要过来记录一下。我先描述一下现象,我的代码里面订单服务A 需要调用缓存服务B,服务B就是一个Bean&#x…

【VSCode】VSCode使用conda环境时找不到python包/找不到Module

这里写自定义目录标题0.问题描述1.原因2.解决方法0.问题描述 \qquad首先需要排除是否是VSCode未配置conda环境的问题,当然,相信VSCode的老粉都不会犯这个低级错误,请CtrlP,在搜索框>select interpreter检查一下python环境。 …

PS如何对JPG文件直接抠图

如何JPG文件直接抠图 先转为智能对象: 再栅格化图层 此进即可直接进行抠图!

更快的Maven来了,我的天,速度提升了8倍!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)周末被 maven-mvnd 刷屏了,于是我也下载了一个 mvnd 体验了一把。虽然测试的数据都是基于我本地项目&#xff0c…