您當前的位置:首頁 > 書法

MetaFormer: transformer真正work的地方在哪裡?

作者:由 金天 發表于 書法時間:2021-12-22

最近一直再更新transformer系列的文章,如果你還沒有了解到,請先關注我獲取更多更新,同時歷史的文章可以看這裡:

萬字長文盤點2021年paper大熱的Transformer(ViT)

金天:萬字長文盤點2021年paper大熱的Transformer(ViT)

以YOLO的名義來做transformer

金天:以YOLO的名義來做Transformer

ICCV2021幾篇transformer的OD論文解讀

金天:ICCV2021幾篇Transformer的OD論文解讀

全景分割新篇章K-Net

金天:全景分割新篇章K-Net

這篇MetaFormer就像這樣:

MetaFormer: transformer真正work的地方在哪裡?

這篇文章其實講的東西很簡單,我們知道transformer都有一個Token Mixer的部分,很多人對這部分進行各種魔改,比如什麼傅立葉Mixer,各種花裡胡哨的Attention,但是他們發現,不管怎麼換,整個架構還是很work,雖然有一些結構可以漲點,但是是不是可以反向思考一下:是不是一直沒有變得部分才是真正work的部分呢?

整個文章的insight也就是這個,最後對比了一下將裡面的attention拿掉,換成一個簡單的Pooling,試驗了一波分類和檢測以及分割的效果,發現確實牛逼,直接吊打Pvt和Vit。

我們先來看一下效果吧:

MetaFormer: transformer真正work的地方在哪裡?

檢測的AP直接從res18的 31.8幹到了36.2。

不得不說這很牛逼啊,這基本上是拿res18一樣的算力,幹到了res50的精度啊!而且是APs 更高,對小目標更友好。

我認為這篇文章的意義主要在於兩個:

證明了transformer的真正有效的不是attention裡面的tokenmixer,而是這個樸實的架構;

它拿掉了transformer裡面最耗時的attention,直接用一個Pooling代替,我們現在可以不需要太擔心速度了,因為pooling可以最佳化的很到位。

那說道這裡,可能很多人會提出一個問題,你只是測試了一個Pooling,你怎麼就一定可以證明是架構work,而不是你這個Pooling也很work呢?

其實作者也做了很多ablation study。大概看看這個表格:

MetaFormer: transformer真正work的地方在哪裡?

作者發現,即使是改為一個Identity Mapping,也可以達到74。3%的準確度。而其他的不管怎麼改,都沒有太大的漲點,也沒有太大的掉點。

但是有一點值得一提,我們其實也可以把Pooling和attention結合起來,但是結合的方式比較的講究,一般Pooling可以

讓網路對更長距離的token具有更強的感知能力

作者也提到,透過將Pooling和其他的attention結合起來,是更一步提升效果的一個比較好的方向。

https://

github。com/sail-sg/pool

former

據瞭解,論文中提到的目標檢測和分割的配置檔案還沒有完全release。

標簽: pooling  Transformer  Attention  金天  work