ViT(vision transformer)原理快速入门
生活随笔
收集整理的這篇文章主要介紹了
ViT(vision transformer)原理快速入门
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本專題需要具備的基礎(chǔ):
- 了解深度學(xué)習(xí)分類網(wǎng)絡(luò)原理。
- 了解2017年的transformer。
Transformer 技術(shù)里程碑:
ViT簡(jiǎn)介
時(shí)間:2020年CVPR
論文全稱:《An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale》
發(fā)明人:谷歌團(tuán)隊(duì)
簡(jiǎn)介:論文中提出了 Vision Transformer (ViT),能直接利用 Transformer 對(duì)圖像進(jìn)行分類,而不需要卷積網(wǎng)絡(luò)。(論文中也提到CNN+transformer,但效果差不多)
基本原理:將圖像劃分為16x16的小切片,轉(zhuǎn)成序列,輸入ViT中,得到分類。
ViT算法全貌
?ViT算法結(jié)構(gòu)圖
?有了基礎(chǔ),理解上圖不是很復(fù)雜,代碼也不是很長(zhǎng),記錄幾個(gè)要點(diǎn):
- 圖像是怎么輸入transformer中的:用一個(gè)16x16尺度,步長(zhǎng)為16,通道數(shù)為768的卷積,對(duì)圖像進(jìn)行特征提取,這種卷積,相當(dāng)于把圖片信息,分割為獨(dú)立的14*14的小切片。14x14后續(xù)會(huì)拉平,就成為NLP中序列一樣。
- 類別編碼(class token):假設(shè)你9個(gè)向量經(jīng)過(guò)編碼器之后,你該選擇哪一個(gè)向量進(jìn)入到最后的分類頭呢?因此這里作者給了額外的一個(gè)用于分類的向量,與輸入進(jìn)行拼接。同樣這是一個(gè)可學(xué)習(xí)的變量。這東西剛開始會(huì)隨機(jī)初始化,作為圖像的類別編碼信息,然后會(huì)和圖像切片信息做通道拼接。
- 位置編碼:位置編碼有兩種方式,一種以固定算法生成,另一種是自動(dòng)學(xué)習(xí),ViT中用的自動(dòng)學(xué)習(xí)。
- 怎么得到分類結(jié)果:經(jīng)過(guò)transformer encoder后,數(shù)據(jù)維度為197?x 768,其中,1x768是網(wǎng)絡(luò)預(yù)測(cè)的類別信息,196x768是圖像每個(gè)‘切片’的信息。后續(xù)只要單獨(dú)提取出類別信息這一維度,通過(guò)全連接層(1 x 768轉(zhuǎn)成 1 x class_num)、softmax等,就能讓網(wǎng)絡(luò)學(xué)會(huì)給出類別索引序號(hào)。
較好的參考資料
Vision Transformer詳解_霹靂吧啦Wz-CSDN博客
總結(jié)
以上是生活随笔為你收集整理的ViT(vision transformer)原理快速入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CS131专题-8:图像纹理
- 下一篇: 【汇总记忆:命令、语法、函数、等】