Vision Transformer(VIT)是Google提出的一種基於Transformer的圖片分類模型。不同於傳統CNN模型,VIT將圖像表示為序列,並透過預測圖像的類別標籤來學習圖像結構。為了實現這一點,VIT將輸入影像劃分為多個補丁,並將每個補丁中的像素透過通道連接,然後進行線性投影以達到所需的輸入維度。最後,每個補丁被展平為單一向量,從而形成輸入序列。透過Transformer的自註意力機制,VIT能夠捕捉到不同補丁之間的關係,並進行有效的特徵提取和分類預測。這種序列化的影像表示方法為電腦視覺任務帶來了新的想法和效果。
Vision Transformer模型被廣泛應用於影像辨識任務,如物件偵測、影像分割、影像分類和動作辨識。此外,它還適用於生成建模和多模型任務,包括視覺基礎、視覺問答和視覺推理等。
在深入研究Vision Transformers的工作原理之前,我們必須了解原始Transformer中的注意力和多頭注意力的基礎知識。
Transformer是一種使用稱為自註意力機制的模型,既不是CNN也不是LSTM,它建構了一個Transformer模型並顯著優於這些方法。
Transformer模型的注意力機制使用了三個變數:Q(Query)、K(Key)和V(Value)。簡單地說,它計算一個Query token和一個Key token的注意力權重,並乘以每個Key關聯的Value。即Transformer模型計算Query token和Key token之間的關聯(注意力權重),並將與每個Key關聯的Value相乘。
定義Q、K、V計算為單頭,在多頭注意力機制中,每個頭都有自己的投影矩陣W_i^Q、W_i^K、W_i^V,它們分別計算使用這些矩陣投影的特徵值的注意力權重。
多頭注意力機制允許每次都以不同的方式專注於序列的不同部分。這意味著:
該模型可以更好地捕獲位置信息,因為每個頭將關注不同的輸入部分。它們的組合將提供更強大的表示。
每個頭也將透過唯一關聯的單字來捕獲不同的上下文資訊。
到此我們知道了Transformer模型的工作機制,再回過頭看看Vision Transformer模型。
Vision Transformer是將Transformer應用於影像分類任務的模型,於2020年10月提出。模型架構與原始Transformer幾乎相同,它允許將圖像視為輸入,就像自然語言處理一樣。
Vision Transformer模型使用Transformer Encoder作為基礎模型從影像中提取特徵,並將這些處理過的特徵傳遞到多層感知器(MLP)頭部模型中進行分類。由於基礎模型Transformer的計算量已經非常大,因此Vision Transformer將影像分解成方形塊,作為一種輕量級「窗口化」注意力機制來解決此類問題。
然後圖像會轉換為方形補丁,這些補丁被展平並通過單個前饋層發送以獲得線性補丁投影。為了幫助分類位,透過將可學習的類別嵌入與其他補丁投影連接起來。
總之,這些補丁投影和位置嵌入形成了一個更大的矩陣,很快就會通過Transformer編碼器。然後將Transformer編碼器的輸出傳送到多層感知器以進行影像分類。輸入特徵很好地捕捉了影像的本質,使MLP頭的分類任務變得簡單得多。
雖然ViT在學習高品質影像特徵方面顯示出卓越的潛力,但它在性能與精度增益方面較差。準確度的小幅提高並不能證明ViT的運行時間較差。
以上是深入解析Vision Transformer(VIT)模型的工作原理與特點的詳細內容。更多資訊請關注PHP中文網其他相關文章!