目錄
引言
一、ViT模型的起源和歷史
二、什么是ViT?
圖像處理流程
圖像切分
展平與線性映射
位置編碼
Transformer編碼器
分類頭(Classification Head)
自注意力機制
注意力圖
三、Coovally AI模型訓練與應用平臺?
四、ViT與圖像分類
五、CNN與ViT對比
效率
提取特征的方式
數據需求
六、ViT用例和應用
圖像分類
目標檢測與分割
圖像生成
多模態任務
七、ViT的挑戰
大規模數據集的依賴
計算復雜度和內存消耗
長距離依賴建模的困難
八、總結
引言
ViT(Vision Transformer)是一種用于圖像處理的深度學習模型,基于Transformer架構,該架構最初是為自然語言處理(NLP)任務設計的。ViT的提出打破了傳統視覺神經網絡(CNN)在計算機視覺中的地位主導,采用了Transformer的自注意力機制來處理圖像。
隨著Transformer在自然語言處理(NLP)領域的成功應用。在計算機視覺研究中,人們對視覺轉換器 (ViT) 和多層感知器 (MLP) 的興趣日益濃厚。
ViT的出現標志著計算機視覺模型的一次范式轉變,它不再依賴于傳統的卷積操作,而是通過Transformer的自注意力機制來處理圖像數據。這一創新模型在多個大型圖像分類任務中,超越了CNN的表現,并為計算機視覺帶來了新的思路。
-
參考論文:https://arxiv.org/pdf/2010.11929
一、ViT模型的起源和歷史
以下是關于視覺轉換器(Vision Transformer)和相關模型的表格,涵蓋了從2017年Transformer的誕生到2021年ViT及其變種的重要發展:
這個表格展示了Transformer架構及其在視覺任務中的發展歷程,從最初的NLP模型,到BERT、GPT-3等語言模型,再到DETR、ViT及其變種在計算機視覺領域的成功應用。
二、什么是ViT?
Vision Transformer (ViT) 模型架構是在ICLR 2021上作為會議論文發表的一篇研究論文中介紹的,該論文題為“An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale”。它由Neil Houlsby、Alexey Dosovitskiy和Google Research Brain Team的另外10位作者開發和發布。
ViT的設計靈感來源于Transformer架構,最初Transformer的提出是為了處理NLP任務的序列數據(如文本),它通過自注意力捕捉機制來捕捉圖像中各部分之間的全局依賴。ViT的關鍵創新在于,將圖像數據也視為一個“序列”,而通過Transformer的自注意力機制來捕捉圖像中各部分之間的全局依賴。
-
圖像處理流程
ViT將輸入圖像分解幾個固定大小的塊(patches),每個塊可以扣一個“圖像的令牌”,然后對每個塊進行展平(flatten)操作,將每個塊轉化為一個保護。這些處理會被形成Transformer模型,通過自注意力機制進行處理,捕獲圖像各部分的全局關聯。
具體流程如下:?
圖像切分
將輸入圖像(例如大小為𝐻×𝑊的RGB圖像)劃分為多個不重疊的小塊(patches),小塊的尺寸通常設置𝑃×𝑃。
展平與線性映射
每個𝑃×𝑃塊的大小被展平為一個一維,大小為𝑃2×𝑃,其中C是每個圖像塊的通道數(例如RGB三通道)。接著,通過一個線性層(又稱為投影層)進行放大器映射到模型所需的維度(通常是與Transformer模型中隱藏狀態相同的維度)。
位置編碼
由于Transformer本身不具備空間信息的處理能力,ViT在圖像塊的支持上加上位置編碼(Positional Encoding),以保留圖像的空間結構。
Transformer編碼器
這些圖像塊的處理(包括位置編碼)作為輸入確定Transformer編碼器。Transformer通過自注意力機制最終處理這些輸入,生成的特征表示。
分類頭(Classification Head)
通過一個全連接層(Fully Connected Layer)將Transformer輸出的特征映射到目標類別空間,完成分類任務。
-
自注意力機制
在ViT中,最核心的部分是自注意力機制。它通過計算輸入關注之間的相關性來決定每個輸入關注對其他關注的程度。簡單地說,自注意力機制使得每個圖像塊不僅可以考慮其自身的信息,還可以從圖像中的其他區域獲取信息。這種全局依賴的建模對于復雜的視覺任務關系至關重要。
因此,自注意力機制會計算輸入數據的加權和,其中權重是根據輸入特征之間的相似性計算的。這使得模型能夠更加重視相關的輸入特征,從而幫助它捕獲輸入數據中更具信息性的表示。
所以,自注意力機制(Self-Attention)使得ViT能夠在圖像中建模各個區域之間的長距離依賴,而這正是ViT相對于傳統卷積神經網絡(CNN)的一個關鍵優勢。
-
注意力圖
在ViT的多頭自注意力(Multi-Head Self-Attention,MHSA)機制中,每個輸入的圖像塊(Patch)都會與其他圖像塊進行關聯,并分配不同的注意力權重。
ViT的注意力圖通常來自自注意力權重矩陣,該矩陣存儲了所有圖像塊之間的注意力分布。
在ViT的每一層,注意力權重由Softmax(Q·K?/√d_k)計算得出:
計算出的Softmax(Q·K?/√d_k)形成一個𝑁×𝑁的矩陣,表示每個圖像塊(Patch)對其他塊的注意力分布。
注意力圖本質上就是這些權重的可視化,我們可以將注意力圖可視化為熱圖網格,其中每個熱圖代表給定標記與所有其他標記之間的注意力權重。熱圖中像素的顏色越亮,相應標記之間的注意力權重就越高。通過分析注意力圖,我們可以深入了解圖像的哪些部分對于手頭的分類任務最重要。
三、Coovally AI模型訓練與應用平臺?
Coovally AI模型訓練與應用平臺,它整合了整合30+國內外開源社區1000+模型算法。??
平臺已部署ViT系列模型算法
在Coovally平臺上,無需配置環境、修改配置文件等繁瑣操作,可一鍵另存為我的模型,上傳數據集,即可使用ViT等熱門模型進行訓練與結果預測,全程高速零代碼!而且模型還可分享與下載,滿足你的實驗研究與產業應用。
四、ViT與圖像分類
圖像分類是計算機視覺領域的一項基本任務,涉及根據圖像內容為圖像分配標簽。ViT是專門為了圖像分類任務之一而設計的深度學習模型。多年來,像YOLOv7這樣的深度CNN一直是用圖像分類的SOTA方法。
然而,隨著Transformer架構在自然語言處理(NLP)任務中的成功,研究人員將Transformer模型引入圖像分類任務,ViT就是其中的重要成果。
計算機視覺研究表明,當使用足夠量的數據進行預訓練時,ViT模型至少與ResNet模型一樣強大。
其他論文表明,Vision Transformer模型在隱私保護圖像分類方面具有巨大潛力,并且在抗攻擊性和分類準確性方面優于SOTA方法。
五、CNN與ViT對比
與CNN相比,Vision Transformer(ViT)取得了顯著的成果,同時獲得的預訓練計算資源卻少得多。與CNN相比,Vision Transformer(ViT)表現出的歸納偏差通常較弱,導致在較小的數據集上進行訓練時更加依賴模型正則化或數據增強(AugReg)。
-
效率
CNN通過局部感受野進行特征提取,計算量隨著網絡層數量的增加而增加。而ViT由于使用自注意力機制,其計算復雜度通常為在2),其中N是輸入序列的長度(即圖像塊的數量)。因此,ViT在處理大圖像時,計算量可能會比CNN大,但隨著硬件性能的提升,Transformer架構也逐漸能夠在大型數據集上訓練高效。
-
提取特征的方式
CNN通過拓撲操作進行特征提取,注重局部特征的學習,尤其擅長捕獲空間的局部信息。而ViT則通過自注意力機制進行全局特征的學習,能夠捕獲圖像中不同區域之間的長距離依賴。對于復雜的圖像任務,ViT的全局建模能力通常能夠超越CNN的局部建模。
-
數據需求
CNN模型一般能夠在較小的數據集上取得訓練的表現,但ViT通常需要大量的數據才能進行有效的。在數據量較小的情況下,ViT的性能可能不如 CNN。因此,ViT在數據量的任務中表現更為重要。雖然Transformer架構已成為涉及自然語言處理(NLP)的任務的最高標準,但其與計算機視覺(CV)相關的用例仍然很少。在許多計算機視覺任務中,將注意力機制與卷積神經網絡(CNN)結合使用,或者在保留CNN整體結構的同時替代CNN的某些方面。流行的圖像識別模型包括ResNet、VGG、YOLOv3、YOLOv7或YOLOv8以及Segment Anything(SAM)。
然而,這種對CNN的依賴并不是強制性的,直接應用于圖像塊序列的純變換器可以在圖像分類任務中發揮出色的作用。
六、ViT用例和應用
ViT在流行的圖像識別任務中有著廣泛的應用,例如物體檢測、分割、圖像分類和動作識別。此外,ViT在生成建模和多模態任務中也有廣泛應用,包括視覺基礎任務、視覺問答和視覺推理等。
-
圖像分類
大規模分類:Google的ViT模型在JFT-300M等超大數據集上訓練后,分類精度超越ResNet。
細粒度分類:如鳥類或植物物種識別,ViT可區分細微紋理差異(如羽毛顏色、葉片形狀)。
-
目標檢測與分割
自動駕駛:ViT用于道路場景中車輛、行人檢測,利用全局上下文減少遮擋誤判。
醫療影像:分割腫瘤區域時,ViT的長程依賴建模能識別病灶邊緣的擴散特征。
-
圖像生成
藝術創作:生成風格化圖像時,ViT的自注意力機制能協調全局色彩與局部筆觸。
數據增強:為小樣本任務生成逼真訓練數據(如罕見病醫學影像)。
-
多模態任務
CLIP模型:OpenAI的CLIP利用ViT提取圖像特征,與文本編碼對齊,支持零樣本圖像檢索。
視頻理解:將視頻幀序列輸入ViT,結合時間建模(如TimeSformer)分析動作時序。
ViT通過其全局建模能力,正在重塑計算機視覺領域,未來或與CNN形成互補,成為多模態智能系統的核心組件。
七、ViT的挑戰
雖然ViT在多個任務中取得了優異的成績,但它也面臨一些挑戰,包括與架構設計、泛化、魯棒性、可解釋性和效率相關的問題。
-
大規模數據集的依賴
ViT在訓練時大量的數據才能發揮其優勢。由于ViT基于Transformer架構,而Transformer模型在自然語言處理(NLP)中表現出色,主要是因為它能夠從大量的文本數據中學習到豐富的上下文信息。在任務關系中,ViT也需要大量的圖像數據來學習有效的特征,尤其是全局。
-
計算復雜度和內存消耗
ViT的計算復雜度較高,尤其是在處理大圖像時。Transformer的自注意力機制需要計算所有圖像塊之間的相似程度,這會導致時間和內存的消耗呈平方級增長。特別是在圖像分割成更多小塊時,計算的成本將顯著增加。
-
長距離依賴建模的困難
雖然ViT的自注意力機制能夠建模全局的長距離依賴,但在某些復雜的視覺任務中,ViT可能仍然難以捕捉圖像中的長距離空間信息,特別是在較淺的層次中。
總體而言,雖然ViT的Transformer架構是視覺處理任務的一個有前途的選擇,但在ImageNet等中型數據集上從頭開始訓練時,ViT的性能仍然不如類似規模的CNN替代方案(例如ResNet)。
八、總結
ViT模型的提出標志著計算機視覺領域的一次重要突破,展現了Transformer架構在圖像處理中的潛力。相比于傳統的CNN,ViT通過自注意力機制實現了全局建模,能夠捕捉更復雜的圖像特征,尤其在大規模數據集上的表現非常優異。盡管ViT在計算復雜度和數據需求上存在一些挑戰,但隨著硬件的進步和優化算法的提出,ViT無疑會成為未來計算機視覺領域的一個重要方向。
隨著研究的深入,我們有理由相信,ViT和Transformer的變種將在未來的視覺任務中發揮更大的作用。