Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet

這篇文章是從改進(jìn)ViT輸入的角度來做的,在最初版本的ViT中,是將圖像分成16*16個patch,每個patch展開為一個向量,作為ViT的序列化輸入。這種做法雖然簡單,但是這種簡單粗暴的序列化方式破壞了圖像原有的結(jié)構(gòu)性,使得網(wǎng)絡(luò)無法捕捉圖像原有的結(jié)構(gòu)化特征,如邊緣、線條等。因此,本文作者提出了一種token2-to-tokens的方式,通過不斷對圖像進(jìn)行有overlap的patch展開以及圖像恢復(fù),來達(dá)到逐步將相鄰像素的結(jié)構(gòu)化特性聚集到token中,且逐步減少token數(shù)目的目的。


上圖展示了一輪T2T的過程,首先將上一層transformer的輸入token恢復(fù)為圖像,然后進(jìn)行有overlap的patch采樣,最后將每個patch的特征展開,作為下一個層的輸入。T2T重復(fù)兩次,最終backbone的輸入為14*14個token,與之前的ViT類似。這種token2token的方式模擬了卷積操作來捕捉局部特性,利用self-attention捕捉全局依賴,相比簡單的劃分patch,確實可以更好的對輸入進(jìn)行預(yù)處理。

不過因為T2T階段token數(shù)過多,會使得計算量和顯存占用巨大。而通過可視化ViT的特征圖發(fā)現(xiàn),很多通道都是全0的,會帶來一定的冗余,因此作者采用了deep-narrow的網(wǎng)絡(luò)設(shè)計思想,降低特征的通道數(shù),來減少參數(shù)量和計算量。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容