首頁科技 > 正文

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

2021-04-14由 機器之心 發表于 科技

機器之心專欄

機器之心編輯部

華為諾亞實驗室的研究者提出了一種新型視覺 Transformer 網路架構 Transformer in Transformer,它的表現優於谷歌的 ViT 和 Facebook 的 DeiT。論文提出了一個全新的 TNT 模組(Transformer iN Transformer),旨在透過內外兩個 transformer 聯合提取影象區域性和全域性特徵。透過堆疊 TNT 模組,研究者搭建了全新的純 Transformer 網路架構——TNT。值得注意的是,TNT 還暗合了 Geoffrey Hinton 最新提出的 part-whole hierarchies 思想。在 ImageNet 影象識別任務上,TNT 在相似計算量情況下的 Top-1 正確率達到 81。3%,高於 DeiT 的 79。8% 和 ViT 的 77。9%。

Transformer 網路推動了諸多自然語言處理任務的進步,而近期 transformer 開始在計算機視覺領域嶄露頭角。例如,DETR 將目標檢測視為一個直接集預測問題,並使用 transformer 編碼器 - 解碼器架構來解決它;IPT 利用 transformer 在單個模型中處理多個底層視覺任務。與現有主流 CNN 模型(如 ResNet)相比,這些基於 transformer 的模型在視覺任務上也顯示出了良好的效能。

谷歌 ViT(Vision Transformer)模型是一個用於視覺任務的純 transformer 經典技術方案。它將輸入圖片切分為若干個影象塊(patch),然後將 patch 用向量來表示,用 transformer 來處理影象 patch 序列,最終的輸出做影象識別。但是 ViT 的缺點也十分明顯,它將影象切塊輸入 Transformer,影象塊拉直成向量進行處理,因此,影象塊內部結構資訊被破壞,忽略了影象的特有性質。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

圖 1:谷歌 ViT 網路架構。

在這篇論文中,來自華為諾亞實驗室的研究者提出一種用於基於結構巢狀的 Transformer 結構,被稱為 Transformer-iN-Transformer (TNT) 架構。同樣地,TNT 將影象切塊,構成 Patch 序列。不過,TNT 不把 Patch 拉直為向量,而是將 Patch 看作畫素(組)的序列。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

論文連結:https://arxiv。org/pdf/2103。00112。pdf

具體而言,新提出的 TNT block 使用一個外 Transformer block 來對 patch 之間的關係進行建模,用一個內 Transformer block 來對畫素之間的關係進行建模。透過 TNT 結構,研究者既保留了 patch 層面的資訊提取,又做到了畫素層面的資訊提取,從而能夠顯著提升模型對區域性結構的建模能力,提升模型的識別效果。

在 ImageNet 基準測試和下游任務上的實驗均表明了該方法在精度和計算複雜度方面的優越性。例如, TNT-S 僅用 5。2B FLOPs 就達到了 81。3% 的 ImageNet top-1 正確率,這比計算量相近的 DeiT 高出了 1。5%。

方法

影象預處理

影象預處理主要是將 2D 影象轉化為 transformer 能夠處理的 1D 序列。這裡將影象轉化成 patch embedding 序列和 pixel embedding 序列。影象首先被均勻切分成若干個 patch,每個 patch 透過 im2col 操作轉化成畫素向量序列,畫素向量透過線性層對映為 pixel embedding。而 patch embedding(包括一個 class token)是一組初始化為零的向量。具體地,對於一張影象,研究者將其均勻切分為 n 個 patch:

其中是 patch 的尺寸。

Pixel embedding 生成:對於每個 patch,進一步透過 pytorch unfold 操作將其轉化成 m 個畫素向量,然後用一個全連線層將 m 個畫素向量對映為 m 個 pixel embedding:

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

其中和,c 是 pixel embedding 的長度。N 個 patch 就有 n 個 pixel embedding 組:

Patch embedding 生成:初始化 n+1 個 patch embedding 來儲存模型的特徵,它們都初始化為零:

其中第一個 patch embedding 又叫 class token。

Position encoding:對每個 patch embedding 加一個 patch position encoding:

對每個 pixel embedding 加一個 pixel position encoding:

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

兩種 Position encoding 在訓練過程中都是可學習的引數。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

圖 2:位置編碼。

Transformer in Transformer 架構

TNT 網路主要由若干個 TNT block 堆疊構成,這裡首先介紹 TNT block。TNT block 有 2 個輸入,一個是 pixel embedding,一個是 patch embedding。對應地, TNT block 包含 2 個標準的 transformer block。

如下圖 3 所示,研究者只展示了一個 patch 對應的 TNT block,其他 patch 是一樣的操作。首先,該 patch 對應的 m 個 pixel embedding 輸入到內 transformer block 進行特徵處理,輸出處理過的 m 個 pixel embedding。Patch embedding 輸入到外 transformer block 進行特徵處理。其中,這 m 個 pixel embedding 拼接起來構成一個長向量,透過一個全連線層對映到 patch embedding 所在的空間,加到 patch embedding 上。最終,TNT block 輸出處理過後的 pixel embedding 和 patch embedding。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

圖 3:Transformer in Transformer 架構。

透過堆疊 L 個 TNT block,構成了 TNT 網路結構,如下表 1 所示,其中 depth 是 block 個數,#heads 是 Multi-head attention 的頭個數。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

表 1:TNT 網路結構引數。

實驗

ImageNet 實驗

研究者在 ImageNet 2012 資料集上訓練和驗證 TNT 模型。從下表 2 可以看出,在純 transformer 的模型中,TNT 優於所有其他的純 transformer 模型。TNT-S 達到 81。3% 的 top-1 精度,比基線模型 DeiT-S 高 1。5%,這表明引入 TNT 框架有利於在 patch 中保留區域性結構資訊。透過新增 SE 模組,進一步改進 TNT-S 模型,得到 81。6% 的 top-1 精度。與 CNNs 相比,TNT 的效能優於廣泛使用的 ResNet 和 RegNet。不過,所有基於 transformer 的模型仍然低於使用特殊 depthwise 卷積的 EfficientNet,因此如何使用純 transformer 打敗 EfficientNet 仍然是一個挑戰。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

表 2:TNT 與其他 SOTA 模型在 ImageNet 資料集上的對比。

在精度和 FLOPS、引數量的 trade-off 上,TNT 同樣優於純 transformer 模型 DeiT 和 ViT,並超越了 ResNet 和 RegNet 代表的 CNN 模型。具體表現如下圖 4 所示:

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

圖 4:TNT 與其他 SOTA 模型在精度、FLOPS 和引數量指標上的變化曲線。

特徵圖視覺化

研究者將學習到的 DeiT 和 TNT 特徵視覺化,以進一步探究該方法的工作機制。為了更好地視覺化,輸入影象的大小被調整為 1024x1024。此外,根據空間位置對 patch embedding 進行重排,形成特徵圖。第 1、6 和 12 個 block 的特徵圖如下圖 5(a) 所示,其中每個塊隨機抽取 12 個特徵圖。與 DeiT 相比,TNT 能更好地保留區域性資訊。

研究者還使用 t-SNE 對輸出特徵進行視覺化(圖 5(b))。由此可見,TNT 的特徵比 DeiT 的特徵更為多樣,所包含的資訊也更為豐富。這要歸功於內部 transformer block 的引入,能夠建模區域性特徵。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

圖 5:DeiT 和 TNT 特徵圖視覺化。

遷移學習實驗

為了證明 TNT 具有很強的泛化能力,研究者在 ImageNet 上訓練的 TNT-S、TNT-B 模型遷移到其他資料集。更具體地說,他們在 4 個影象分類資料集上評估 TNT 模型,包括 CIFAR-10、CIFAR-100、Oxford IIIT Pets 和 Oxford 102 Flowers。所有模型微調的影象解析度為 384x384。

下表 3 對比了 TNT 與 ViT、DeiT 和其他網路的遷移學習結果。研究者發現,TNT 在大多數資料集上都優於 DeiT,這表明在獲得更好的特徵時,對畫素級關係進行建模具有優越性。

表現優於ViT和DeiT,華為利用內外Transformer塊構建新型視覺骨幹模型TNT

表 3:TNT 在下游任務的表現。

總結

該研究提出了一種用於視覺任務的 transformer in transformer(TNT)網路結構。TNT 將影象均勻分割為影象塊序列,並將每個影象塊視為畫素序列。本文還提出了一種 TNT block,其中外 transformer block 用於處理 patch embedding,內 transformer block 用於建模畫素嵌入之間的關係。線上性層投影后,將畫素嵌入資訊加入到影象塊嵌入向量中。透過堆疊 TNT block,構建全新 TNT 架構。與傳統的視覺 transformer(ViT)相比,TNT 能更好地儲存和建模區域性資訊,用於視覺識別。在 ImageNet 和下游任務上的大量實驗都證明了所提出的 TNT 架構的優越性。

AWS白皮書《策略手冊:資料、 分析與機器學習》

曾儲存過 GB 級業務資料的組織現在發現,所儲存的資料量現已達 PB 級甚至 EB 級。要充分利用這 些海量資料的價值,就需要利用現代化雲資料基礎設施,從而將不同的資訊豎井融合統一。

無論您處於資料現代化改造過程中的哪個階段,本行動手冊都能幫助您完善策略,在整個企業範圍內高效擴充套件資料、分析和機器學習,從而加快創新並推動業務發展。

頂部