將 Transformer 架構應用於圖像的方法,透過將圖像分割為固定大小的區塊(例如 16×16 像素),將每個區塊視為「token」,然後用標準的 Transformer 注意力處理區塊序列。ViT(Dosovitskiy 等人,2020 年)表明,在有足夠資料的情況下,Transformer 可以在圖像任務上匹配或超越 CNN,統一了語言和視覺的架構。
ViT 證明了 Transformer 是一個通用架構 — 不僅適用於文本,也適用於圖像。這種統一促成了多模態模型的爆發:如果圖像和文本都是由相同架構處理的 token 序列,那麼組合它們就變得自然。ViT 是 CLIP 中的圖像編碼器、DiT 的骨幹,也是現代電腦視覺的基礎。
處理流程:(1) 將 224×224 的圖像分割為 196 個 16×16 像素的區塊,(2) 將每個區塊展平為向量並通過線性層投影以建立區塊嵌入,(3) 加入位置嵌入以便模型知道每個區塊的位置,(4) 在前面加上一個 [CLS] token,其最終表示用於分類,(5) 通過標準 Transformer 編碼器層處理。輸出是一系列區塊表示,可用於分類、檢測或作為其他模型的特徵。
CNN 具有內建的歸納偏差:局部性(鄰近像素相關)和平移等變性(無論位置如何都能識別模式)。ViT 兩者都沒有 — 它將區塊視為無序集合(位置來自學習到的嵌入)並平等地關注所有區塊。這使得 ViT 在小資料集上的資料效率低於 CNN,但在大資料集上更強大,因為它可以從資料中學習這些偏差,而非將其硬編碼。
ViT 衍生了一系列視覺 Transformer:DeiT(資料高效訓練)、Swin Transformer(帶有移位視窗的層次化視覺)、MAE(用於自監督視覺的遮罩自編碼器),以及 DINO/DINOv2(自監督視覺表示)。這些模型現在主導視覺任務:圖像分類、物件檢測、分割和特徵提取。ViT 架構也是大多數多模態模型(LLaVA、GPT-4V)中的圖像編碼器。