close
機器之心報道

機器之心編輯部

在這篇論文中,來自蘋果的研究者提出了一種用於移動設備的輕量級通用視覺 transformer——MobileViT。該網絡在 ImageNet-1k 數據集上實現了 78.4% 的最佳精度,比 MobileNetv3 還要高 3.2%,而且訓練方法簡單。目前,該論文已被 ICLR 2022 接收。


論文鏈接:https://arxiv.org/pdf/2110.02178.pdf

代碼鏈接:https://github.com/apple/ml-cvnets


輕量級卷積神經網絡(CNN)是移動設備機器視覺任務的首選。它們的空間歸納偏置允許它們在不同的視覺任務中,可以使用較少的參數進行視覺內容的學習表示。但是這些網絡在空間上是局部的。為了學習視覺內容的全局表示,要採用基於自注意力的視覺 transformer(ViT)。與 CNN 不同,ViT 是重量級的。在這篇文章中,作者提出了以下問題:是否有可能結合 CNN 和 ViT 的優勢,為移動設備機器視覺任務構建一個輕量級、低延遲的神經網絡模型?

為了解決上面的問題,作者提出了 MobileViT——一種用於移動設備的輕量級通用視覺 transformer。MobileViT 從另一個角度介紹了使用 transformer 進行全局信息處理的方法。

具體來說,MobileViT 使用張量對局部和全局信息進行有效地編碼(圖 1b 所示)。


與 ViT 及其變體(有卷積和無卷積)不同,MobileViT 從不同的角度學習全局表示。標準卷積涉及三個操作:展開、局部處理和摺疊。MobileViT 使用 transformer 將卷積中的局部處理方式替換為全局處理。這使得 MobileViT 兼具 CNN 和 ViT 的特性。這使它可以用更少的參數和簡單的訓練方法(如基本增強)學習更好的表示。該研究首次證明,輕量級 ViT 可以通過簡單的訓練方法在不同的移動視覺任務中實現輕量級 CNN 級性能。

對於大約 500-600 萬的參數,MobileViT 在 ImageNet-1k 數據集上實現了 78.4% 的最佳精度,比 MobileNetv3 還要高 3.2%,而且訓練方法簡單(MobileViT 與 MobileNetv3:300 vs 600 epoch;1024 vs 4096 batch size)。在高度優化的移動視覺任務的體系結構中,當 MobileViT 作為特徵主幹網絡時,性能顯著提高。如果將 MNASNet(Tan 等人,2019 年)替換為 MobileViT,作為 SSDLite(Sandler 等人,2018 年)的特徵主幹網絡,能生成更好的(+1.8%mAP)和更小的(1.8×)檢測網絡(圖 2)。


架構細節

MobileViT 塊

如圖 1b 所示的 MobileViT 塊的作用是使用包含較少參數的輸入張量學習局部和全局信息。形式上,對於給定的輸入張量 X∈ R^(H×W×C),MobileViT 應用一個 n×n 標準卷積層,然後是逐點(1×1)卷積層來生成 X_L∈ R^(H×W×d)。n×n 卷積層編碼局部空間信息,而逐點卷積通過學習輸入通道的線性組合將張量投影到高維空間(或 d 維,其中 d>C)。

有了 MobileViT,我們希望在有效感受野為 H×W 的情況下對長程非局部依賴進行建模。目前研究最多的長程依賴建模方法之一是空洞卷積(dilated convolution)。然而,這種方法需要仔細選擇擴張率(dilation rate)。否則,權重將被應用於填充的零,而不是有效的空間區域(Yu&Koltun,2016;Chen 等人,2017;Mehta 等人,2018)。另一個候選的解決方案是自注意力(Wang 等人,2018 年;Ramachandran 等人,2019 年;Bello 等人,2019 年;Dosovitskiy 等人,2021 年)。在自注意力方法中,具有多頭自注意力的(ViT)已被證明對視覺識別任務是有效的。然而,ViT 是重量級的,並且模型優化能力低於標準,這是因為 ViT 缺少空間歸納偏置(肖等人,2021;格雷厄姆等人,2021)。

為了讓 MobileViT 學習具有空間歸納偏置的全局表示,將 X_L 展開為 N 個非重疊 flattened patches X_U∈ R^(P×N×d)。這裡,P=wh,N=HW/P 是 patch 的數量,h≤ n 和 w≤ n 分別是 patch 的高度和寬度。對於每個 p∈ {1,···,P},通過 transformer 對 patch 間的關係進行編碼以獲得 X_G∈ R^(P×N×d):


與丟失像素空間順序的 ViT 不同,MobileViT 既不會丟失 patch 順序,也不會丟失每個 patch 內像素的空間順序(圖 1b)。因此,我們可以摺疊 X_G∈ R^(P×N×d)以獲得 X_F∈ R^(H×W×d)。然後使用逐點卷積將 X_F 投影到低 C 維空間,並通過級聯操作與 X 組合。然後使用另一個 n×n 卷積層來融合這些連接的特徵。由於 X_U(p)使用卷積對 n×n 區域的局部信息進行編碼,X_G(p)對第 p 個位置的 p 個 patch 的全局信息進行編碼,所以 X_G 中的每個像素都可以對 X 中所有像素的信息進行編碼,如圖 4 所示。因此,MobileViT 的整體有效感受野為 H×W。


與卷積的關係

標準卷積可以看作是三個連續操作:(1)展開,(2)矩陣乘法(學習局部表示)和(3)摺疊。MobileViT 與卷積相似,因為它也利用了相同的構建塊。MobileViT 用更深層的全局處理(transformer 層)取代卷積中的局部處理(矩陣乘法)。因此,MobileViT 具有類似卷積的特性(如空間偏置)。因此,MobileViT 塊可以被視為卷積 transformer 。作者有意簡單設計的優點就是,卷積和 transformer 的底層高效實現可以開箱即用,從而允許我們在不同的設備上使用 MobileViT,而無需任何額外的改動。

輕量級

MobileViT 使用標準卷積和 transformer 分別學習局部和全局表示。相關的研究作(如 Howard et al.,2017;Mehta et al.,2021a)表明,使用這些層設計的網絡量級很重,因此自然會產生一個問題:為什麼 MobileViT 的量級很輕?作者認為,問題主要在於學習 transformer 的全局表示。對於給定的 patch,之前的研究是(如 Touvron 等人,2021a;Graham 等人,2021)通過學習像素的線性組合將空間信息轉換為潛在信息(圖 1a)。然後,通過使用 transformer 學習 patch 間的信息,對全局信息進行編碼。因此,這些模型失去了 CNN 固有的圖像特定歸納偏置。因此,它們需要更強的能力來學習視覺表示。這就導致這些網絡模型既深又寬。與這些模型不同,MobileViT 使用卷積和 transformer 的方式是,生成的 MobileViT 既具有類似卷積的屬性,又同時允許全局處理。這種建模能力使我們能夠設計淺層和窄層的 MobileViT 模型,因此最終的模型很輕。與使用 L=12 和 d=192 的基於 ViT 的模型 DeIT 相比,MobileViT 模型分別在大小為 32×32、16×16 和 8×8 的空間層次上使用 L={2,4,3}和 d={96,120,144},產生的 MobileViT 網絡比 DeIT 網絡更快(1.85×)、更小(2×)、更好(+1.8%)(表 3 所示)。


計算成本

MobileViT 和 ViTs(圖 1a)中多頭自注意力的計算成本分別為 O(N^2Pd)和 O(N^2d)。理論上 MobileViT 效率是比 ViTs 低的。然而在實踐中,MobileViT 實際比 ViTs 更高效。在 ImageNet-1K 數據集上,與 DeIT 相比,MobileViT 的 FLOPs 減少了一半,並且精確度提高了 1.8%(表 3 所示)。這是因為輕量級設計(前面討論)的原因。

MobileViT 架構

作者設計的網絡也是受到輕量級 CNN 理念的啟發。以三種不同的網絡大小(S:small、XS:extra-small 和 XXS:extra-extra-small)訓練 MobileViT 模型,這些網絡通常用於移動視覺任務(圖 3c)。MobileViT 中的初始層是一個 3×3 的標準卷積,然後是 MobileNetv2(或 MV2)塊和 MobileViT 塊(圖 1b 和 §A)。使用 Swish(Elfwing 等人,2018)作為激活函數。按照 CNN 模型,在 MobileViT 塊中使用 n=3。特徵映射的空間維度通常是 2 和 h、w 的倍數≤ n。因此在所有空間級別設置 h=w=2。MobileViT 網絡中的 MV2 模塊主要負責下採樣。因此,這些區塊在 MobileViT 網絡中是淺而窄的。圖 3d 中 MobileViT 的空間水平參數分布進一步表明,在不同的網絡配置中,MV2 塊對網絡參數的貢獻非常小.


實驗結果

IMAGENET-1K 數據集上的圖像分類結果

與 CNN 對比

圖 6a 顯示,在不同的網絡規模(MobileNet v1(Howard et al.,2017)、MobileNet v2(Sandler et al.,2018)、ShuffleNet v2(Ma et al.,2018)、ESPNetv2(Mehta et al.,2019)和 MobileNet v3(Howard et al.,2019))中,MobileNet 在性能上優於輕量級 CNN。對於大約 250 萬個參數的模型(圖 6b),在 ImageNet1k 驗證集上,MobileViT 的性能比 MobileNetv2 好 5%,比 ShuffleNetv2 好 5.4%,比 MobileNetv3 好 7.4%。圖 6c 進一步表明,MobileViT 的性能優於重量級 CNN(ResNet(He 等人,2016 年)、DenseNet(Huang 等人,2017 年)、ResNet SE(Hu 等人,2018 年)和 EfficientNet(Tan&Le,2019a))。對於類似數量的參數,MobileViT 比 EfficientNet 的準確度高 2.1%。


與 ViTs 進行比較

圖 7 將 MobileViT 與在 ImageNet-1k 未蒸餾數據集上從頭開始訓練的 ViT 變體進行了比較(DeIT(Touvron et al.,2021a)、T2T(Yuan et al.,2021b)、PVT(Wang et al.,2021)、CAIT(Touvron et al.,2021b)、DeepViT(Zhou et al.,2021)、CeiT(Yuan et al.,2021a)、CrossViT(Chen et al.,2021a)、LocalViT(Li et al.,2021)、PiT(Heo et al.,2021),ConViT(d』Ascoli 等人,2021 年)、ViL(Zhang 等人,2021 年)、BoTNet(Srinivas 等人,2021 年)和 Mobile-former(Chen 等人,2021b 年)。不像 ViT 變體顯著受益於深層數據增強(例如,PiT w / 基礎與高級:72.4(R4)與 78.1(R17);圖 7b),MobileViT 通過更少的參數和基本的增強實現了更好的性能。例如,MobileViT 只有 DeIT 的 1/2.5 大小,但性能比 DeIT 好 2.6%(圖 7b 中的 R3 和 R8)。


MOBILEVIT 作為通用主幹網絡的表現

移動目標檢測

表 1a 顯示,對於相同的輸入分辨率 320×320,使用 MobileViT 的 SSDLite 優於使用其他輕量級 CNN 模型(MobileNetv1/v2/v3、MNASNet 和 MixNet)的 SSDLite。此外,使用 MobileViT 的 SSDLite 性能優於使用重型主幹網絡的標準 SSD-300,同時學習的參數也明顯減少(表 1b)。


移動語義分割:從表 2 可見,使用 MobileViT 的特徵主幹網絡比 DeepLabv3 更小、更好。


移動設備上的性能測試

輕量級和低延遲的網絡對於實現移動視覺應用非常重要。為了證明 MobileViT 對此類應用的有效性,使用公開的 CoreMLTools(2021 年)將預先訓練的全精度 MobileViT 模型轉換為 CoreML。然後在移動設備 (iPhone12) 上測試它們的推理時間(平均超 100 次迭代)。

圖 8 顯示了 MobileViT 網絡在三個不同任務上的推斷時間,其中兩個 patch 大小設置(Config-A: 2, 2, 2 和 Config-B: 8, 4, 2)。


©THE END

轉載請聯繫本公眾號獲得授權

投稿或尋求報道:content@jiqizhixin.com

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()