Vision Transformer, ViT

motivation

transformer在NLP領(lǐng)域成為事實標準,但是在圖像領(lǐng)域知識作為組件或CNN的附庸,必須一統(tǒng)江湖。

網(wǎng)絡(luò)結(jié)構(gòu)

圖像 -》序列 -》transformer encoder -》MLP -》classification

和典型NLP任務(wù)相比,基本沿用了transformer encoder + classification的結(jié)構(gòu),區(qū)別在于輸入,ViT將圖像轉(zhuǎn)換為了序列。

圖像轉(zhuǎn)序列

標準Bert的輸入是長度為L,維度為D的vector [L, D],圖像轉(zhuǎn)序列即將[H, W, C]的輸入圖像轉(zhuǎn)為[L, D]

(1)圖像分塊patch split:輸入原圖size為HWC,patch的size為P*P,patch個數(shù)N=HW/(P*P),將patch reshape為一維vector,size為P*P*C,得到patch序列[N, P*P*C]

(2)圖像塊嵌入patch embedding:乘以embedding mat [P*P*C, D]完成線性變換,得到新的feature序列[N, D]

(3)追加CLS token:和Bert類似,在序列前加上CLS分類專屬token.

(4)添加position embedding:和Bert類似,為添加序列的順序信息,添加可學習的position embedding信息。

(5)將上述序列送入transformer encoder + MLP + classification head

訓練效果分析

(1)embedding filter:embedding filter的最終學習結(jié)果類似于基函數(shù),對patch內(nèi)紋理進行低階特征表征,想到了小波基。

(2)position embedding:position embedding表現(xiàn)出顯著的相對位置表達,臨近、行、列等。

(3)attention distance:隨著層的增加,attention的距離越來越遠,即高層可獲取更多全局信息,原理和CNN類似。

Attention可視化

attention的可視化結(jié)果也可以看出attention對象和類別對象很好地關(guān)聯(lián)了起來。

總結(jié)

優(yōu)勢:

1、原汁原味的transformer全局self-attention,簡潔易懂。

2、在大數(shù)據(jù)集上效果很好。

劣勢:

1、圖片大小變化后patch的長度會發(fā)生變化(不像bert在末尾增減,而是中間插入),預(yù)訓練的position embedding對不上,通過插值不可避免導致精度下降。

2、模型復雜度高,需要大量訓練數(shù)據(jù),在小訓練集上表現(xiàn)不好,建議是大數(shù)據(jù)預(yù)訓練+小數(shù)據(jù)微調(diào)。

最后編輯于
?著作權(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)容