在视觉领域,transformer为什么能代替CNN?
当数据集较小时,CNN 的性能更好;但当数据量大到一定程度(如 JFT-300M 数据集),Transformer(ViT)的性能曲线会斜率更高,最终反超 CNN。其原因可以归结为以下三点:
表达能力的上限
CNN 的归纳偏置(局部性、平移不变性)是一把双刃剑。它预设了特征必须是“局部相关”的。
这种限制在数学上相当于在一个受限的函数子空间中进行搜索。虽然这让模型更容易在小样本下收敛,但也限制了模型去捕捉那些“非局部、非平移不变”的复杂高阶特征的能力。
Transformer 的优势: 它几乎没有归纳偏置。自注意力机制(Self-Attention)允许任何两个像素(Token)之间产生联系。
从数学上讲,它的假设空间(Hypothesis Space)远大于 CNN。当数据足够多时,Transformer 不需要人类告诉它“应该看局部”,它能自己从海量数据中学习出比“卷积”更优的算子。
感受野:全局 vs 局部
CNN 的“慢热”: 在 CNN 中,感受野是随着层数加深逐渐扩大的。第一层只看几个像素,只有到了深层才能看到物体全貌。这意味着底层网络无法利用全局信息来辅助局部特征的提取。
Transformer 的“全局直觉”: Transformer 的每一层都具有全局感受野。这意味着在处理图片的第一个字节时,它就已经在考虑这张图全局的上下文。对于大型、复杂的场景理解,这种“天花板级别”的全局建模能力是 CNN 难以通过简单堆叠卷积核来实现的。
数据驱动的“解题思路”
从长远来看,利用计算和数据的通用方法总是会胜过利用人类专业知识(归纳偏置)的特定方法。
在数据匮乏时,CNN 靠人类提供的“图像先验知识”带路。
在数据极大时,Transformer 靠强力的大规模参数拟合,自己悟出了图像的内在规律。
实验发现: 经过大规模预训练后,ViT 内部学到的某些层竟然自发地演化出了类似“卷积”或“索贝尔算子”的局部感知能力,这证明了 Transformer 的上限包容了 CNN 的下限。

浙公网安备 33010602011771号