作者 | NE时代 编辑 | NE时代智能车
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
有一件事让我对 CNN/Transformer 的纷争特别感兴趣。
这是一些背景信息:
Elon Musk和Yann LeCun(卷积神经网络之父)之间的推文交流
为什么“我们现在很少使用CNN”?这是真的吗?真的都是Transformer吗?
在这篇文章中,我将告诉你我认为谁是对的,更重要的是,我要解释为什么Yann LeCun是对的,以及为什么特斯拉仍然会使用CNN......
首先,我的研究基于特斯拉在2021 年和 2022 年的 AI Day以及 CVPR 2023上的演讲及活动内容。
在这些场合上,特斯拉基本都分享了,感知是通过HydraNet(用于车道和物体)和Occupancy Net(用于3D占据格栅和运动估计)完成。
这些模块以端到端的方式与 Deep Planner 连接在一起。
我想回答的问题是......
“它们其中有使用卷积吗?”
01.
HydraNet 是否使用卷积?
以下是 HydraNet 的最新可用架构(提醒一下,HydraNet 拥有一个主干,多个头,每个头能够解决一项任务):
HydraNet 架构由 3 个部分组成:特征提取、融合和预测
您可以注意到 3 个关键部分:
蓝色,使用 RegNet 进行特征提取
绿色,基于 Transformer 的融合
红色,进行预测的头(物体、车道......)
当然,现在大部分都是基于 Transformer 的......
除了一部分:
RegNet & FPNs!
02.
RegNets内部
RegNet(RNN-Regulated Residual Networks)是进行特征提取的算法。我们可从RegNet: Self-RegulatedNetwork for Image Classification论文得知,这是一个特斯拉大量使用的基于ConvRNN的特征提取器。
ResNet vs RegNet(特斯拉使用右侧的 RegNet)(来源RegNet: Self-RegulatedNetwork for Image Classification)
因此,正如你所看到的,这是一种效果更佳的特征提取方法(至少输出看起来更不错)。并且这是通过使用 ConvRNN 来实现的。这是它的要点:
一、我们从 ResNet 设计开始,这是一个很好的特征提取器。注意到的“构建块”是一组 Conv+BatchNorm+ReLU。
二、在每个输出中,我们通过 RNN进行传递。这是 ConvLSTM 架构,将递归神经网络放入 CNN 中。这有助于解决时间依赖性。
ConvLSTM(来源:Convolutional LSTM Network: A Machine LearningApproach for Precipitation Nowcasting)
三、我们将输出传递到下一阶段,并重复数十层。最后,我们将提取的所有特征进行全局池化,并将其传递给 Transformers。
ConvRNN 架构。在每次卷积之后,我们将其传递给 RNN,然后 RNN 再将其传递给下一层
这就是特斯拉使用的:一个RegNet,其次是特征金字塔网络的FPN。
特征金字塔网络利用多个尺度的信息(来源:Feature Pyramid Networks for Object Detection)
所以我们知道 HydraNet 使用 CNN。接下来看看占据网络。
03.
占用网络
占用网络也使用 RegNet 和 FPN。在本例中,FPN 是双线性 FPN,这意味着它可能用于上采样而不是下采样。
因此,我认为,根据他自己的演讲,Elon Musk是......
错的!
现在,你要问我:
“Jeremy,你怎么知道他们没有用Transformer替换RegNet?”
我认为这不太可能,我会在本文的第二部分告诉你为什么......
04.
为什么特斯拉仍然使用CNN?
为了回答这个问题,我们有 2 个关键问题:
为什么 CNN 在特征提取方面优于 Transformer?
为什么特斯拉选择在Transformers之前使用CNN,而不是直接使用Transformer?
问题一、为什么 CNN 在特征提取方面优于 Transformer?
首先,CNN是为特征提取而构建的。
它实际上是为了取代手动特征提取器而构建的,例如定向梯度的直方图。而 Transformer 并不是为此而构建的,它们是为了发现图像中的“注意力点”,并捕获时间依赖性而构建的。
因此,如果你想使用特征提取,最好使用特征提取器,即CNN。相比Transformer,CNN更快。
打个比方,如果你必须切一块牛排,你更愿意使用像 CNN 这样的肉刀,还是像Transformer这样的瑞士军刀?
现在是第二个问题:
为什么特斯拉不直接使用Transformer?
嗯,这可能是基于他们自己的研究和试验/错误......
但这样做也很有意义:
1、CNN/特征提取和
2、Transformer/融合
我们可以在Transformer之前使用 CNN!
因为CNN允许降低维度,允许捕捉不同模式,允许发现局部和全局特征......
所以基本上,CNN的存在是为了让Transformer的工作更轻松、更快捷。它们不是处理图像,而是处理特征。Transformer在这里不是作为CNN的替代品,而是作为LSTM和RNN的替代品。
“这里有特征,找到注意力点!”
你要处理的会少得多。
总而言之,我们想使用 CNN 进行特征提取,使用 Transformer 进行空间融合(所有特斯拉摄像头)、注意力和时间处理(t-1、t-2 等)。
05
总结
如果我们坚持 CVPR 2023的观点,Yann LeCun 是对的,像特斯拉这样的公司仍然需要使用 CNN。Transformer 很慢,而且它们还没有为特征提取而构建。
特斯拉有一个端到端的架构,使用HydraNet、Occupancy Network和Deep Planner。
HydraNet 使用一个名为 RegNet 的基于 ConvRNN 的特征提取器,该提取器使用 RNN 进行“自我调节”并获得更好的输出。在此之后,它还使用 FPN。
占用网络使用与HydraNet完全相同的特征提取技术,但使用双线性 FPN。
最后,我们意识到 CNN 和 Transformer 可相互配合,而非互相取代。CNN 是一个完美的特征提取器,但在时间依赖性和融合方面表现不佳。
Transformer 是一种多功能工具,是一把瑞士刀,可以完美地处理时间问题,但在特征提取方面不如 CNN。
备注:原文来自Think Autonomous
-END-
『自动驾驶之心知识星球』欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!
① 全网独家视频课程
端到端自动驾驶、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内外最大最专业,近4000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(端到端自动驾驶、世界模型、仿真闭环、2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵