强化学习组队学习task05—— 稀疏奖励及模仿学习
文章目录
- 一、Sparse Reward
- 1.Reward Shaping
- ICM(intrinsic curiosity module)
- 2.Curriculum Learning
- Reverse Curriculum Generation
- 3.Hierarchical RL
- 二、Imitation Learning
- 1.行为克隆(Behavior Cloning)
- 2.反强化学习(Inverse RL)
- 3.Third Person Imitation Learning
一、Sparse Reward
实际上在训练强化学习的时候,多数时候agent是很难获得奖励的。举例来说,假设要训练一个机器手臂用螺丝起子把螺丝钉栓进去,这种情况很难因为一开始的 agent 是什么都不知道,它唯一能够做不同的 action 的原因是采取的一些随机动作。随机到把螺丝起子捡起来,再把螺丝栓进去,然后就会得到奖励,这件事情是永远不可能发生的。所以最后什么都不会学到。
如果环境中的奖励非常稀疏,强化学习的问题就会变得非常的困难,要解决稀疏奖励的问题有三种方法:
1.Reward Shaping
Reward shaping 的意思是说环境有一个固定的奖励是真正的奖励,但是为了让 agent 学出来的结果是我们要的样子,我们刻意地设计了一些奖励来引导我们的 agent。
例如设计一个第一人称射击游戏,原本的奖励是杀了敌人会得到正的奖励,被敌人杀掉是负奖励。但我们可以人为设定一些奖励比如掉血获得一点负奖励,待在原地会得到负奖励,移动得到一点正奖励等。
当然这种方法也有坏处就是我们需要有一些领域的知识来辅助设计奖励。
ICM(intrinsic curiosity module)
其中一种技术使给机器加上好奇心。这个好奇心本质上是一个新的奖励函数,它的输入时状态s1、行为a1和状态s2,输出是另外一个奖励函数。ICM的详细结构如下:
黄色的格子代表特征抽取,它的输入时状态,输出是一个特征向量用来代表这个状态,我们希望得到的特征向量能够将状态s中没有意义的东西过滤掉。
网络一的作用是给定一个行为和状态的特征向量,预测下一个状态的特征向量,将预测的结果和真实的特征向量结果进行比较,差别越大,奖励越大。即鼓励机器进行冒险。
网络二的输入时两个状态的特征向量,输出为预测的行为并和真正的行为进行比较,希望两者越接近越好。
2.Curriculum Learning
curriculum learning 的意思是为机器的学习做规划,训练的时候是有顺序的,通常都是由简单到难。
Reverse Curriculum Generation
一个比较通用的方法叫做Reverse Curriculum Generation,示意图如下:
- 首先我们一开始有一个gold state,即sg,它是最后最理想的状态。
- 之后根据gold state去寻找比较接近的其他状态,即上图的s1
- 之后从这些s1开始与环境互动,看能否达到gold state,过程中我们会得到一个奖励函数
- 接下来,我们删除掉奖励比较极端的情况,即奖励太大或太小的情况
- 然后根据这些s1继续寻找接近的s2状态
- 重复以上步骤即可
3.Hierarchical RL
分层的强化学习的思想是有好几个agent,有一些agent负责比较高层次的行为,有些负责低层次的行为,每一个agent都将上层agent得到的输出作为输入,然后决定自己产生什么输出。
二、Imitation Learning
模仿学习考虑的情况是奖励未知。在模仿学习里有一些专家的示范,机器通过观察专家的行为来进行学习。在模仿学习里,有两个方法,分别是行为克隆和反强化学习
1.行为克隆(Behavior Cloning)
行为克隆和监督学习类似,以自动驾驶汽车为例,你可以收集到人开自动驾驶汽车的所有资料,比如通过行车记录器进行收集。前面空旷无人的时候人会决定向前开。机器就采取跟人一样的行为,也向前,就结束了。这个就叫做行为克隆。实现行为克隆的方法也很简单,学习一个网络,输入时状态s,输出就是需要采取的行为。但是,行为克隆存在很多问题:
行为克隆虽然很简单,但是仅仅收集专家的资料得到的结果是非常局限的。
有一种方法叫做Dataset Aggregation 。我们希望能够收集更多多样性的数据。以自动驾驶汽车为例的话,假设一开始的 actor 叫作π,你让π去开车。车上坐了一个专家。这个专家会不断地告诉机器在环境里应该怎么做。所以π自己开自己的,但是专家会不断地表示它的想法。比如说专家可能就会说往右转。但π是不管专家的指令的会继续去撞墙。我们要做的记录的是专家在某种情况下采取的行为。用这些数据去进行训练,不断重复这些步骤就是Dataset Aggregation。
行为克隆还有一个问题是机器会完全克隆专家的行为,无论对错。有些行为是多余的,这无疑会影响网络的承载能力,所以区分哪些需要学习哪些不需要学习是一个问题。
在进行行为克隆时,训练集和测试集的分布不一定相同。这是由于未来的状态要由当前的状态及采取的行为来决定,在进行了行为克隆后,我们只能观察到专家的状态-行为对。
所以我们希望学习另一个决策π‘,我们希望π和π‘越接近越好,但对于强化学习来说,即使只有一点点的误差,得到的结果可能千差万别。
2.反强化学习(Inverse RL)
在正常的强化学习中,我们有环境和奖励函数,然后通过agent和环境进行互动学到恰当的决策。而反强化学习则相反,在反强化学习中,我们有环境和很多专家的行为,来反推奖励函数。找出奖励函数后,再用强化学习来寻找决策。
反强化学习的步骤如下:
- 首先有一个专家π‘,让其与环境进行互动,得到很多状态-行为的数据
- 有一个一开始表现很差的actor π,用这个π也和环境做互动得到状态-行为数据
- 接下来确定一个奖励函数,原则是让专家得到的奖励大于actor π得到的奖励
- 用得到的奖励函数使用强化学习方法得到一个新的actor ,使当前奖励最大
- 之后再确定一个新的奖励函数,原则和之前一样,重复这些步骤即可得到最终结果。
得到的最好的奖励函数原则上希望专家得到的奖励和actor 得到的奖励相同。很显然,反强化学习的过程和GAN的训练过程很类似。
IRL 有很多的应用,比如可以用开来自动驾驶汽车, 可以让自动驾驶汽车学会各种不同的开车风格。这种技术也可以拿来训练机器人。你可以让机器人,做一些你想要它做的动作。
反强化学习有一个有趣的地方,通常你不需要太多的训练数据,训练数据往往都是个位数。因为反强化学习只是一种范例,实际上机器可以去跟环境互动非常多次。所以需要的数据很少。
3.Third Person Imitation Learning
机器将从第三视角观察到的经验泛化到第一人称视角采取的行为的过程叫做Third Person Imitation Learning。
它的技术不只是用到模仿学习,还用到了 Domain-Adversarial Training ,这是一个GAN 的技术。其实区别第一人称视角和第三人称视角,模仿学习用的技术其实也是一样的,希望学习一个特征抽取器,机器在第三人称的时候跟它在第一人称的时候看到的视野其实是一样的,就是把最重要的东西抽出来就好了。
强化学习组队学习task05—— 稀疏奖励及模仿学习相关推荐
- 深度强化学习-稀疏奖励及模仿学习-笔记(七)
稀疏奖励及模仿学习 稀疏奖励 Sparse Reward Reward Shaping Curiosity Curriculum Learning Reverse Curriculum Generat ...
- 【集成学习-组队学习】2.使用sklearn构建完整的机器学习项目流程
使用sklearn构建完整的机器学习项目流程 组队学习来源: Datewhle23期__集成学习(上) : https://github.com/datawhalechina/team-learnin ...
- 强化学习组队学习task04—— DQN 算法及 Actor-Critic 算法
文章目录 一.DQN 1.状态价值函数的估计方法 2.Q函数 3.DQN网络中的tips (1)目标网络 (2)Exploration (3)Experience Replay(经验回放) 4.DQN ...
- 强化学习组队学习task03—— 策略梯度及 PPO 算法
文章目录 一.策略梯度 1.策略梯度理论实现 R的梯度算法: 对于该公式的理解: 在计算完R的梯度后,我们就使用策略梯度对参数进行更新 2.策略梯度实现的小技巧 (1)添加一个基准值 (2)分配合适的 ...
- 强化学习组队学习task02——马尔可夫决策过程及表格型方法
文章目录 一.马尔科夫决策过程 1.马尔科夫链 2.马尔科夫奖励过程 (1)贝尔曼公式(Bellman equation) (2)迭代法 蒙特卡罗办法 动态规划方法 3.马尔科夫决策过程 MDP的价值 ...
- 强化学习组队学习task01——基础
强化学习 一.强化学习基础 二.序列决策过程(Sequential Decision Making) 1.奖励(rewards) 2.序列决策过程 3.动作空间(Action Spaces) 4.Ag ...
- 强化学习组队学习task06——DDPG 算法
文章目录 一.离散动作和连续动作 二.DDPG(Deep Deterministic Policy Gradient) Actor-Critic结构 一.离散动作和连续动作 离散动作与连续动作是相对的 ...
- 胡锐锋:组队学习分享(队长)
组队学习分享(队长) 自我介绍 胡锐锋,现为Datawhale成员,目前担任<统计学习方法习题解答>开源项目的负责人,已工作近8年,由大数据平台研发工程师转变成一位项目管理人.我的人生目标 ...
- 强化学习相关论文阅读笔记之稀疏奖励解决方法
注:该系列文章为强化学习相关论文的阅读笔记,欢迎指正! 论文题目:<深度强化学习中稀疏奖励问题研究综述> 文章目录 1. 论文介绍 2. 论文结构 3. 研究背景 3.1 解决稀疏奖励的必 ...
最新文章
- 2018年『web』开发者不得不知的技术趋势
- 在asp中怎么调用带输出参数的存储过程
- 超越村后端开发(3:安装djangorestframework+序列化+API开发前期准备)
- 和你谈谈数据分析报告
- 数组按时间(字符串-Date)排序
- 使用Spring Boot打造文件文档在线预览平台
- Java Math类的常用方法
- 最长上升子序列(信息学奥赛一本通-T1281)
- 虚拟空间,域名解析,A记录,MX记录,CNAME记录,TTL 等 更多Web服务器相关名词解释
- php获得6个月以前的日期,请问下使用PHP如何获取某个月的所有日期
- Stateflow中的事件执行顺序
- BOW( opencv源码)
- MySql 性能调优策略
- SharePoint 2010 大局观(1~3)
- 电脑爱好者 2008年第24期 12月下
- python词云图片生成不出来_python实现使用词云展示图片
- php screw.so,php_screw
- doris报错:too many filtered rows
- 【渝粤教育】电大中专学前儿童社会教育_1作业 题库
- 投屏电视显示无法连接服务器,无法连接服务器.怎么办?
热门文章
- 关于最近有人恶意诽谤Yeslab的回应!
- 【LeetCode】10. Regular Expression Matching
- java基础50道编程题
- 师傅带徒弟 但是不能 教会徒弟饿死师傅!
- DIV+CSS布局的几点建议
- 赣州服务器系统,赣州排名P级别服务器厂
- vbox linux centos 6,VirtualBox搭建 CentOS7.6
- python脚本常见包_python之各种包
- 合肥一六八2021高考成绩查询,合肥高考成绩查询入口
- git向远程推送代码提示fatal: Authentication failed