作者:小鹏汽车
链接:https://www.zhihu.com/question/299700072/answer/887595579
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
首先先回答一下RL在自动驾驶领域目前的应用现状:
先说一下行业内大多数主机厂在自动驾驶领域对于RL的应用:
由于强化学习是一种致力于实现通用智能解决复杂问题的方式,其适用于解决时序问题,而自动驾驶作为典型的“工业人工智能”,过程中包含感知、决策、控制三大环节,需要考虑各种极端工况与场景;
其中感知过程中环境要素实在太复杂,且驾驶任务灵活多变,非时序问题很多,RL在其中很难发挥主要作用,更多是DL的天下,如常用的YOLO及其变式等;只有在决策层面,Model Based RL与Rule based相互配合,其中基于规则的构建来应付大部分常见驾驶场景,但需要不断设计更新;RL来解决规则库内不适用的极端场景与问题。这也是目前行业内很多家主机厂都很“默契”采用的L3-L4算法架构。
而对于一些致力于L4解决方案的科技公司来说:
更多是选择深度强化学习DRL方式,也就是将深度学习DL的感知能力和强化学习RL的决策能力相结合,可以直接根据输入的信息进行控制,是一种更接近人类思维方式的人工智能方法,也是更具有潜力的成熟L4级别解决方案。
传统RL的核心在于根据环境状态序列,找到一套最优控制策略,以实现最大累计期望奖励。也就是不断在环境中试错,不断改进,下图对于RL研究者们应该非常熟悉了,小鹏在此不再赘述基本原理。

但传统的RL,在解决自动驾驶问题上面临一些通用的瓶颈,其根源是“扁平”方法的不适用 。SF(Sensor Fusion)与行为规划的输出是多维度求解问题,而当多维度空间“扁平”后,形成的是一个平坦但非常庞大的状态空间,使得原有trial and error的路径非常曲折漫长,反向传播时,奖励信号过于微弱,此时算法工程师调参的过程必定是煎熬而且“秃”兀。
延伸出具体影响如下:
1.样本效率:尤其是数据生成效率、L4级别专注于极端场景处理,无疑将消耗很多等待时间
2.扩展:RL方法解决长序或非常复杂的动作及状态空间问题将导致维数灾难。
3.泛化:解决当前问题获得最大的累积奖励的策略,反而会由于过度专一,无法平移解决其他问题
4.抽象:时间与空间的状态抽象由于SF的帮助,此类问题在自动驾驶中难度有所降低。
为了解决以上问题,深度强化学习(DRL)由然而生。
其将深度学习应用到期望奖励趋势预测中,一方面有助于与CV方案的结合可以实现end 2 end方案,另外也可以在未知环境下更好预测规律,并减小期望反馈误差。
2013年DQN 1在NIPS上由DeepMind 发表1,后续又在Nature 2015提出改进版本,此方式是DRL的起始,其核心思想为以下三点:
通过Q-Learning使用reward来构造标签;
experience replay(经验池)的方法来解决相关性及非静态分布问题
使用一个CNN(MainNet)产生当前Q值,使用另外一个CNN(Target)产生Target Q值
2015版本算法伪代码如下:

DQN是一种强大的基线智能体,作为初版尝试,在游戏领域实现了很好的通用性。但在工程实践领域,存在无法进行连续动作控制,无法处理长时间记忆(后续加入LSTM改进)和CNN需要精确调参的问题。
后续Deep Mind将A3C(Asynchronous Advantage Actor Critic)和 OpenAI 的同步式变体 A2C 也应用了DQN中(论文链接:https://arxiv.org/abs/1802.01561),但仍然没有很好解决以上问题。
DRL中,使用了深度神经网络的分层强化学习(HRL)目前备受关注,其致力于将一个复杂的强化学习问题分解成几个子问题并分别解决,并想相信可以取得比直接解决整个问题更好的效果。理论上核心思想:以HAM、隐藏学习(封建学习),MAXQ为灵感,实现长期信度分配、结构化搜索与迁移学习,从而使得减少问题搜索的复杂性;但在自动驾驶实践中HRL也存在引入额外的超参数,增加了更新层次代理的级别所产生的非平稳性等问题。
最近几年又出现了几个基于DRL HRL想法启发,并在项目实践中取得了不错的效果,典型有以下几篇:
H-DQN[1]

“我们提出分层DQN(h-DQN)的框架,是一个结合分层值函数,在不同的时域尺度运作,有内部激励的深度强化学习。在最高层的值函数通过内部目标学习策略,较低层的函数通过原子动作学习策略来满足目标。h-DQN允许灵活的目标指定,例如实体和关系的函数。这为复杂环境的探索提供了一个高效的空间。
我们通过两个反馈稀疏、延迟的问题证明我们的方法:(1)一种复杂的离散随机决策过程,(2)雅达利经典游戏“蒙特苏马的复仇”。
分层强化学习FeUdal网络(FuN)
FeUdal网络提出了模块化的结构。受到Hinton的封建强化学习思想的启发,系统的管理者选择一个方向进入隐状态空间,而工人学会通过环境中的动作来实现这个方向。这意味着FuN代表子目标作为隐状态空间中的方向,然后转化为有意义的行为原语。论文介绍了一种方法,能获得更好的长期信度分配,使记忆更易于追踪。
FuN结构:

H-DRLN[2]

论文主要思想:我们提出了一个终身学习系统,它能将知识从一个任务迁移或重新利用到另一个,同时有效地保留先前学到的知识库。该系统通过学习可重用的技能来迁移知识,完成Minecraft中的任务。
这些可重用的技能,我们称之为深度技能网络,随后通过两种技术:(1)深度技能阵列,(2)技能蒸馏,整合到我们提出的分层深度强化学习网络(H-DRLN)的结构中学习技能。
DDPG(Deep Deterministic Policy Gradient)
这是由DeepMind的Lillicrap 等于 2016 年提出,其核心思想是采用卷积神经网络作为策略函数μ 和 Q 函数的模拟,即策略网络和 Q 网络;然后使用深度学习的方法来训练上述神经网络。

2018- ChauffeurNet[3]
开发并使用了ChauffeurNet处理自动驾驶过程中遇到的极端情况,并且可用避免惩罚不良时间的损失对于激励的扰动降低,提升数据产生效率。
综上只是对RL和DRL的研究在自动驾驶领域进行的部分介绍,还有很多空白领域正在等待研究突破。
但是从目前来看,无论是DRL还是RL都取得了在模拟场景(如游戏领域)取得了令人兴奋的成果,自动驾驶领域也基于TORCS与DRL发展出一套成熟可用的自动驾驶仿真系统[4]
即便仍然存在实际应用过程的琐碎的矛盾场景和DRL非常难训练去解决非经典等问题,但相信未来会有更多理论可以开发并应用到自动驾驶场景中,成为L4甚至L5级别无人驾驶主要实现助力。
想了解更多自动驾驶与深度学习相关内容,请关注小鹏汽车知乎官方机构号。
谢谢大家!
参考
^论文链接 https://arxiv.org/abs/1604.06057
^论文链接 https://arxiv.org/abs/1604.07255
^Learning to Drive by Imitating the Best and Synthesizing the Worst https://arxiv.org/abs/1812.03079v1
^Deep Reinforcement Learning and Control —— Spring 2017, CMU 10703 https://katefvision.github.io/
作者:「已注销」
链接:https://www.zhihu.com/question/299700072/answer/660993644
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
做了两年多的SLAM,最近迷惑了……
SLAM只能获取环境中的地图;就算加上DL,target recognition,segmentation等手段,也只能获取环境信息,顶多就是能够对环境信息进行一定程度上的感知(当然,很多甚至算不上感知),还是无法进行导航与控制啊?难道最终靠写死循环进行路径规划?(见过某智能比赛绝大部分队伍就这么玩的)
其实这个问题@周志华老师谈过http://www.ccf.org.cn/ccf/readPDF/readOnline?SiteID=122&ContentID=622414,当前大部分所谓的“人工智能”,只能叫“智能”,离真正的人工智能还相差甚远(大佬轻喷)……或者暂时叫“弱人工智能”而强化学习可能刚好是通向人工智能间的桥梁之一—中级人工智能……
回到问题上,其实做这部分工作的人也不少。本处以几个典型案例进行简要说明,不足之处欢迎指出……
我们知道,无论对于无人机还是无人车,通过传感器(视觉、激光、IMU、GNSS等)之后,都需要进行规划路径,否则还是无法达到最终的目的……
强化学习通过agent与environment进行交互,通过获取reward,并且通过调整其策略,通过平衡exploration与exploitation(探索与利用),最大化奖励函数,最终获取最大的累积reward。。强化学习很早之前就已经发展成熟,只是这几年变得更加火热……
此类工作其实很早之前就已经有人尝试……
1、Learning Monocular Reactive UAV Control in Cluttered Natural Environments(http://arxiv.org/abs/1211.1690)
12年左右的,应该是较早的一篇文章,主要思想是通过使用模仿学习(imitation learning)对无人机进行自主控制、导航及避障。作者通过imitation learning训练无人机,在一个室内和室外分别进行实验,最终取得的效果可以观看论文视频……本文是DRL火之前的工作,个人觉得借鉴意义较大……
2、CAD2RL: Real Single-Image Flight Without a Single Real Image(https://arxiv.org/abs/1611.04201)

16年左右的工作,在本地进行模仿其进行训练,并且迁移到未知环境中(这是必然步骤)。输入为单RGB图像,不需要进行3D重建或者别的工作,本地训练好之后,能够迁移到未知环境(很遗憾,只在室内)
3、Toward Low-Flying Autonomous MAV Trail Navigation using Deep Neural Networks for Environmental Awareness(https://arxiv.org/abs/1705.02550v3)

16年的,这篇文章其实并没有用强化学习,但是个人觉得它对无人机、无人车提供了一个初入的方向。文章在TX2上进行,通过他们提出的Trail DNN进行方向确定(左、中、右及三者偏转的角度六个参量),使用改进版本的YOLO与DSO SLAM进行目标识别避障,利用光流和激光雷达定高,在野外3Km场地上成功实验……
本文是DL与SLAM的较好的尝试吧,使用的技术都比较简单,容易实现……主要是,代码开源,可以自己去尝试……不知道后续工作会不会加入DRL……
4、Reinforced Cross-Modal Matching and Self-Supervised Imitation Learning for Vision-Language Navigation(https://arxiv.org/abs/1811.10092?context=cs.CL)
CVPR2019的文章,王威廉老师组的工作……知乎上不少人在炒……https://baijiahao.baidu.com/s?id=1627129716741814797&wfr=spider&for=pc

噱头大于实质内容吧,本处不赘述……
5、Google brain的三篇文章,前两篇来自ICRA,第三篇是最近的工作:
Learning Navigation Behaviors End-to-End with AutoRL;
PRM-RL: Long-range Robotic Navigation Tasks by Combining Reinforcement Learning and
Sampling-based Planning;
Long-Range Indoor Navigation with PRM-RL。


三篇文章是一个组里人做的,论文有放实测视频……
个人觉得,这几篇文章其实是很好的工作,利用较少的传感器(1D激光)就能获得较好的效果……而且在未知环境中取得不错的实测结果,是未来不错的方向……因为文章没有啃透,不敢妄评……
17年之前,很多人还怀疑DL和SLAM结合有没有用,结果ICRA18语义SLAM满天飞,会不会19或者20变成结合DRL的SLAM满天飞,拭目以待……
不足之处是,都没有开源代码……
只是最近读的一点文章,当然还有很多工作,没有读到,一点愚见,大佬们轻拍;也欢迎大佬们多多交流指教,在人工智障的路上一去不复返23333333
作者:zzd12
链接:https://www.zhihu.com/question/299700072/answer/662279576
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
先说句题外话,这个问题如果换成“强化学习是否会成为自动驾驶决策规划的最终选择”对我而言可能会更有意思些,不过评论区估计要变成口水区了。自觉对DRL和Autonomous Driving里的决策规划还算是初入门径,所以也就谈点自己的体会。不过笔者比较懒(最近在肝论文),所以也就不贴具体的索引和文献,就当随笔了~~
大家一开始可能会忽视一个很关键的问题:为什么要在自动驾驶里面用DRL?我的看法是因为传统方法搞不定。再具体点说决策规划用传统的决策树和状态机之类的方法局限性很大,维护成本高,也无法应对这个非常weird的世界里的各种场景。另一方面轨迹规划也不简单,实时性和稳定性在实际中直接过滤掉大部分运动规划算法。简言之,传统的工作流很难直接解决自动驾驶中的核心问题。自然而然,大家就开始探讨利用AI技术来实现decision and planning。
先扯点题外话。DL在感知方向上应用目前来看已经很成熟了,但是从现在的目标检测跟踪到自动驾驶所需要的完整语义环境的构建还有很大的步子要迈,单纯依靠DL和IL用端到端的方式还没有看到实质性的成果。不过特斯拉显然是这个方向的拥护者,从最近Tesla的Autonomy Day上可能很清晰的看到他们的技术路线,而其中的shadow mode也即影子模式称得上是一种真正可商业落地的学习机制。
但是这种狭义AI真的能够完全解决问题吗?可能大部分还是无法相信缺乏解释性的大规模的神经网络和监督学习机制完全主导整个工业流程和驾驶场景。而RL作为一种更高级的学习范式从很多角度更像是AI来做决策的学习机制。MDP和序贯决策比单帧的模仿更符合人类驾驶员的思维。目前学术和工业界的应用也非常多,比较典型的就是拿来作变道决策。可以说像这样的许多决策子问题理论上都有很漂亮的结果了,但是落地依旧很难,莫说完全的依靠DRL的自主决策。原因也很显然:样本利用率低,仿真和现实存在鸿沟。对于企业来讲,只能在仿真器里演示但无法大规模的部署到车上,并且能够有类似shadow mode的机制能够在线优化,终究是不行的。另一方面,把DL里调参的工作量转变成RL里调reward function的工作量看起来并没有显得省力气了很多(逆强化学习如果深究的话就会知道目前来说实际应用有诸多限制)。
所以总结来说,我想要强调的两点是DRL真正可行的落地闭环和如何将自动驾驶决策规划转变成RL问题,这两点本身也相互关联。这里我一直疑惑也是一直想探讨的一点是稀疏奖励下的高效RL算法和现实世界的奖励机制这二者之间的权衡。举个例子,假如RL的目标是尽可能在一个交通流里最大化智能体的平局时速或者说最小化目标点到达时间,那么最好的期望是我只设置一个目标点处的正奖励,任意情况下的事故都给负奖励,然后RL算法能够最终找到最优或者较优策略。但是现实场景则完全不同,舒适性和安全性以及aggressive的程度等等都是需要考量的评价因素,其中一些因素还相互矛盾。而人在驾驶行为中确实是会依照这些因人而异的评价指标来具体操作和得到所谓的乘车体验。所以建立RL问题本身就是一个不小的难题,仅仅从reward func的角度看,很多时候我们都不确信是不是太刁难RL算法了抑或是RL算法本身需要改进。
当然RL算法目前的缺点仍旧无法忽视,探索和利用,有模型还是无模型等等都还是open problem。但是在gym这类的benchmark上尽可能用RL方法达到更高的性能和用RL方法解决自动驾驶完全是两个问题,难度也不在一个层次。所以写到最后我也没有什么vision和idea分享,希望过一两年能有新的体会(´・_・`)