在CV界,傳統(tǒng)卷積已經(jīng)徹底輸給Transformer了嗎?
內(nèi)容轉(zhuǎn)載自知乎,著作權(quán)歸屬原作者
劉斯坦(慕尼黑工業(yè)大學(xué) 計(jì)算機(jī)科學(xué))回答:
是,輸?shù)煤軕K,我現(xiàn)在一看到面試者對(duì)Transformer一臉熱情過(guò)度的樣子都有點(diǎn)PTSD了。
前面波爾德已經(jīng)講得很好了,Transformer沖擊SOTA有用,但工業(yè)界不可能去用SOTA。既然是工業(yè)界,做什么都得考慮個(gè)成本,Transformer一上,就意味著推理時(shí)間,訓(xùn)練時(shí)間,調(diào)試時(shí)間成倍的增加。
推理時(shí)間翻倍,意味著硬件成本翻倍,也意味著同樣的硬件能同時(shí)跑的模型變少。大部分硬件不支持意味著高效率硬件用不上,只能使用少數(shù)廠商的硬件,這就意味著硬件被人卡脖子。功耗成本增加也是問(wèn)題。
訓(xùn)練時(shí)間翻倍,意味著迭代次數(shù)減少,迭代次數(shù)減少意味著你開(kāi)發(fā)進(jìn)度慢,意味著被市場(chǎng)淘汰。要跟上步子也可以,那么訓(xùn)練集群和電費(fèi)都是成倍增加。
Transfomer難訓(xùn)練,意味著調(diào)試時(shí)間成倍增加,以前隨便調(diào)調(diào)就有,現(xiàn)在得反復(fù)調(diào)試。訓(xùn)練時(shí)間使用的是GPU時(shí)間,還能忍,調(diào)試時(shí)間是是什么?員工的時(shí)間。IT企業(yè)最大的成本支出是什么?人力成本。
最后,你一個(gè)好好的企業(yè),用上了Transformer,導(dǎo)致推理硬件成本翻倍,能耗翻倍,訓(xùn)練集群成本翻倍,耗電翻倍,迭代時(shí)間翻倍,員工成本翻倍,然后被市場(chǎng)淘汰。所有這一切的付出,居然只是為了漲那幾個(gè)點(diǎn)。。。
如果你把Transformer用在刀刃上,比如波爾德說(shuō)的處理高階特征,那還行。比如特斯拉用Transformer搞tracking就是不錯(cuò)的思路。

波爾德回答:
首先明確反對(duì)斗獸。反對(duì)“a完爆b”式引戰(zhàn)。
cnn相比vit至少有下列優(yōu)點(diǎn):
cnn在數(shù)據(jù)較少時(shí)效果更好,收斂也更快。本質(zhì)是因?yàn)閏nn包含的inductive bias于圖像數(shù)據(jù)的性質(zhì)吻合,而vit只能靠海量數(shù)據(jù)學(xué)習(xí)這些性質(zhì)?,F(xiàn)實(shí)業(yè)務(wù)中數(shù)據(jù)很可能沒(méi)那么多,vit吃不飽不好好干活。而且訓(xùn)練vit動(dòng)不動(dòng)就300、500甚至1000個(gè)epoch真的遭不住。用cnn可能100個(gè)epoch就完事了。
cnn容易訓(xùn)練。只要用上residual和BN這兩個(gè)技術(shù),cnn的效果基本就不會(huì)差到哪里去。訓(xùn)練vit你需要各種正則化和trick。比如gradient clip,weight decay,random depth,large batch,warm up,各種數(shù)據(jù)增強(qiáng)……超參數(shù)過(guò)多意味著換個(gè)數(shù)據(jù)集就重新來(lái)過(guò),慢慢調(diào)去吧。我聽(tīng)過(guò)很多人抱怨vit遷移到自己的數(shù)據(jù)上效果不好,我懷疑多半是沒(méi)調(diào)出來(lái)。
cnn跑得快。卷積已經(jīng)經(jīng)歷過(guò)多年優(yōu)化,比自注意力的運(yùn)算效率高。relu也比gelu快的多。
cnn的開(kāi)銷與像素點(diǎn)的數(shù)目是線性關(guān)系。而vit是平方關(guān)系。這意味著vit難以處理高分辨率圖像。
cnn天然可以處理任意分辨率的圖像。而vit由于位置編碼的限制,一般需要固定分辨率。
cnn對(duì)硬件更友好。naive的卷積只需要im2col,matmul和reshape。bn和relu還可以融合進(jìn)卷積核。硬件實(shí)現(xiàn)比自注意力簡(jiǎn)單。
因?yàn)檫\(yùn)算簡(jiǎn)單,cnn的int8量化也容易做。想要量化vit,首先必須搞一個(gè)int8的softmax…….怎么看都不是個(gè)容易的事情。目前的推理芯片絕大部分只能跑cnn。
最后是一些胡言亂語(yǔ)。
卷積和自注意力不是水火不容的。小孩子才斗獸。大人選擇我全都要。例如Swin,吸收了cnn的局部性和層級(jí)結(jié)構(gòu),效果就比原版vit好很多。反過(guò)來(lái)ConvNeXT從vit里獲得了靈感,給cnn來(lái)了一波文藝復(fù)興。LeCun說(shuō)過(guò),他理想中的網(wǎng)絡(luò)應(yīng)該是用卷積抓底層的特征,transformer處理高階的信息。類似于detr那樣。vit這個(gè)領(lǐng)域現(xiàn)在還是大水漫灌,而我樂(lè)觀地相信真正的好東西還在后面。
另外一個(gè)問(wèn)題是,cnn到底還有多少潛力可挖??p合了大量trick之后,老不死的(褒義)ResNet50也能在ImageNet上達(dá)到80%以上的準(zhǔn)確度。說(shuō)不定哪天又蹦出來(lái)個(gè)新技術(shù),給全體cnn再補(bǔ)補(bǔ)身子(就像曾經(jīng)的BN)。

李宏毅的粉絲回答:
No Free Lunch。我個(gè)人覺(jué)得這句話無(wú)論什么時(shí)候說(shuō)都是對(duì)的,沒(méi)有一個(gè)模型能在所有任務(wù)所有場(chǎng)景上都能做到最好,Transformer也不例外。
雖然目前cv的各大任務(wù)都是被Transformer刷榜了,但我相信還是有一些任務(wù)CNN是有一些優(yōu)勢(shì)的。
首先我認(rèn)為CNN和Transformer(MultiHeadAttention)最大的區(qū)別在于感受野,CNN在淺層的時(shí)候感受野很小,基本上提取的基本都是紋理顏色這種特征(不需要大的感受野),即使深層,雖然感受野較大(但實(shí)際上有效感受野并不是很大),理論上能學(xué)習(xí)到輪廓的特征,但是由于紋理顏色等特征是更容易學(xué)習(xí)的,因此,在ImageNet數(shù)據(jù)集上面,模型很容易走捷徑,去學(xué)習(xí)紋理而不是形狀,導(dǎo)致產(chǎn)生很大的形狀偏見(jiàn)(https://arxiv.org/abs/1811.12231)。
當(dāng)然最近也有論文提出大卷積核可以得到更大的感受野,從而減小形狀偏見(jiàn),達(dá)到和Transformer類似甚至更好的效果(https://arxiv.org/pdf/2203.06717.pdf)。在通用任務(wù)(分類,檢測(cè),分割),感受野都是非常重要的,人判斷一個(gè)物體類別主要也是依靠形狀而不是紋理,因此通用任務(wù)上Transformer的效果比CNN好是符合直覺(jué)的。但是材料分類或者瑕疵檢測(cè)這種通過(guò)紋理就能解決的問(wèn)題,我相信CNN會(huì)有一定的優(yōu)勢(shì),因?yàn)镃NN的限制更為合理。
此外,最近CNN也開(kāi)始文藝復(fù)興了,ConvNext,VAN,以及上面這篇論文(https://arxiv.org/pdf/2203.06717.pdf)通過(guò)增大卷積核在多個(gè)任務(wù)上取得了和Transformer類似的效果,不過(guò)沒(méi)有達(dá)到SOTA就是了。
此外,重要的是,目前工業(yè)界,Transformer的落地困難重重,尤其是端邊部署,onnx都不支持MultiHeadAttention, LayerNorm,GELU等算子,是將這些算子拆成多個(gè)小算子完成的。而絕大多數(shù)的AI芯片對(duì)這些小算子是不支持,或者推理效率很低的(GPU除外,但GPU實(shí)在是太貴了,一般產(chǎn)品是用不起的),這就導(dǎo)致了Transformer模型很難部署。BN可以與卷積融合,3x3的卷積效率比其他算子高得多,導(dǎo)致了目前工業(yè)界還是以4,5年前的CNN網(wǎng)絡(luò)為主。不是工業(yè)界的算法工程師不求上進(jìn),而是比較了很久之后會(huì)發(fā)現(xiàn),新模型真的不一定會(huì)比老模型好。
退一萬(wàn)步來(lái)講,Transformer在視覺(jué)任務(wù)上,Patch Embedding還是通過(guò)卷積層來(lái)完成的,卷積這種不破壞圖像二維信息的算子已然刻入了基于Transformer的模型之中。
推薦閱讀
人工智能中的機(jī)器學(xué)習(xí)和模型評(píng)價(jià)(文末福利贈(zèng)送)
一本1986年就問(wèn)世的編程書(shū)為何能暢銷至今?(文末福利贈(zèng)送)
Transformer稱霸的原因找到了?OpenAI前核心員工揭開(kāi)注意力頭協(xié)同工作機(jī)理
——The End——
分享
收藏
點(diǎn)贊
在看


