(本文对应lecture 1和2,文中的图片来自于对课程课件截图的小修小改)

1. 强化学习简介

本节介绍在课程中我认为对于理解强化学习框架有用的一些概念。更为详细的可以参照我的其他博客。

1.1 强化学习框架中的术语

用于描述强化学习问题的核心术语有:状态state,观测observation, 动作action,策略policy, 状态转移概率state transitions (or environment dynamics)。这里需要区分状态和观测这两个概念,可以把状态理解为最底层的一个source,由状态产生了观测,如果只是已知观测,并将其映射到动作的概率分布,即πθ(at∣ot)\pi_{\theta}(\bold a_t | \bold o_t)πθ​(at​∣ot​),这时是partially observed的情况,此时不满足Markov property的假设(见下图,可以通过将概率图部分的状态遮住,从而可以看出每一对(ot,at)(o_t, a_t)(ot​,at​)的关系是不明确的)。然而如果已知了状态,即πθ(at∣st)\pi_{\theta}(\bold a_t | \bold s_t)πθ​(at​∣st​),则是fully observed,该情况也满足Markov property。

1.2 强化学习与监督学习的区别

lecture 1中提到了强化学习与监督学习方法不一样的两个地方,第一个是在强化学习中,数据并不是独立同分布的(i.i.d),第二,强化学习并没有准确的标签,起到“监督”作用的只有每一个episode结束之后(对应的simulator满足episodic case)的reward值。对比标准的监督学习中,训练集和测试集必须是独立同分布的,并且训练过程中已知正确的标签。

2. 模仿学习(Imitation Learning)

2.1 模仿学习的基本流程与思路

模仿学习(behavior cloning)本质上不属于强化学习,而是一种监督学习的方法。基本流程就是先获取expert的训练数据,如果我们要学习的是策略,则一般以 ot\bold o_tot​作为输入数据,产生的动作 at\bold a_tat​作为标签,通过用监督学习的方法(例如设计MSE均方差损失函数)对参数化的策略函数进行迭代修正。

这类方法的思路在不用一些Trick的前提下是不能work的。原因就在于用于训练智能体的数据分布与智能体采取策略产生的数据分布是不一样的。直观解释可以参考下图:


这里的training trajectory(黑线)指的是用于训练agent的训练数据,红线(expected)指的是通过agent所作出的动作所获取的数据。很明显,这两种数据的概率分布肯定是不相等的。知道了这种现象出现的原因,那么以下这两种的解决思路就比较明显了,第一种是让pπθp_{\pi_{\theta}}pπθ​​不断近似pdatap_{\text{data}}pdata​,另一种方法是反过来。两种方法中相对容易的是后者。思考如何改进训练数据的概率分布,一种最直观的思路就是获取更多的数据,这类方法被叫做DAgger:思路就是通过agent产生的动作产生一些数据ot\bold o_tot​,从而将这些数据重新添加(aggregate)到dataset中。

从下图可以看出,DAgger的直观思想就是让红线跟训练数据的其中一条近似。

2.2 算法具体示例

本节课以16年NVIDIA发布的文章《End to End Learning for Self-Driving Cars》为例讲解模仿学习的基本思路与算法流程。General的思路与上一节一样。

该方法分为训练阶段和测试阶段(测试阶段分两个阶段,第一个阶段在模拟器上进行,第二个阶段用实车上路测试。)

训练阶段是:训练系统如下所示,采用的类似DAgger的trick是蓝框的部分,作者们在车上装了三个摄像头,left和right camera用于表示偏离中心的数据。框图最上方表示训练数据,这里的训练数据需要做一些预处理以便于与CNN的输出数据保持形式上的一致。

测试阶段是:测试阶段包括仿真测试和实车的on-road test。仿真阶段流程图如下所示,根据实车采集到的人类驾驶员操作的视频流数据,输入给CNN。模拟器会记录off-center distance, yaw的值,虚拟车辆(由CNN操控)的行驶距离,一旦off-center distance超过1m, 虚拟人类将接管该车辆,之后虚拟车辆被reset到测试视频流数据的ground truth位置。

衡量测试结果好坏的指标就是车辆能够自主驾驶占总驾驶时间的百分比。这里的假设是:真实驾驶环境中的人为干预需要耗时6秒,这6秒钟内包括人类重新控制车,将其调整到道路中心,重启自动驾驶模式。

This is the time required
for a human to retake control of the vehicle, re-center it, and then restart the self-steering mode.

on-road test中的衡量算法表现的依据依然是车辆自主驾驶(autonomous steering)的时间比例。

CS285课程笔记(1)——模仿学习(Imitation Learning)相关推荐

  1. 机器人学习Robot Learning之模仿学习Imitation Learning的发展

    1 前言 在上一篇文章最前沿:机器人学习Robot Learning的发展 - 知乎专栏 中,我们介绍了机器人学习Robot Learning这个方向的发展趋势,并介绍了部分基于DRL的方法,那么在本 ...

  2. 【加州理工】什么是模仿学习(Imitation Learning(模仿学习), 这62页ppt带你了解进展...

    来源:专知 [导读]Imitation Learning(模仿学习)机器学习新的研究热点之一,因其能很好的解决强化学习中的多步决策(sequential decision)问题,近段时间得到了广泛关注 ...

  3. CS285课程笔记(4)——Exploration Method

    通过近期对强化学习和多智能体强化学习相关论文的不断阅读发现,强化学习中的data efficiency或sample efficiency真的可以算是一个可以好好钻研的课题了,我觉得Explorati ...

  4. 机器学习 | 台大林轩田机器学习基石课程笔记3 --- Types of Learning

    课程主页 课程视频和PPT 上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类(前提数据是线性可分的,在高维空间中,可以用一个超平面完全 ...

  5. CS285课程笔记(5.(1))——从概率图角度理解强化学习(变分推断原理+VAE)

    Lecture 18, 19 (2020版)这两节课的核心内容就是如何把强化学习问题(又可以称为最优控制问题)转化为一个基于概率图模型的推断问题,这里的推断又可以进一步细分为精确推断(Exact In ...

  6. 吴恩达机器学习课程笔记一

    吴恩达机器学习课程笔记 前言 监督学习---`Supervised learning` 无监督学习---`Unsupervised learning` 聚类 异常检测 降维 增强学习---`Reinf ...

  7. 【原】机器学习公开课 目录(课程笔记、测验习题答案、编程作业源码)...持续更新......

    之前看过的机器学习课程.本文是相关课程笔记.习题答案.作业源码的电梯. 1 Coursera 斯坦福机器学习课程,Andrew Ng 1.1 说明 课程地址和软件下载 Coursera连接不上(视频无 ...

  8. imitation learning 前沿论文

    1 前言 在上一篇文章最前沿:机器人学习Robot Learning的发展 - 知乎专栏 中,我们介绍了机器人学习Robot Learning这个方向的发展趋势,并介绍了部分基于DRL的方法,那么在本 ...

  9. 【强化学习笔记】2020 李宏毅 强化学习课程笔记(PPO、Q-Learning、Actor + Critic、Sparse Reward、IRL)

    前言 如果你对这篇文章感兴趣,可以点击「[访客必读 - 指引页]一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接. 文章目录 前言 Introduction Two Learning Mod ...

最新文章

  1. R语言使用hexSticker包将lattice包可视化的结果转换为六角图(六角贴、六角形贴纸、lattice plot to hex sticker)
  2. git使用(一)----git安装
  3. supercharge快充_华为10V 2A充电器曝光,支持20W电荷泵快充
  4. linux 控制台输入命令无效_解决linux下终端无法输入的假死问题
  5. 【腾讯Bugly干货分享】Android内存优化总结实践
  6. html5 渐变按钮练习
  7. 《Microsoft SQL Server 2008 Internals》读书笔记--目录索引
  8. hql懒加载后判断对象是否存在_JPA数据懒加载LAZY和实时加载EAGER(二) - Mr.Simm - 博客园...
  9. 使用bat一键修改ip地址(包括静态、动态ip)
  10. Cocos2D-x设计模式发掘之二:二段构建模式 -----------cocos2d-x3.0正式版本(7.22)
  11. 分支定界法求解整数规划
  12. RK3399 4.4内核 修改DDR频率
  13. html单元格溢出,excel如何超出单元格显示
  14. 序列化对象互转--Jackson中的ObjectMapper,解决超类派生问题,序列化问题
  15. Linux基础-制作本地yum仓库(离线安装软件)
  16. 移动平台开发工程训练
  17. 软件开发向大数据开发过渡_如何将职业过渡到Web开发
  18. 【Linux】实验报告8 Linux文件系统
  19. Linux终端下载资源的办法
  20. ssh连接linux_使用内网穿透访问内网ssh图文教程

热门文章

  1. docker容器启动失败查看日志
  2. Http Status Code 套餐合集(转载)
  3. Mathematica 爬虫系列 火车站站查询
  4. html+reset+css,关于优酷网reset.css参考
  5. Oracle插入数据的foreach问题
  6. 【Linux】【Vim操作指南2】| vim分屏快捷操作
  7. 低级格式化硬盘工具(支持移动硬盘)http://www.tudou8.cn/post/332.html
  8. Python获取Windows软件安装路径
  9. 2020 7.12 -- 7.13 两场牛客多校 + 两场 unrated的cf的补题
  10. 7 975EE与i7980XE两种CPU的峰值计算能力(每秒多少次浮点运