发布时间:2023-03-31 文章分类:电脑基础 投稿人:樱花 字号: 默认 | | 超大 打印

近两年Transformer如日中天,刷爆各大CV榜单,但在计算机视觉中,传统卷积就已经彻底输给Transformer了吗?

回答1

作者:DLing
链接:https://www.zhihu.com/question/531529633/answer/2819350360

看在工业界还是学术界了。学术界,可能。工业界,一时半会还不会。

近些年,transformer确实很火,论文层出不穷,刀法也很犀利,各种公开数据集的强榜基本霸占。大家研究的热情也很高。

但是,工业界现在可能还不太“用的起”这么好的模型。

工业界对于模型的选择,对于模型推理效果的指标来说,更多的是够用就好。但是对于构建这个模型的成本来说,要求的会更严苛。

学术界和工业界还是有很大代差的,你会发现,很多大厂他们出了很多牛批的模型,但是他们的业务部门大多还在用resnet,yolov3 ,天天在搞数据,而不是在搞模型。至于原因嘛,懂得都懂。

学术界一定要引领工业界的,现在工业落地过程中,在长尾分布以及少样本学习方面可能需求的更急迫一些。毕竟太依赖样本数量的方式,会让产品落地举步维艰。

回答2

作者:幻云羽音
链接:https://www.zhihu.com/question/531529633/answer/2797528246

感觉很多答案都回答得很好了。
我就只说一点,经过在 Kaggle 上实践十几个数据集之后,我得到的结论是 ViT 系模型全都是“近视眼”。

(ViT 系模型: Vision Transformer 系列模型总称,包括 vit, swin, cait, deit, xcit, deit 等等)

比如说像下图这样的,哪怕你有近视眼,还是能分辨出狮子是狮子。
传统卷积与Transformers 优缺点对比
而 CV 科研界圣杯 ImageNet 里全是这样的图片,因此 ViT 系模型能大显身手。
在 Kaggle 里的类 ImageNet 数据的比赛中 ViT 确实能占一席之地,和 CNN 分庭抗礼 (并不是一边倒)

但如果换成这样的图片,要在几千x几千像素的图片里分辨出这种像素级别细节,那就不是 ViT 系模型的强项了,甚至在某些个数据集上基本无法正常收敛

传统卷积与Transformers 优缺点对比

回答3

作者:波尔德
链接:https://www.zhihu.com/question/531529633/answer/2473798585

首先明确反对斗兽。反对“a完爆b”式引战。
cnn相比vit至少有下列优点:

最后是一些胡言乱语。
卷积和自注意力不是水火不容的。小孩子才斗兽。大人选择我全都要。例如Swin,吸收了cnn的局部性和层级结构,效果就比原版vit好很多。反过来ConvNeXT从vit里获得了灵感,给cnn来了一波文艺复兴。LeCun说过,他理想中的网络应该是用卷积抓底层的特征,transformer处理高阶的信息。类似于detr那样。vit这个领域现在还是大水漫灌,而我乐观地相信真正的好东西还在后面。

另外一个问题是,cnn到底还有多少潜力可挖。缝合了大量trick之后,老不死的(褒义)ResNet50也能在ImageNet上达到80%以上的准确度。说不定哪天又蹦出来个新技术,给全体cnn再补补身子(就像曾经的BN)。

回答4

作者:李宏毅的粉丝
链接:https://www.zhihu.com/question/531529633/answer/2473314760

No Free Lunch。我个人觉得这句话无论什么时候说都是对的,没有一个模型能在所有任务所有场景上都能做到最好,Transformer也不例外。

虽然目前cv的各大任务都是被Transformer刷榜了,但我相信还是有一些任务CNN是有一些优势的。首先我认为CNN和Transformer(MultiHeadAttention)最大的区别在于感受野,CNN在浅层的时候感受野很小,基本上提取的基本都是纹理颜色这种特征(不需要大的感受野),即使深层,虽然感受野较大(但实际上有效感受野并不是很大),理论上能学习到轮廓的特征,但是由于纹理颜色等特征是更容易学习的,因此,在ImageNet数据集上面,模型很容易走捷径,去学习纹理而不是形状,导致产生很大的形状偏见(https://arxiv.org/abs/1811.12231)。当然最近也有论文提出大卷积核可以得到更大的感受野,从而减小形状偏见,达到和Transformer类似甚至更好的效果(https://arxiv.org/pdf/2203.06717.pdf)。在通用任务(分类,检测,分割),感受野都是非常重要的,人判断一个物体类别主要也是依靠形状而不是纹理,因此通用任务上Transformer的效果比CNN好是符合直觉的。但是材料分类或者瑕疵检测这种通过纹理就能解决的问题,我相信CNN会有一定的优势,因为CNN的限制更为合理。

此外,最近CNN也开始文艺复兴了,ConvNext,VAN,以及上面这篇论文 (https://arxiv.org/pdf/2203.06717.pdf)通过增大卷积核在多个任务上取得了和Transformer类似的效果,不过没有达到SOTA就是了。

此外,重要的是,目前工业界,Transformer的落地困难重重,尤其是端边部署,onnx都不支持MultiHeadAttention, LayerNorm,GELU等算子,是将这些算子拆成多个小算子完成的。而绝大多数的AI芯片对这些小算子是不支持,或者推理效率很低的(GPU除外,但GPU实在是太贵了,一般产品是用不起的),这就导致了Transformer模型很难部署。BN可以与卷积融合3x3的卷积效率比其他算子高得多,导致了目前工业界还是以4,5年前的CNN网络为主。不是工业界的算法工程师不求上进,而是比较了很久之后会发现,新模型真的不一定会比老模型好。

退一万步来讲,Transformer在视觉任务上,Patch Embedding还是通过卷积层来完成的,卷积这种不破坏图像二维信息的算子已然刻入了基于Transformer的模型之中

参考:https://www.zhihu.com/question/531529633