在CV界,传统卷积已经彻底输给Transformer了吗?

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

编辑:深度学习与计算机视觉

声明:仅做学术分享,侵删

作者:知乎用户
https://www.zhihu.com/question/531529633/answer/2473781572

是,输得很惨,我现在一看到面试者对Transformer一脸热情过度的样子都有点PTSD了


前面波尔德已经讲得很好了,Transformer冲击SOTA有用,但工业界不可能去用SOTA。既然是工业界,做什么都得考虑个成本,Transformer一上,就意味着推理时间,训练时间,调试时间成倍的增加。

推理时间翻倍,意味着硬件成本翻倍,也意味着同样的硬件能同时跑的模型变少。大部分硬件不支持意味着高效率硬件用不上,只能使用少数厂商的硬件,这就意味着硬件被人卡脖子。功耗成本增加也是问题。

训练时间翻倍,意味着迭代次数减少,迭代次数减少意味着你开发进度慢,意味着被市场淘汰。要跟上步子也可以,那么训练集群和电费都是成倍增加。

Transfomer难训练,意味着调试时间成倍增加,以前随便调调就有,现在得反复调试。训练时间使用的是GPU时间,还能忍,调试时间是是什么?员工的时间。IT企业最大的成本支出是什么?人力成本。

最后,你一个好好的企业,用上了Transformer,导致推理硬件成本翻倍,能耗翻倍,训练集群成本翻倍,耗电翻倍,迭代时间翻倍,员工成本翻倍,然后被市场淘汰。所有这一切的付出,居然只是为了涨那几个点。。。

如果你把Transformer用在刀刃上,比如波尔德说的处理高阶特征,那还行。比如特斯拉用Transformer搞tracking就是不错的思路。

作者:王云鹤

https://www.zhihu.com/question/531529633/answer/3047230939

一年多以前我也以为输了,但其实还有机会。我们6层的VanillaNet可以超过ResNet-34,13层的VanillaNet在ImageNet达到83%的top1精度,超过几百层网络的性能,并展现了非凡的硬件效率优势。顺道一提,VanillaNet的中文名字为朴素网络。

王云鹤:卷积的尽头不是Transformer,极简架构潜力无限https://zhuanlan.zhihu.com/p/632685158

在过去几年时间,一直都在找关于神经网络架构创新的灵感。在视觉Backbone这个方向上,端侧我们有了GhostNet这种轻量的模型架构和系列算法。但是面对现在大算力,还没有什么特别好的思路,虽然在Vision Transformer的路上跟着大家也一起做了一点工作,但一直想利用最简单的卷积网络,尝试做出更强的效率和性能,在实际应用中也可以有更大的价值。61528720f9ce53df9695ed077c24bd7f.jpeg

6层的VanillaNet结构图,没有Shortcut,致敬LeNet、AlexNet和VGGNet这个工作的核心就是,如何让一个浅层网络在没有复杂链接和attention的情况下,尽可能地提升精度,实际上我们面临的非线性大幅下降的技术难题。现代深度神经网络强大的拟合能力,甚至在不考虑复杂度的情况下具有逼近任意函数的潜力,很大一部分是复杂的非线性层不断堆叠带来的。3ea6bceffa55f7f2adc6d1bcb4aa30b2.jpeg

VanillaNet与SOTA架构在深度、精度、速度上的对比VanillaNet是我们的一个开端,让我们重新思考了很多,到底什么对深度神经网络性能提升是最重要的,是深度,是感受野,是attention,还是参数量?目前这个版本的VanillaNet我们优化了接近一年,已经在很多实际业务中都用了起来。但它也还有很多提升空间,比如没有加任何的预训练和蒸馏,也没有进一步系统性尝试与其它网络架构的融合,还没有更进一步进行结构的优化。AI的浪潮一波三折,距离AlexNet提出已经有11年过去了,而今迈步从头越,期待未来的新架构和新应用。

作者:知乎用户
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)。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

9e6f94c454eb2a9259c0ca7788bbf6ab.jpeg

猜你喜欢

转载自blog.csdn.net/woshicver/article/details/131346037