AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(VIT)
最近看transformer用于CV比較熱門,特意去進行了解,這里用分類的一篇文章進行講解。
NLP中的transformer和代碼講解參考我另一篇文章。
論文鏈接:AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
一.思想
其實核心問題就是考慮如何把圖像數據H*W*C,序列化成一個一個詞那種結構,自然就想到將圖片crop成一個一個patch,假設有N個patch,維度為p*p*C,reshape加concate一下就變成個N*p^2C,也就類似詞向量。
二.模型結構
如下圖所示:
1.圖像轉序列
將圖片H*W*C,crop成N個patch,然后在轉換成N*(p^2C),同時為了避免模型結構受到patch size的影響,采用Linear project將不同flatten patchs轉換成D維向量。這樣的話輸入圖片數據就成了N*D二維矩陣就和詞向量矩陣對應上了。
2.Position embeddings
作者用一個可學習的embedding向量去將圖像位置信息加入到序列中。
3.learnable embedding
上圖中,帶*號的粉色框是一個可學習的embedding,記住Xclass,經過encoder后的結果作為整張圖像的表示。之所以不用其中一個patch的embedding是因為,這種embedding不可避免帶有path的信息,而新增的這個沒有語義信息,能更佳反映整張圖片。
4.輸入transformer encoder
進行特征提取,我另一篇文章已經很詳細了,這里就不贅述了。
整個公式如下:
三.實驗結果:
在中等數據集(例如ImageNet),效果不如resnet,但是在大規模數據集上,表現更佳。
?
總結
以上是生活随笔為你收集整理的AN IMAGE IS WORTH 16X16 WORDS :TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(VIT)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 焦距及摄像机成像
- 下一篇: PyTorch框架学习八——PyTorc