首页IT科技普通卷积层(传统卷积与Transformers 优缺点对比)

普通卷积层(传统卷积与Transformers 优缺点对比)

时间2025-09-13 06:41:00分类IT科技浏览7445
导读:近两年Transformer如日中天,刷爆各大CV榜单,但在计算机视觉中,传统卷积就已经彻底输给Transformer了吗?...

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

回答1

作者:DLing

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

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

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

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

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

1.场景需不需要上transformer?搞个麻将识别                       ,一万和一条这种                          ,需要上这么重的模型吗? 2.标注成本能不能控制的住?一个五十万的项目    ,哪有那么多预算给你标数据                  ,搞个开源稳定的模型                           ,限制下场景        ,用公共数据或者少量的数据             ,达到客户的要求就好                   。这点数据量给transformer                            ,牙缝还不够呢     。 3 训练成本能不能控制的住?训练时长            ,硬件计算资源等等一计算        ,transformer涨的那几个点能不能划算                            ,都要打问号的                , 4 部署成本能不能控制的住?现在很多模型都得部署在很低算力的平台上    ,而且长期维护的产品                            ,transformer能不能集成的进去                     ,都不好说                         。

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

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

回答2

作者:幻云羽音

链接:https://www.zhihu.com/question/531529633/answer/2797528246

感觉很多答案都回答得很好了     。

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

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

比如说像下图这样的    ,哪怕你有近视眼                            ,还是能分辨出狮子是狮子                          。

而 CV 科研界圣杯 ImageNet 里全是这样的图片                     ,因此 ViT 系模型能大显身手          。

在 Kaggle 里的类 ImageNet 数据的比赛中 ViT 确实能占一席之地,和 CNN 分庭抗礼 (并不是一边倒)

             。

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

回答3

作者:波尔德

链接:https://www.zhihu.com/question/531529633/answer/2473798585

首先明确反对斗兽               。反对“a完爆b        ”式引战         。

cnn相比vit至少有下列优点:

1.cnn在数据较少时效果更好                  ,收敛也更快                        。本质是因为cnn包含的inductive bias于图像数据的性质吻合                           ,而vit只能靠海量数据学习这些性质                   。现实业务中数据很可能没那么多        ,vit吃不饱不好好干活     。而且训练vit动不动就300                 、500甚至1000个epoch真的遭不住                         。用cnn可能100个epoch就完事了                       。

2.cnn容易训练。只要用上residual和BN这两个技术             ,cnn的效果基本就不会差到哪里去                     。训练vit你需要各种正则化和trick                           。比如gradient clip                            ,weight decay            ,random depth        ,large batch                            ,warm up                ,各种数据增强……超参数过多意味着换个数据集就重新来过    ,慢慢调去吧     。我听过很多人抱怨vit迁移到自己的数据上效果不好                            ,我怀疑多半是没调出来                 。

3.cnn跑得快                          。卷积已经经历过多年优化                     ,比自注意力的运算效率高          。relu也比gelu快的多             。

4.cnn的开销与像素点的数目是线性关系                         。而vit是平方关系               。这意味着vit难以处理高分辨率图像         。

5.cnn天然可以处理任意分辨率的图像                        。而vit由于位置编码的限制,一般需要固定分辨率                   。

6.cnn对硬件更友好     。naive的卷积只需要im2col                       ,matmul和reshape                         。bn和relu还可以融合进卷积核                       。硬件实现比自注意力简单。

7.因为运算简单                          ,cnn的int8量化也容易做                     。想要量化vit    ,首先必须搞一个int8的softmax…….怎么看都不是个容易的事情                           。目前的推理芯片绝大部分只能跑cnn     。

最后是一些胡言乱语                 。

卷积和自注意力不是水火不容的                          。小孩子才斗兽          。大人选择我全都要             。例如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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
苹果cms采集插件全开源(苹果CMS官方采集资源站——助力网站建设,提供丰富资源) python能模拟鼠标么(pythonmunin)