機器之心專欄
機器之心編輯部
華為海思加拿大研究院和阿爾伯塔大學聯合推出了一個基于預訓練和知識注入的神經網絡性能預測架構。
神經網絡的性能評估 (精度、召回率、PSNR 等) 需要大量的資源和時間,是神經網絡結構搜尋(NAS)的主要瓶頸。早期的 NAS 方法需要大量的資源來從零訓練每一個搜尋到的新結構。近幾年來,網絡性能預測器作為一種高效的性能評估方法正在引起更多關注。
然而,目前的預測器在使用範圍上受限,因為它們隻能模組化來自特定搜尋空間的網絡結構,并且隻能預測新結構在特定任務上的性能。例如,訓練樣本隻包含分類網絡以及它們的精度,這樣訓練出來的預測器隻能用于評估新網絡結構在圖像分類任務上的性能。
為了打破這一邊界,使預測器能夠預測某一網絡結構在多種任務上的性能,具備跨任務跨資料泛化能力,華為海思加拿大研究院和阿爾伯塔大學聯合推出了一個基于預訓練和知識注入的神經網絡性能預測架構。該架構可快速評估不同結構和種類的網絡在分類、檢測、分割等多種不同類型 CV 任務上的性能,以用于神經網絡結構搜尋。研究論文已被 AAAI 2023 接收。
論文連結:https://arxiv.org/abs/2211.17228
代碼連結:https://github.com/Ascend-Research/AIO-P
AIO-P(All-in-One Predictors)方法旨在将神經預測器的範圍擴充到分類之外的計算機視覺任務。AIO-P 利用 K-Adapter 技術将任務相關的知識注入預測器模型,同時設計了一個基于 FLOPs(浮點操作數)的标簽縮放機制來适應不同的性能名額和分布。AIO-P 使用了一種獨特的僞标記方案來訓練 K-Adapters,僅需幾分鐘即可生成新的訓練樣本。實驗結果表明,AIO-P 展示出了強大的性能預測能力,在幾個計算機視覺任務上都取得了出色的 MAE 和 SRCC 結果。此外,AIO-P 可以直接遷移并預測從未見過的網絡結構的性能,可以與 NAS 配合,在保證性能不降低的前提下優化現有網絡的計算量。
方法介紹
AIO-P 是一種可泛化于多任務的通用網絡性能預測器。AIO-P 通過預測器預訓練和特定領域知識注入實作了跨任務和跨搜尋空間的性能預測能力。AIO-P 利用 K-Adapter 技術将任務相關的知識注入預測器,同時依賴于通用的計算圖(CG)格式表示一個網絡結構,最終使其能夠支援來自不同搜尋空間和任務的網絡,如下圖 1 所示。
圖 1. AIO-P 是如何表示用于不同任務的網路結構的
此外,僞标記機制的運用使 AIO-P 能夠快速生成新的訓練樣本用以訓練 K-Adapters。為了彌合不同任務上性能度量範圍之間的差距,AIO-P 提出了一種基于 FLOPs 的标簽縮放方法,實作了跨任務性能模組化。廣泛的實驗結果表明,AIO-P 能夠在各種不同的 CV 任務上進行準确的性能預測,如姿态估計和分割,無需訓練樣本或僅需少量微調。此外,AIO-P 可以正确地對從未見過的網絡結構進行性能排序,與搜尋算法結合後用于優化華為面部識别網絡,保持其性能不變并将 FLOPs 降低超過 13.5%。該論文已被 AAAI-23 接收并且代碼已經在 GitHub 上開源。
計算機視覺網絡通常由執行特征提取的 “主幹” 和使用提取到的特征進行預測的 “頭部” 組成。“主幹” 的結構通常是基于某一種已知的網絡結構設計的 (ResNet, Inception, MobileNet, ViT, UNet),而 “頭部” 是針對給定任務,如分類、姿态估計、分割等而設計的。傳統的 NAS 方案會根據 “主幹” 的結構手動定制搜尋空間,比如已知 “主幹” 是 MobileNetV3,那麼搜尋空間可能包含 MBConv Block 數目,每個 MBConv 的參數 (kernel size, expansion),通道數等。然而這種定制的搜尋空間不具備通用性,假如有另一個 “主幹” 是基于 ResNet 設計的,則無法通過現有的 NAS 架構優化它,而是需要重新設計搜尋空間。
為了解決這一問題,AIO-P 選擇了從計算圖層面來表示不同的網絡結構,實作了對任何網絡結構的統一表示。具體如圖 2 所示,計算圖格式允許 AIO-P 将頭部和主幹編碼在一起來表示整網結構。這也使得 AIO-P 可以預測來自不同搜尋空間(如 MobileNets 和 ResNets)的網絡在各種任務上的性能。
圖 2. MobileNetV3 中的 Squeeze-and-Excite 子產品在計算圖層面的表示
AIO-P 中提出的預測器結構從單個 GNN 回歸模型開始(圖 3,綠色塊),它可以預測圖像分類網絡的性能。為了在它的基礎上加入其他 CV 任務的知識,例如檢測或分割,該研究将一個 K-Adapter(圖 3,橙色塊)附加到原始回歸模型上。K-Adapter 在新任務的樣本上進行訓練,而原模型權重則被當機。是以,該研究單獨訓練多個 K-Adapter(圖 4)來加入來自多個任務的知識。
圖 3. 擁有一個 K-Adapter 的 AIO-P 預測器
圖 4. 擁有多個 K-Adapter 的 AIO-P 預測器
為了進一步降低訓練每個 K-Adapter 的開銷,該研究提出了一種巧妙的僞标簽技術。這一技術使用 Latent 采樣的方案來訓練能共享于不同任務間的 “頭部” 模型。共享頭部訓練之後可以與搜尋空間中的任何網絡主幹配對,并在 10-15 分鐘内進行微調以生成僞标簽(圖 5)。
圖 5. 訓練能共享于不同任務間的 “頭部” 模型
經實驗證明,使用共享頭部獲得的僞标簽與通過從零開始訓練一個網絡一天或更長時間獲得的實際性能呈正相關,有時排序相關度系數超過 0.5 (Spearman correlation)。
除此之外,不同的任務會有不同的性能名額。這些性能名額通常有自己特定的分布區間,例如,使用了某一特定主幹的分類網絡在 ImageNet 上分類準确率可能約為 75%,而在 MS-COCO 物體檢測任務上的 mAP 可能為 30-35%。為了考慮這些不同的區間,該研究基于标準化理念提出了一種從正态分布中了解網絡性能的方法。通俗的說,如果預測值為 0,則該網絡性能為平均值;如果 > 0,則為較優網絡;
圖 6. 如何标準化網絡性能
網絡的 FLOPs 與模型大小,輸入資料相關,并且通常與性能呈正相關趨勢。該研究使用 FLOPs 轉換來增強 AIO-P 從中學習的标簽。
實驗及結果
該研究首先在人體姿态估計和物體檢測任務上上訓練 AIO-P,然後用它預測多種任務上網絡結構的性能,包括姿态估計(LSP 和 MPII),檢測(OD),執行個體分割(IS),語義分割(SS)和全景分割(PS)。即使在零樣本直接遷移的情況下,使用 AIO-P 對來自于 Once-for-All(OFA)搜尋空間(ProxylessNAS,MobileNetV3 和 ResNet-50)的網絡在這些任務上的性能進行預測,最終預測結果達到了低于 1.0%的 MAE 和超過 0.5 的排序相關度。
此外,該研究也使用 AIO-P 預測了 TensorFlow-Slim 開源模型庫中的網絡的性能(例如 DeepLab 語義分割模型,ResNets,Inception nets,MobileNets 和 EfficientNets),這些網絡結構可能未曾在 AIO-P 的訓練樣本中出現。
AIO-P 通過利用 FLOPs 轉換,在 3 個 DeepLab 語義分割模型庫上能夠實作幾乎完美的 SRCC,同時在所有 4 個分類模型庫上獲得正的 SRCC,以及在 EfficientNet 模型上實作 SRCC=1.0。
最後,AIO-P 的核心動機是能夠将其與搜尋算法配對,并将其用于優化任意網絡結構,可以是獨立的,不屬于任何搜尋空間或已知模型庫的結構,甚至可以是一個用于從未訓練過的任務的結構。該研究使用 AIO-P 和随機變異搜尋算法來優化華為手機上使用的人臉識别(FR)模型,結果顯示 AIO-P 能夠在降低模型計算量 FLOPs 超過 13.5%的同時保持性能(精度(Pr)和召回率(Rc))。
感興趣的讀者可以閱讀論文原文,了解更多研究細節。