點擊上方“視學算法”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
來自北大、加利福尼亞大學洛杉磯分校UCLA、微軟的研究人員指出:具有相對位置編碼和足夠注意力header的ViT層即使在輸入是圖像補丁的情況下也可以表示任何卷積。?
Visual Transformer(ViT)在計算機視覺界可以說是風頭無兩,完全不使用卷積神經網絡(CNN) 而只使用自注意力機制的情況下,還可以在各個CV任務上達到sota。研究結果也表明,只要有足夠的訓練數(shù)據(jù)時,ViT可以顯著地優(yōu)于基于卷積的神經網絡模型。但這并不代表CNN推出了歷史舞臺,ViT在CIFAR-100等小型數(shù)據(jù)集上的表現(xiàn)仍然比CNN差。一個比較常見的解釋是Transformer更強大的原因在于自注意力機制獲得了上下文相關的權重,而卷積只能捕捉局部特征。然而,目前還沒有證據(jù)證明Transformer是否真的比CNN全方面、嚴格地好,也就是說,是否CNN的表達能力完全被Transformer包含?之前有學者給出了一些他們的答案,實驗表明具有足夠數(shù)量header的自注意力層可以表示卷積,但它們只關注于注意力層的輸入表示為像素的情況,在輸入序列非常長時內存成本巨大,這是不實用的。而且在ViT及其大多數(shù)變體中,輸入是非重疊圖像片段(image patch)的表示,而不是像素。卷積操作涉及的像素跨越了patch的邊界,ViT 中的一個自注意力層是否可以表示卷積仍然是未知的。來自北大、加利福尼亞大學洛杉磯分校UCLA、微軟的研究人員就這個問題進行了研究并給出了一個具有證明、肯定的(affirmative)答案:具有相對位置編碼和足夠注意力header的ViT層即使在輸入是圖像補丁的情況下也可以表示任何卷積。https://arxiv.org/abs/2111.01353
這意味著ViT在小數(shù)據(jù)集上的性能較差,主要是由于它的泛化性能,而不是表達能力。在理論研究的基礎上,文中提出了一種將卷積偏差引入視覺變換器的兩階段訓練pipeline,并在低數(shù)據(jù)環(huán)境下進行了實驗驗證。要考慮ViT中的MHSA(Multi-head Self-Attention)層來表示卷積的問題,作者主要關注輸入。圖像patch的輸入給驗證這一結果帶來了很大的困難:卷積運算可以在patch邊界像素上運行,而Transformer不行。為了解決這一問題,首先需要將來自所有相關patch的信息聚合起來,通過利用相對位置編碼和多頭機制計算卷積,然后對聚合特征進行線性投影。通過多頭機制還原卷積后,另一個問題是header的數(shù)量是否會影響最優(yōu)解。研究人員給出了MHSA層在像素輸入和patch輸入設置中表示卷積所需的頭部數(shù)量的較低限制,強調了多頭機制的重要性。研究結果清楚地表明了像素輸入和patch輸入設置之間的區(qū)別:即patch輸入使自注意力比像素輸入需要更少的頭來進行卷積,尤其是當k較大時。例如如果具有像素輸入的mhsa層需要至少25個header來執(zhí)行5×5卷積,而具有patch輸入的mhsa層只需要9個header。通常,在ViT中,MHSA層中的頭部數(shù)量很少,例如,VIT-base中只有12個header,因此理論和現(xiàn)實互相印證,與實際情況達成一致。上述理論結果提供了一種允許MHSA層表示卷積的結構。研究人員又提出了一個兩階段的ViT 訓練pipeline來進行訓練。首先訓練ViT的卷積變體,其中mhsa層被k×k卷積層取代,也稱之為卷積訓練階段。然后將預訓練模型中的權重轉移到一個Transformer模型中,并在同一數(shù)據(jù)集上繼續(xù)訓練模型,稱為自注意力訓練階段。pipeline中的一個非常重要的步驟是從良好訓練的卷積層中初始化MHSA層。由于卷積的存在,所以不能使用[cls]標記進行分類,而需要通過在最后一層的輸出上應用全局平均池,然后使用線性分類器來執(zhí)行圖像分類,和CNN圖像分類一樣。從直覺來看,在卷積階段,模型對數(shù)據(jù)進行卷積神經網絡學習,并具有包括局部性和空間不變性在內的誘導偏差,使得學習更加容易。在自注意階段,該模型從模擬預先訓練的CNN開始,逐漸學習到利用CNN的靈活性和強大的自注意表達能力。在實驗部分,作者將模型命名為CMHSA-K(卷積MHSA),其中K 為第一階段訓練中卷積核的大小。選取的模型包括ViT-base (直接用Transformer在圖像上進行分類)和DeiT(用數(shù)據(jù)增強和隨機正則化來提升ViT性能)。可以看到,兩階段訓練pipeline基本上提高了性能,也證明了DeiT的兩階段訓練策略很有效。此外文中提出的兩階段訓練pipeline模型和DeiT的性能有很大差別,例如,CMHSA-5模型的第1名精度比DeiT-base高出近9%,可以看到pipeline可以在低數(shù)據(jù)環(huán)境下的數(shù)據(jù)增強和規(guī)則化技術上提供進一步的性能增益。并且兩個訓練階段都很重要。在相同數(shù)量的訓練時間下,只接受一個階段訓練的CMHSA總是比接受兩個階段訓練的CMHSA表現(xiàn)差。CMHSA(2nd phase)是一個隨機初始化的CMHSA,經過400個epoch的訓練,其測試精度遠低于最終兩階段模型。因此,從第一階段轉移的卷積偏差(convolutional bias)對于模型獲得良好的性能至關重要。卷積階段也有助于加速訓練。由于MHSA模塊的高計算復雜性,Transformer 的訓練通常是耗時的。相比之下,CNNS的訓練和推理速度要快得多。在文中提出的訓練pipeline中,卷積階段非??欤m然自注意力階段稍慢,但與DeiT-base 相比,仍然可以用更少的時間完成400個訓練epoch。最后研究人員指出,由于ViT模型存在一定的限制,目前的方法無法實現(xiàn)任何ViT模型對CNN的模擬。特別是需要足夠數(shù)量的header(≥9)。對于較小數(shù)量的頭部來說,不存在精確的映射,即使精確映射不適用,如何從CNN正確初始化VIT也值得研究。參考資料:
https://arxiv.org/abs/2111.01353