Vision Transformers_相關專業術語與原理_一些最具影響力的純視覺 Transformer

 
Vision Transformers(視覺變換器)
事實上在ViT被發展出來之前,已有帶視覺注意力的 RNN 與混合 CNN-Transformer 模型。

ViT 的前身
RNNs with Visual Attention(具視覺注意力的循環神經網路)
Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

最早主要提出了自動根據一張影像來生成一段文字描述
注意力機制在自然語言處理之外的最早應用之一,是使用視覺注意力來生成影像描述。
  • 在這裡,卷積神經網路會先處理影像並輸出一些特徵圖。
  • 接著配備注意力機制的解碼器,RNN 會一次產生一個詞元來生成描述。
  • 解碼器在每個解碼步驟使用注意力層,專注於影像中恰當的部分。

模型生成了描述「A woman is throwing a Frisbee in a park」,可觀察到當解碼器即將輸出單字「Frisbee」時,它將注意力集中在哪個輸入影像的區域:很明顯,大部分注意力都集中在飛盤上。其他還有像是聚焦在一個小女孩或一隻狗等,都是聚焦在英文句子主詞的注意力。

注意力機制的另一個額外好處是,它們讓人更容易理解促使模型產生輸出的原因。
模型會具有可解釋性,當模型犯錯時,這尤其有用。
在2016年論文中就有探討到如下案例。
"Why Should I Trust You?": Explaining the Predictions of Any Classifier
例如,如果一張在雪地裡散步的狗的影像被標註為「在雪地裡散步的狼」,那麼你可以回頭檢查模型在輸出「狼」這個詞時注意了什麼。你可能會發現它不只注意到狗,也注意到雪,這暗示了一個可能的解釋:也許模型學會透過檢查周遭是否有大量雪來區分狗與狼。

該論文提出了另一種可解釋性的方法:在分類器某次預測的局部鄰域內,學習一個可解釋的模型來解釋該預測。

以下一些最具影響力的純視覺 Transformer,只在分類任務中(目標檢測或語義分割)

1.DETR (Detection Transformer) / 2020 年 5 月(Facebook)
屬於一種早期用在目標檢測的encoder-decoder Transformer。
A CNN-Transformer Hybrid for Object Detection
在 2020 年 5 月,Facebook 的一組研究者提出了一種用於物件偵測的混合 CNN–transformer 架構,又稱作為DETR(Detection Transformer)。

  • CNN 先處理輸入影像並輸出一組特徵圖。
  • 接著這些特徵圖被轉換成一個視覺 token 序列並輸入至encoder-decoder transformer。
  • 最後 transformer 輸出一系列的邊界框預測。



2.最原始的 ViT (Vision Transformer) / 2020年10月(Google)

僅由編碼器組成的 Transformer,將影像切成的「小區塊」當作文字的詞元(tokens)來處理;若用大型資料集訓練,能達到最先進(SOTA,state-of-the-art)的表現。
在 2020 年 10 月,一組 Google 研究人員發表了一篇論文 ,介紹了第一個不使用 CNN 的視覺轉換器,被簡單地命名為視覺轉換器(ViT)。論文主題就是「一張影像等於 16 × 16 個詞」。

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
圖片取自論文 https://arxiv.org/pdf/2010.11929  
這個想法出奇地簡單:將影像切成小小的 16 × 16 貼片,並將這些貼片序列視為一連串的詞表示。事實上,論文的標題就是「一張影像等於 16 × 16 個詞」。
  • 影像會先被切成補丁,並攤平為 16 × 16 × 3 = 768 維的向量(在此的 3 代表 RGB 色彩通道)。(例如:一張 224 × 224 的影像會被切成 14 × 14 = 196 個補丁,因此會得到 196 個各自為 768 維的向量。)
  • 這些向量接著會通過一個線性層,將向量投影到 transformer 的嵌入維度。
  • 得到的向量序列之後就可以像處理詞嵌入序列一樣處理
  • 加入可學習的位置嵌入
  • 將結果傳入 transformer(一般的僅編碼器模型)。
  • 在序列開頭插入一個具有可訓練表示的(trainable representation)類別標記,並在對應的輸出上方加上一個classification head。
這個模型在 ImageNet 影像分類任務上擊敗了當時的最先進方法,但更客觀公平來說,作者必須使用超過三億張額外影像進行訓練。
這也十分合理,因為 transformer 沒有像捲積神經網路那麼多的歸納偏置(inductive biases),因此它們需要額外的資料來學習那些 CNN 隱含假設(implicitly assume)的東西。

inductive biases(常譯:歸納偏置/歸納偏差)是指:
為了讓模型能在看過的資料之外做合理泛化,事先內建在模型裡的一組假設、偏好或規則。
沒有偏置則會造成模型自由度太大,容易過擬合,需要很多資料。


3.DeiT (Data-Efficient Image Transformer) / 2020年 12月
資料高效影像變換器,是一款透過蒸餾(distillation)在大規模訓練下更具數據效率的 ViT。

Training data-efficient image transformers & distillation through attention

在 Google 的 ViT 論文發表後僅兩個月,Facebook 的一組研究人員則快馬加鞭地又發表了資料效率高的影像轉換器(DeiT)。他們的 DeiT 模型在不需要任何額外訓練資料的情況下,就在 ImageNet 上取得了具競爭力的結果。該模型的架構與原始 ViT 幾乎相同。

但作者使用了一種蒸餾技術,將知識從教師模型轉移到其學生 ViT 模型。


4.Pyramid Vision Transformer , PVT / 2021年 2月
Pyramid Vision Transformer for dense prediction tasks
一種能為語義分割和其他密集預測任務產生多尺度特徵圖的分層模型。

2021 年 ViT 領域又蓬勃發展,新模型幾乎每隔一週就推進一次最新技術。
一個重要的里程碑是 2021 年 2 月發布的 Pyramid Vision Transformer (PVT),由南京大學、香港大學、IIAI 與商湯研究團隊共同開發。
Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions

他們指出最原始的 ViT 架構在分類任務上表現良好,但在需要細緻解析度的密集預測任務上則不盡理想。為了解決這個問題,他們提出了一種金字塔式架構,將影像處理成逐步變小但更深(即語意更豐富)的影像,類似於 CNN。
如下圖所見
顯示一張 256 × 192、3 通道(RGB)的影像先被轉為 64 × 48、64 通道
接著變為 32 × 24、128 通道。
然後為 16 × 12、320 通道。
最後為 8 × 6、512 通道。

在每一個金字塔層級,輸入影像的處理方式與一般的 ViT 非常相似。
影像首先被切成小貼片並轉成一串貼片標記,接著加入可訓練的位置嵌入。
然後將產生的標記送入由多個編碼器層組成的僅編碼器型變壓器中。
儘管採用了空間縮減注意力,它仍然計算量龐大。



5.Swin Transformer (Shifted Windows Transformer) / 2021年 5月
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
2021 年 3 月,微軟的一組研究人員發表了 Swin Transformer。
和 PVT 一樣,其具有分層結構,能產生可用於密集預測任務的多尺度特徵圖。
但 Swin 採用了一種截然不同的多頭注意力變體:
  • 每個 patch 只關注位於同一視窗內的 patch。
  • 這稱為基於視窗的多頭自注意力(W-MSA),它使自注意力的計算成本可隨影像大小(即面積)線性擴展,而非二次方擴展。

於上圖最左側,影像被切割成 28 × 28 的貼片網格,這些貼片被分組為互不重疊的視窗。
在 Swin 金字塔的第一層,貼片通常為 4 × 4 像素,每個視窗包含 7 × 7 的貼片網格。

所以總共有 784 個貼片標記(28 × 28),但每個標記只關注 49 個標記(7 × 7),因此 W-MSA 層只需要計算 784 × 49 = 38,416 個注意力分數,而非一般多頭注意力(MHA)所需的 784 × 784 = 614,656 個分數。

如果我們將影像的寬度與高度都加倍,patch 令牌的數量會變為四倍,但每個令牌仍只會關注 49 個令牌,因此我們只需計算多 4 倍的注意力分數。

Swin Transformer 的計算成本會隨影像面積線性成長,所以它能處理大型影像。相反地,ViT、DeiT 與 PVT 全部呈二次方增長:若將影像寬度與高度加倍,面積會變為四倍,而計算成本則會被放大 16 倍!因此,這些模型對於非常大的影像來說速度實在太慢,也代表必須先對影像做下採樣,而這可能會傷害模型的準確度。


6.DINO (self-Distillation with NO labels) 無標籤自我蒸餾 / 2021年 4月
在 2021 年 4 月,Mathilde Caron 等人提出了 DINO,一種令人印象深刻的自我監督訓練技術,能產生可用於生成優異影像表徵的模型。這些表徵後續可用於分類及其他任務。
Emerging Properties in Self-Supervised Vision Transformers
在訓練時模型會被複製成兩個網路,其中一個作為教師網路,另一個作為學生網路

  • 梯度下降僅影響學生,而教師的權重只是學生權重的指數移動平均(EMA)。這稱為動量教師(momentum teacher)。
  • 學生被訓練去匹配教師的預測。
  • 由於兩者幾乎是相同的模型,所以稱為自蒸餾(self-distillation),也因此該模型被命名為「無標籤自蒸餾」(self-distillation with no labels)。
  • 在每個訓練步驟中,輸入影像會以各種方式進行增強(色彩抖動、灰階、高斯模糊、水平翻轉等)。
  • 重要的是,對教師與學生的增強方式不同:
    教師總是看到整張影像、僅作輕微增強,而學生常常只看到放大裁切的影像區塊,並接受更強烈的增強。簡言之,教師與學生並不會看到原始影像的相同變體,但它們的預測仍必須相符。這迫使它們在高階表徵上達成一致。







留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題