作者 | 谭日成 编辑 | 自动驾驶之心
原文链接:https://zhuanlan.zhihu.com/p/702856958
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
端到端自动驾驶论文阅读-4(来自AlphaGo,AlphaGoZero,AlphaZero,Muzero的启示,自动驾驶中世界模型的思想来源)
总论:在决策规划领域:alpha系列指出了完美环境下通过RL算法可以超越人类,muzero指出了将无法明确建模和定义的环境可以通过mode base学习将算法归一化到alpha系列,这不就有了吗!!!
数学真是好东西,数学中用到的归纳,递推,归一化,逻辑符号运算,群概念等等,提供了大量的研究可用到的思想武器。抽象能力上去了,问题解决的能力也上去了。人类的发展史就是抽象能力提升的发展史。。
关于世界模型:首先有个误区,世界模型和深度神经网络学习到的世界是一个概念和具体的区别。象棋棋盘及相关规则就是世界模型的一个具体,围棋也是,深度学习网络学习到的世界也是。深度学习描述抽象世界是过程不是结果。model base是指的世界模型base,而不是深度学习模型base。
端到端自动驾驶决策规划问题:
目前比较常见的做法还是转化为混合决策模式,基于障碍物预测+静态map,先基于规则生成若干轨迹,最后用模型打分剪枝的思路。
上述这个框架的问题是,对障碍物检测+预测+rule规划+cost设计都需要很精巧的设计,特征在几个模块间需要很小心的传递,那么有一个问题:能不能抛却障碍物预测+检测(本人对静态元素检测更熟悉的私心),但又不陷入直接端到端大力出奇迹的思路。找到一种新的更简洁的框架,同时也能最大限度的利用归纳偏置,专家经验(人类驾驶员),学习起来难度相对没那么高的范式了?
带着这个问题,自然想到了Muzero论文(tesla2021年aiday也提到了),毕竟AlphaGo(完全信息,完美环境,规则限定,人类经验)-AlphaGo Zero(完全信息,完美环境,规则限定)-AlphaZero(完全信息,完美环境)-Muzero(非完美环境,规则自己学习,局限:环境确定性相对来说还是比较高的。需要一个没那么吃环境的算法。。),就符合这个演进.
DeepMind下棋系列演化
首先祖师爷
Mastering the Game of Go with Deep Neural Networks and Tree Search(AlphaGo)
参考:
深度解读 AlphaGo 算法原理
liadrinz:【AlphaGo系列-1】AlphaGo详解 这个还对利用MCTS搜索相比网络argmax直出action的好处做了解释(太复杂,个人还没弄懂。。)
文章首先介绍了背景:之前最好的Go的算法也是基于MCTS
However, prior work has been limited to shallow policies or value functions based on a linear
combination of input features.
所以AlphaGo解决了一个问题,就是把深度神经网络引入了进来。。没想到竟如此的自然(当然要work起来很难的)
Our program AlphaGo efficiently combines the policy and value networks with MCTS.
该文不是重点,我们就大概看下思路和框架,来看看两个networks和mcts是怎么结合起来的。
可总结为:两个网络,一个过程(如下图)
两个网络(策略网络(判定当前状态下,action的分布),值网络(当前状态下的局面))
一个过程(MCTS搜索模拟过程)
如果大家下过棋,这个过程很直观的(在当前状态,自己内心会左右互搏,进行推演,推演时会用类似于两个网络判定每一步action的好坏,选取最好的继续推演,最后反推出当前状态哪一步最好,也算将归纳偏执用于算法的典型范式。棋力的高低就是你推演精度和推演步数的比拼)
Mastering the Game of Go without Human Knowledge(AlphaGoZero)
优达学城(Udacity):AlphaGo Zero 简明工作原理
个人视角alphago的问题(AlphaGozero的动机):
MCTS推理过程中,计算是挺低效的,需要不断的rollout和BP
人类棋谱初始化,相对于围棋宇宙级的决策空间,不一定是最优的(读这篇文章后的马后炮行为。。)
模型太碎片化,分为策略网络和价值网络,分开学习
个人觉得研究价值没有alphago大。总结起来就是主要改进了对弈质量(自监督数据的质量),每一步都通过巨大的MCTS搜索出最优action(alphago中使用策略网络出的),来训练网络,换句话就是(用MCTS结果来监督模型)。
总结就是让模型做了更多事情,方向是改进了流程和训练数据的质量。。。
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm(AlphaZero)
一然:AlphaZero背后的算法原理解析
是AlphaGoZero的泛化,核心的算法一致
Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model(MuZero)
如何评价DeepMind新提出的MuZero算法?
Alex.Zhang:被MuZero/EfficientZero圈粉了
MuZero Intuition 一作亲自写的教程
文章动机及思路历程的推测:
祖辈们的缺陷:有了前面三个alpha工作的铺垫,在完美环境下确实问题解决了,那么有个问题,他首先得有完美环境和规则啊。没有完美环境,他玩不转啊
锐意进取的后生:muzero要解决一个问题,怎么推广到没那么好定义或者建模环境的场景,让alpha深度强化学习大法真正造福人类。这不现实的环境我不好弄,用网络学习一个当前环境的映射我有一打,于是基于深度学习来抽象环境的muzero出现了。
论文中指出:历史事实说明model free RL不太行。。,需要Model base(世界线连上了,wayve的世界模型,tesla的世界模型这不就来了吗),题外话-个人觉得其实从扩宽人类能力边界来说,目前为止deepmind是要比openai更牛皮的
过往(muzero之前)model base的问题:
核心思想:
整体框架流程
怎么训练的了,我们跟随上面这张图片,
假定我们从一个棋局的状态s0出发,我们有一个模型,该模型有两部分r,st+1=g(st,at), p,v= f(st),
第一步:通过这个模型结合MCTS,我们会得到一个策略pi1(p,v,r),接下来在pi1的基础上进行得到pi2(p,v,r),pi3(p,v,r),piK(p,v,r),将K步策略保存下来,就是所谓的replay buffer。第二步:放电影,把保存的策略复现,这个时候,用g依次进行状态转移(a1,a2...aK),会得到影藏状态表征(feature1,r1,feature2,r2...featureK,rK),将这个feature分别输入f,得(p1,v1,p2,v2,..pK,vK).
第三步:想一想,第一步和第二步的区别在哪里?其实就是第一步是将a作用在棋盘上,第二步是将a作用在隐变量feature上,因为作者认为一个DMP模型三要素是P,V,R,只要这三个要素等价,那么DMP就是等价的,在这个里面就是第一步保存的p,v,r和第二步回放产生的pvr相等,那么这个DMP就相等,那么g就学到了状态转移!!!!整个学习过程完成。
接下来看muzero对自动驾驶端到端的启发
第一个问题,模型为什么要解耦成g,f两部分,个人认为本质上这个g就是充当现实世界和模型世界的桥梁,也是这篇论文的精髓,那怎么起作用了?就是g学到了这个世界的动力学参数(抽象的),能够完整的描述系统的动态变化,即对系统进行了参数建模(让模型学习)。当然这个里面g之所以可以学出来,是因为棋盘方便采样出监督数据(state简单,而自动驾驶相关的state太大,人类专家数据是否充分足够?)。
policy,value比较简单,然而自动驾驶的policy,value复杂的多,怎么进行有效的监督,能够让g平稳的学习,也是个问题?
MCTS在自动驾驶里怎么定义离散状态,定义到什么尺度,将会决定这是不是能够简化到可以有效的在有限的时间内模拟。
综合起来想利用MuZero的思想来做自动驾驶的规控,action的定义是关键!怎么对问题进行简化是关键,欢迎大家讨论!!!
端到端自动驾驶论文阅读5-世界模型的应用
背景
上篇文章已经指出了世界模型对自动驾驶的意义,这篇文章我们重点考察怎么把世界模型应用到端到端自动驾驶,废话不多说,直接开始看论文吧
GitHub - HaoranZhuExplorer/World-Models-Autonomous-Driving-Latest-Survey: A curated list of world models for autonomous driving. Keep updated.
https://github.com/PJLab-ADG/awesome-knowledge-driven-AD
https://nehzux.github.io/NewInML2022NeurIPS/assets/YoshuaBengio-NewInML-NeurIPS-28nov2022.pdf
一些个人见解
观点1:看到很多WM-AD方面的论文都重在用当前context预测未来context,这个有点偏离了用WM描述世界内在状态变化的核心,加大了学习难度。因为很多东西和细节(像MuZero里提到的),对于DMP(马尔科夫决策模型)是不相关的,要使用世界模型一定是一个还不错的抽象,不然计算量会爆炸!!个人觉得类似MuZero里那种学出隐变量(状态),能够描述最核心的系统组件(transition)就行,隐去必要的细节,比较优雅,所以个人会倾向于怎么简化WM的描述,怎么更好的简洁的方式来学习g(动态函数)和表达隐状态的研究工作。也会朝这个方向思考方案的设计!
观点2:动态agent预测加静态map的旋转平移,从某种意义等价于Muzero里面提出的对DMP起决定意义的g函数(dynamic function),所以预测模型又可以叫小world model,而对预测模型进行适当的外推和去依赖,很大程度就可以用来做自动驾驶里面的WM了。
观点3:取决于目前端到端效果的并不是世界模型,而是reward fuction,就是对轨迹的打分,类似于LLM里面怎么评价生成的好坏。
观点4:文本可以轻易的做到很长,但轨迹受限于真实世界,监督必然很难做到充分,相对起来很稀疏,也无法大量的构建出长距离的高质量轨迹。所以优质的长距轨迹的能力来源不太可能是真实自动驾驶环境,而是其他某种常识系统或者因果系统或规则系统,可能是LLM,也可能是一个数学符号系统? 所以个人倾向于目前阶段长距类似用A*等启发式方式获取,端到端主要关注短程的轨迹。所以是一个两级系统类似于 (长距决策)prompt->端到端->局部planner轨迹的方式。
Towards Knowledge-driven Autonomous Driving(先来一篇综述)
黄浴:知识驱动的自动驾驶:综述
Driving into the Future: Multiview Visual Forecasting and Planning with World Model for Autonomous Driving
核心动机:直观上学习一个世界模型,给出当前环境和车辆actions,能够输出未来状态,从而判定动作的合理性。
问题:文章提出要学习一个world model很困难,包括:适用于AD的WM需要高分辨率,生成一致性多视图困难,所以之前的工作都集中在单视图生成,要灵活地适应各种不同的情况,如变化的天气、照明、自我行为和道路/障碍物/车辆布局,这是一项具有挑战性的工作
那么文档中怎么来克服这些困难了?
看整体架构图:
文中比较有意思的部分在下面这段话,总结起来可以丛非标注数据来学习worldmodel,然后来增强智驾的cornercase场景的效果。有点预训练大模型那个味了
2024年一篇最新的类似的论文:Unleashing Generalization of End-to-End Autonomous Driving with Controllable Long Video Generation
Planning with Adaptive World Models for Autonomous Driving(卡内基梅隆大学)
核心意思是不同城市,或者同一城市不同情况,交通参与者行为不同。那么就用一个网络来预测IDM的参数,更精细化的利用MPC(模型预测控制)改善基于规则的效果,这也是一种思路。以规则为核心,模型为辅预测规则的参数。整体流程如下
Mastering Atari Games with Limited Data
这篇文章遵循了完美的深度学习任务优化的范式,个人觉得很有意思,也很优雅,总结起来就是:
选取一个稳固的baseline benchmark,基于对任务的深刻理解,洞察出baseline的缺点,提出自己的改进方案,设计消融实验验证方案假设,最终达到很好的效果!
北京智源人工智能研究院:清华高阳:EfficientZero,一种采样高效的强化学习算法|报告详解
还有个V2哈哈,不过我没有兴趣看了EfficientZero V2: Mastering Discrete and Continuous Control with Limited Data
Generative Image Dynamics (CVPR24 best paper)
总结起来就是让静止的画面可以通过指定一个动作互动起来。。,想象你对画面中的车辆施加一个动作,这个车就动起来了。。权作为扩充阅读。。
效果见主页:
https://generative-dynamics.github.io
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵