Vision Transformer:打破CNN壟斷,全局注意力機制重塑計算機視覺范式

目錄

引言

一、ViT模型的起源和歷史

二、什么是ViT?

圖像處理流程

圖像切分

展平與線性映射

位置編碼

Transformer編碼器

分類頭(Classification Head)

自注意力機制

注意力圖

三、Coovally AI模型訓練與應用平臺?

四、ViT與圖像分類

五、CNN與ViT對比

效率

提取特征的方式

數據需求

六、ViT用例和應用

圖像分類

目標檢測與分割

圖像生成

多模態任務

七、ViT的挑戰

大規模數據集的依賴

計算復雜度和內存消耗

長距離依賴建模的困難

八、總結


引言

ViT(Vision Transformer)是一種用于圖像處理的深度學習模型,基于Transformer架構,該架構最初是為自然語言處理(NLP)任務設計的。ViT的提出打破了傳統視覺神經網絡(CNN)在計算機視覺中的地位主導,采用了Transformer的自注意力機制來處理圖像。

0_Rtb7Jt6378xfe6Z1.png

隨著Transformer在自然語言處理(NLP)領域的成功應用。在計算機視覺研究中,人們對視覺轉換器 (ViT) 和多層感知器 (MLP) 的興趣日益濃厚。

ViT的出現標志著計算機視覺模型的一次范式轉變,它不再依賴于傳統的卷積操作,而是通過Transformer的自注意力機制來處理圖像數據。這一創新模型在多個大型圖像分類任務中,超越了CNN的表現,并為計算機視覺帶來了新的思路。

  • 參考論文:https://arxiv.org/pdf/2010.11929


一、ViT模型的起源和歷史

以下是關于視覺轉換器(Vision Transformer)和相關模型的表格,涵蓋了從2017年Transformer的誕生到2021年ViT及其變種的重要發展:

screenshot_2025-02-10_11-18-27.png

這個表格展示了Transformer架構及其在視覺任務中的發展歷程,從最初的NLP模型,到BERT、GPT-3等語言模型,再到DETR、ViT及其變種在計算機視覺領域的成功應用。


二、什么是ViT?

screenshot_2025-02-10_13-59-09.png

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中,最核心的部分是自注意力機制。它通過計算輸入關注之間的相關性來決定每個輸入關注對其他關注的程度。簡單地說,自注意力機制使得每個圖像塊不僅可以考慮其自身的信息,還可以從圖像中的其他區域獲取信息。這種全局依賴的建模對于復雜的視覺任務關系至關重要。

0_0KPEV8QidHkteKeY.png

因此,自注意力機制會計算輸入數據的加權和,其中權重是根據輸入特征之間的相似性計算的。這使得模型能夠更加重視相關的輸入特征,從而幫助它捕獲輸入數據中更具信息性的表示。

所以,自注意力機制(Self-Attention)使得ViT能夠在圖像中建模各個區域之間的長距離依賴,而這正是ViT相對于傳統卷積神經網絡(CNN)的一個關鍵優勢。

  • 注意力圖

在ViT的多頭自注意力(Multi-Head Self-Attention,MHSA)機制中,每個輸入的圖像塊(Patch)都會與其他圖像塊進行關聯,并分配不同的注意力權重。

screenshot_2025-02-10_11-19-24.png

ViT的注意力圖通常來自自注意力權重矩陣,該矩陣存儲了所有圖像塊之間的注意力分布。

在ViT的每一層,注意力權重由Softmax(Q·K?/√d_k)計算得出:

screenshot_2025-02-10_11-25-10.png

計算出的Softmax(Q·K?/√d_k)形成一個𝑁×𝑁的矩陣,表示每個圖像塊(Patch)對其他塊的注意力分布。

screenshot_2025-02-10_11-24-07.png

注意力圖本質上就是這些權重的可視化,我們可以將注意力圖可視化為熱圖網格,其中每個熱圖代表給定標記與所有其他標記之間的注意力權重。熱圖中像素的顏色越亮,相應標記之間的注意力權重就越高。通過分析注意力圖,我們可以深入了解圖像的哪些部分對于手頭的分類任務最重要。


三、Coovally AI模型訓練與應用平臺?

Coovally AI模型訓練與應用平臺,它整合了整合30+國內外開源社區1000+模型算法。??

screenshot_2025-02-10_14-25-15.png

平臺已部署ViT系列模型算法

在Coovally平臺上,無需配置環境、修改配置文件等繁瑣操作,一鍵另存為我的模型,上傳數據集,即可使用ViT等熱門模型進行訓練與結果預測,全程高速零代碼而且模型還可分享與下載,滿足你的實驗研究與產業應用。

screenshot_2025-02-10_14-25-46.png


四、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)。

screenshot_2025-02-10_14-14-37.png

  • 效率

CNN通過局部感受野進行特征提取,計算量隨著網絡層數量的增加而增加。而ViT由于使用自注意力機制,其計算復雜度通常為在2),其中N是輸入序列的長度(即圖像塊的數量)。因此,ViT在處理大圖像時,計算量可能會比CNN大,但隨著硬件性能的提升,Transformer架構也逐漸能夠在大型數據集上訓練高效。

  • 提取特征的方式

CNN通過拓撲操作進行特征提取,注重局部特征的學習,尤其擅長捕獲空間的局部信息。而ViT則通過自注意力機制進行全局特征的學習,能夠捕獲圖像中不同區域之間的長距離依賴。對于復雜的圖像任務,ViT的全局建模能力通常能夠超越CNN的局部建模。

screenshot_2025-02-10_14-13-59.png

  • 數據需求

CNN模型一般能夠在較小的數據集上取得訓練的表現,但ViT通常需要大量的數據才能進行有效的。在數據量較小的情況下,ViT的性能可能不如 CNN。因此,ViT在數據量的任務中表現更為重要。雖然Transformer架構已成為涉及自然語言處理(NLP)的任務的最高標準,但其與計算機視覺(CV)相關的用例仍然很少。在許多計算機視覺任務中,將注意力機制與卷積神經網絡(CNN)結合使用,或者在保留CNN整體結構的同時替代CNN的某些方面。流行的圖像識別模型包括ResNet、VGG、YOLOv3、YOLOv7或YOLOv8以及Segment Anything(SAM)。

screenshot_2025-02-10_14-10-04.png

然而,這種對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的變種將在未來的視覺任務中發揮更大的作用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895281.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895281.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895281.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入淺出:探索 DeepSeek 的強大功能與應用

深入淺出:探索 DeepSeek 的強大功能與應用 在人工智能技術飛速發展的今天,自然語言處理(NLP)作為其重要分支,正逐漸滲透到我們生活的方方面面。DeepSeek 作為一款功能強大的 NLP 工具,憑借其易用性和高效性…

為AI聊天工具添加一個知識系統 之97 詳細設計之38 Token 之3 前端開發

本文要點 要點 本項目(為使用各種聊天工具的聊天者 加掛一個知識系統)前端 的用戶界面上 主要 有 知識圖譜、認知地圖和語義網絡,和 聊天工具的chat嵌入 同時還必須有知識樹 成熟的果實(對外的網頁 ) 以及 組建和參與利益相關組…

輪子項目--消息隊列的實現(3)

上一篇文章中我把一些關鍵的類以及表示出來,如何對這些類對應的對象進行管理呢?管理分為硬盤和內存上,硬盤又分為數據庫(管理交換機,隊列和綁定)和文件(管理消息),本文就…

Svelte前端框架

Svelte 簡介 Svelte 是一個現代的前端框架,用于構建高效、響應式的用戶界面。與 React、Vue 和 Angular 等傳統框架不同,Svelte 在構建時將組件編譯為高效的純 JavaScript 代碼,而不是在瀏覽器中運行一個龐大的運行時庫。這使得 Svelte 應用具…

【轉載】開源鴻蒙OpenHarmony社區運營報告(2025年1月)

●截至2025年1月31日,開放原子開源鴻蒙(OpenAtom OpenHarmony,簡稱“開源鴻蒙”或“OpenHarmony”)社區累計超過8200名貢獻者,共63家成員單位,產生51.2萬多個PR、2.9萬多個Star、10.5萬多個Fork、68個SIG。…

@SneakyThrows:是Java異常處理的“魔法外掛“,還是隱藏的“定時炸彈“?

引言:當Java的異常機制成為"甜蜜的負擔" Java的檢查型異常(Checked Exception)設計本意是提升代碼健壯性,但開發者常常陷入兩難: 要么用try-catch層層包裹代碼導致"金字塔噩夢",要么在…

雙周報Vol.65:新增is表達式、字符串構造和數組模式匹配增強、IDE模式匹配補全增強...多項技術更新!

MoonBit更新 新增 is 表達式 這個表達式的語法形式為 expr is pat,這個表達式為 Bool 類型,當 expr 符合 pat 這個模式的時候返回 true,比如: fn use_is_expr(x: Int?) -> Unit {if x is Some(i) && i > 10 { .…

Git 與持續集成 / 持續部署(CI/CD)的集成

一、引言 在當今快速發展的軟件開發領域,高效的代碼管理和持續的交付流程是項目成功的關鍵因素。Git 作為一款分布式版本控制系統,已經成為了開發者們管理代碼的標配工具;而持續集成 / 持續部署(CI/CD)則是一種能夠加…

百問網imx6ullpro調試記錄(linux+qt)

調試記錄 文章目錄 調試記錄進展1.開發板相關1.1百問網烏班圖密碼 1.2 換設備開發環境搭建串口調試網絡互通nfs文件系統掛載 1.3網絡問題1.4系統啟動1.5進程操作 2.QT2.1tslib1.獲取源碼2.安裝依賴文件3.編譯 2.2qt移植1.獲取qt源碼2.配置編譯器3.編譯 2.3拷貝到開發板1.拷貝2.…

開發中用到的設計模式

目錄 開發中用到的設計模式 工廠模式 設計理念 好處 體現的編程思想 適配器模式 概念 策略模式和適配器模式的區別 選擇策略模式而非適配器模式的原因 設計模式的開發原則 開發中用到的設計模式 在開發過程中,常見的設計模式會根據不同的業務場景和需求被…

1064 - You have an error in your SQL syntax;

在創建數據庫表建立外鍵是遇到了如下報錯 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near position(position_id) ) at line 8 數據庫表sql如下: --職位表 CR…

無人機 ,遙控器與接收機之前的通信

目錄 1、信號類型 2、工作頻率 3、通信協議 3.1、PPM 協議 3.2、SBUS 協議 3.3、CRSF 協議 無人機的遙控器和接收機之間常用的信號、頻率、協議等相關信息如下: 1、信號類型 模擬信號 特點:信號的幅度、頻率或相位等參數是連續變化的&#xff0c…

【c++】四種類型轉換形式

【c】四種類型轉換形式 編譯時: static_cast(靜態轉換) const_cast(去常性轉換) reinterpret_cast(重新解釋轉換,直接轉換地址) 運行時: dynamic_cast(動態轉換,運行時類…

Cisco ASR1002查看資源占用的幾條命令

查看平臺資源 show platform resource 該命令用于顯示整個平臺的資源使用情況,包括 CPU、內存等 example: ASR1002# show platform resources **State Acronym: H - Healthy, W - Warning, C - Critical Resource…

Day 1:認知革命與DeepSeek生態定位

目標:建立對大模型技術范式的系統性認知,掌握DeepSeek的核心技術特性與生態價值 一、大模型技術演進:從GPT到DeepSeek 1.1 技術發展里程碑 2017-Transformer突破:Self-Attention機制如何突破RNN的序列建模瓶頸 2018-GPT初代&…

Python自動化辦公之Excel拆分

在日常辦公中,我們經常需要將包含多個Sheet頁的Excel文件拆分成多個獨立的Excel文件。例如,在發送Excel表給各部門確認時,出于控制知悉范圍最小等保密性考慮,每個部門只需要查看和確認自己部門對應的Sheet頁。手動拆分Excel文件非…

【CXX-Qt】1.1 Rust中的QObjects

本文涉及到了使用CXX-Qt將Rust、C和QML集成到Qt應用程序中的各個方面。下面,我將提供一個簡單的示例,演示如何使用CXX-Qt來創建一個Rust結構體并將其作為QObject子類暴露給C和QML。 一、設置CXX-Qt環境 首先,確保您已經安裝了Rust、CXX和CX…

Conda命令整理

Conda 是一個功能強大的包和環境管理工具,廣泛用于 Python 開發中。除了基本的包和環境管理功能外,Conda 還提供了許多高級用法和技巧,幫助用戶更高效地管理和維護 Python 環境。 1. 管理 Conda 本身 命令描述示例conda --version查看 Cond…

C++模擬實現AVL樹

目錄 1.文章概括 2.AVL樹概念 3.AVL樹的性質 4.AVL樹的插入 5.旋轉控制 1.左單旋 2. 右單旋 3.左右雙旋 4.右左雙旋 6.全部代碼 1.文章概括 本文適合理解平衡二叉樹的讀者閱讀,因為AVL樹是平衡二叉樹的一種優化,其大部分實現邏輯與平衡二叉樹是…

opc da 服務器數據 轉 EtherCAT項目案例

目錄 1 案例說明 2 VFBOX網關工作原理 3 應用條件 4 查看OPC DA服務器的相關參數 5 配置網關采集opc da數據 6 啟動EtherCAT從站轉發采集的數據 7 在服務器上運行仰科OPC DA采集軟件 8 案例總結 1 案例說明 在OPC DA服務器上運行OPC DA client軟件查看OPC DA服務器的相…