点击下方卡片,关注 「AI视界引擎」 公众号
论文:https://arxiv.org/abs/2311.15599
模型文件: https://huggingface.co/DingXiaoH/UniRepLKNet/tree/main
主页:https://invictus717.github.io/UniRepLKNet/
GitHub(已经放出所有代码,模型,实验脚本): https://github.com/AILab-CVC/UniRepLKNet
太长不看版
问:这篇文章做出了什么贡献?
答:专门用于大核CNN架构设计的四条guideline,一种名为UniRepLKNet的强力backbone(只用ImageNet-22K预训练,精度和速度SOTA,ImageNet达到88%, COCO达到56.4 box AP,ADE20K达到55.6 mIoU,实际测速优势很大),在时序预测的超大数据上用这一为图像设计的backbone达到SOTA水平(全球气温和风速预测,前SOTA是发在Nature子刊上专门为此设计的Transformer),在点云、音频、视频上凭着极为简单的预处理方式和毫无改变的模型结构均超过或接近SOTA水平。
问:为什么在Transformer大一统各个模态的时代还要研究CNN?
答:Transformer和CNN只不过是相互交融的两种结构设计思路罢了,没有理由认为前者具有本质的优越性。我们做研究就是为了修正人类对未知事物的认知。“Transformer大一统各个模态”正是本文试图修正的认知。正如2022年初ConvNeXt、RepLKNet和另外一些工作问世之前,“Transformer在图像特别是语义分割和目标检测等下游任务上吊打CNN”是主流认知,而当时这几篇工作将这一认知修正为“CNN和Transformer在图像任务上差不多,在其他模态上Transformer还是吊打CNN的”。
我们要将其进一步修正:在点云、音频、视频上,CNN比我们想象的强太多了;在时序预测这种并不是CNN传统强项的领域(LSTM等曾是主流,最近两年Transformer越来越多),CNN都能超过Transformer,成功将其“偷家”;CNN在大一统这一点上可能不弱于Transformer。
大卷积核CNN架构设计
2022年我在RepLKNet里提出了用超大卷积核(从13x13到31x31)来构建现代CNN以及正确使用超大卷积核的几个设计原则。但从架构层面看,RepLKNet只是简单地用了Swin Transformer的整体架构,并没有做什么改动。SLaK将kernel size进一步增大到了51x51,但其简单采用了ConvNeXt的架构。总得来讲,当前大核CNN架构设计基本是二选一:要么遵循现有的CNN设计原则,要么遵循现有的Transformer设计原则。
我们不禁要问:这样的架构能充分发挥大卷积核的优势吗?
传统的卷积网络架构具有什么样的共性呢?我们注意到,当我们向网络中添加一个3x3或5x5卷积层时,我们实际上期望它同时产生三个作用:增大感受野、提高抽象层次(例如从线条到纹理,从纹理到物体的局部)、通过增加深度而一般地提高表征能力(越深,参数越多,非线性越多,拟合能力越高)。那我们应该遵循怎样的原则去设计大卷积核CNN架构?
本文指出,我们应该解耦上述三种要素,需要什么效果就用对应的结构来实现。
- 用少量大卷积核保证大感受野。
- 用depthwise 3x3等小卷积提高特征抽象层次。
- 用一些高效结构(如SE Block、Bottleneck structure等)来提高模型的深度从而增强其一般的表示能力。
我们能够实现这样的解耦,正是大卷积核的本质优势所保证的,即不依赖深度堆叠的大感受野。在这一思想的指导下,我们进行了一系列系统的研究,提出了大卷积核CNN设计的四条Architectural Guidelines,简单概括如下:
- 关于局部结构设计:用一些像SE或bottleneck之类的高效结构来增加深度。
- 关于重参数化:用膨胀卷积来捕捉稀疏特征。并提出了一个子模块叫Dilated Reparam Block,这个模块中除了大核卷积以外,还用了并行的膨胀卷积,而且整个block可以等价转换为一个大核卷积。这是因为小kernel+膨胀卷积等价于大kernel+非膨胀卷积。如下图所示。
- 关于kernel size:根据下游任务及所采用的具体框架来选定kernel size。例如,对语义分割任务上的UperNet而言,backbone中的低层feature过早地获得过大的感受野可能会产生负面效果。但这并不意味着大kernel会降低模型的表征能力或最终feature的质量!RepLKNet的“kernel size越大越涨点”的结论并没有被推翻(RepLKNet做语义分割用的是DeepLabv3,不依赖于低层的特征的局部性),只是被修正了。
- 关于scaling law:对一个已经用了很多大kernel的小模型而言,当增加模型的深度时(例如从Tiny级别模型的18层增加到Base级别的36层),增加的那些block应该用depthwise 3x3,不用再增加大kernel了,感受野已经足够大了,但用这么高效的操作来提高特征抽象层次总是有好处的。
图表 1:Dilated Reparam Block可以等价转换为一个大核卷积
根据这些guideline,我们提出的UniRepLKNet模型结构如下,非常非常简单:每个block主要由三部分组成:depthwise conv, SE Block, FFN。其中depthwise conv可以是大卷积核(上述的Dilated Reparam Block),也可以只是depthwise 3x3。
图表 2:架构设计
将UniRepLKNet 用于其他模态的极简设计
出于对简洁和通用性的永恒追求,将UniRepLKNet用于其他模态时,我们不对模型架构主体做任何改变(以下实验用的全都是UniRepLKNet-Small),而只是将视频、音频、点云、时序数据给处理成C x H x W的embedding map,正如我们将图像表示成3 x H x W的张量一样。例如,
- 我们把音频的频谱图(T x F)看成是一幅单通道图像,即C=1, H=T, W=F;
- 我们将点云进行三视图投影,得到三幅单通道图像,所以C=3, H和W可以随意指定;
- 我们将视频中的各帧拼接到一起,极为简单地得到一张大图(例如,16帧的3 x 224 x 224视频拼接得到3 x 896 x 896的输入);
- 对时序数据,我们借鉴CorrFormer中的embedding layer将数据转换为隐空间中的张量然后简单粗暴地将其reshape成一幅单通道图像。
后文展示的结果将会表明,如此简单的设计产生的效果是极为优秀的。
结果
ImageNet、COCO、ADE20K
作为图像模态中的老三样,ImageNet、COCO、ADE20K上的结果自然是不能少。我们最多只用ImageNet-22K预训练,没有用更大的数据。
虽然大核CNN本来不是很重视ImageNet(因为图像分类任务对表征能力和感受野的要求不高,发挥不出大kernel的潜力),但UniRepLKNet还是超过了最新的诸多模型,其实际测速的结果尤为喜人。例如,UniRepLKNet-XL的ImageNet精度达到88%,而且实际速度是DeiT III-L的三倍。量级较小的UniRepLKNet相对于FastViT等专门设计的轻量级模型的优势也非常明显。
在COCO目标检测任务上,我们最强大的competitor是InternImage:UniRepLKNet-L在COCO上不及InternImage-L,但是UniRepLKnet-XL超过了InternImage-XL。考虑到InternImage团队在目标检测领域的积淀非常深厚,我们达到这一效果也算很不容易了。
在ADE20K语义分割上,UniRepLKNet的优势相当显著,最高达到55.6的mIoU。与ConvNeXt-XL相比超出了整整1.6.
时序预测、音频、视频、点云
为了验证UniRepLKNet处理时序数据的能力,我们挑战了一个数据规模超大的《Nature》级别的任务:全球气温和风速预测。尽管UniRepLKNet本来是为面向图像任务设计的,它却能超过为这个任务而设计的CorrFormer(前SOTA)。
这一发现尤为有趣,因为这种超大规模时间序列预测任务听起来更适合LSTM、GNN和Transformer,现在我们却用CNN将其“偷家”了,再考虑到Transformer当年也是从NLP来CV偷家的,一种奇妙的感觉油然而生。正如职业选手孙一峰在星际争霸生涯中反复证明的那样,一切局势最终都会变为换家。
在音频、视频和点云任务上,我们的极简处理方法也惊人地work。(详见论文)
另一个常见问题
问:对视觉领域而言,在Transformer发展的浪潮下,继续研究CNN的意义是什么?是因为CNN在某些情况下(如小模型、边缘设备)更高效吗?
答:这个问题的提出似乎隐含了一个假设,就是“Transformer本质上强于CNN”,所以“CNN只有在某些Transformer看不上或者还没来得及吊打的领域苟延残喘”。其实Transformer和CNN谁强谁弱这个问题被人从2020年讨论到2023年,也没什么意思了。反正都是以可学习的方式实现序列建模,训练过程也都是黑盒子,最终效果也差不多,我们有什么证据支持Transformer本质上强于CNN?即便把“某些情况”这种定语去掉,即便不考虑成本和部署的因素,就单纯比理想情况下的性能极限,也没有理由认为Transformer本质上更强。
Transformer本质优越论持有者普遍认为Transformer的scaling law更为优秀,在数据量和模型量级超大的情况下更强,但是google最新的工作(https://arxiv.org/abs/2310.16764)用JFT-4B训练NFNet也达到了90.4%的ImageNet精度(NFNet可是年龄跟ViT差不多的老模型了),这证明至少在图像领域,Transformer和CNN只不过是相互交融的两种模型罢。
结论
除了提出一种在图像上非常强力的backbone之外,本文所报告的这些发现似乎表明,大核CNN的潜力还完全没有得到充分开发。即便在Transformer的理论强项——“大一统建模能力”上,大核CNN也比我们所想象的更为强大。本文也报告了相关的证据:将kernel size从13减为11,这四个模态上的性能都发生了显著降低。(详见论文)
点击上方卡片,关注 「AI视界引擎」 公众号