网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
DAGGER algorithm to improve BC【就是在BC中引入了online iteration,2011】
DAGGER 的缺点在于第三步实在是太耗费时间了,可以改进 DAGGER 吗?第三步是不是可以用其他的算法来打标签呢?
改进DAGGER:
Inverse RL & GAIL
Inverse RL
IRL 与 RL 的对比:
IRL的举例:
GAIL
类似于 IRL,GAN 学习了一个目标函数用于生成模型,GAIL 模仿了 GAN 的思想
Connection between IRL & GAIL
改进模仿学习的性能
怎样提升我们的策略模型?
问题一:Multimodal behavior
解决方案:
①输出一个多高斯模型,也就是多峰的叠加的形式
②隐变量模型
③自回归离散
问题二:Non-Markovian behavior
解决方案:
①建模整个观测历史,比如说 LSTM
用 LSTM 和 示教数据 完成机械臂抓取的例子【AAAI 2018】
那么其实在机器人领域,如何 scale up 数据一直是一个很大的问题
斯坦福的李飞飞组提出的 crowdsourcing 的方法来采集很多很多很多人的示教数据,RoboTurk项目出了一种解决方案
模仿学习其实还有一些问题
①人为提供数据,这个数据本身就有限
②人有时候不能很好提供数据,例如对无人机示教、对复杂机器人的示教
③人本身是可以在环境中自由探索的,是否可以借鉴这一点呢?
所以下面我们就想把模仿学习与强化学习结合起来
模仿学习与强化学习结合
模仿学习与强化学习的各自的特点对比
怎么把两者结合起来,既有 Demonstration 又有 Rewards?
(1)最简单直接的结合:预训练和调整 Pretrain and Finetune【应用十分广泛】
也就是说用 Demonstration 预训练一个 Policy(解决 exploration 的问题),然后用 RL 去 improve policy 和解决那些 off-policy 的状态,最终达到超过示教者表现的过程
Pretrain and Finetune 的流程如下:
这里是之前的 DAGGER 算法,可以和 Pretrain and Finetune 进行对比:
Pretrain and Finetune 的应用:
①应用于 AlphaGo【Nature 2016 Silver】
②应用于 Starcraft2【DeepMind工作】
Pretrain and Finetune 的问题:
①在第三步的时候我们之前获得的比较好的 Policy 用强化学习来训练的时候,可能会面临分布不一致的问题
②最开始的 experience 可能是很糟糕的,这样在进行训练时会摧毁 policy network
**解决Pretrain and Finetune 问题的方案:**考虑怎样把 Demonstration 一直保留下来 —— Off-Policy RL
(2)IL 结合 Off-Policy RL:算是对 Pretrain and Finetune 的改进
off-policy RL 可以用任意的 experience data ,例如对Q-Learning来说,只要把它们放到 replay buffer 里面就可以一直用
①形式一:Policy Gradient with Demonstration
应用举例:
②形式二:Q-Learning with Demonstration
(3)另一种结合方式:把 IL 作为一项辅助的损失函数
优化 RL的期望回报 + IL的极大似然
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
片转存中…(img-J9vXNFSK-1715751145328)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新