打破NAS瓶頸,新方法AIO-P跨任務預測架構效能
華為海思加拿大研究院和阿爾伯塔大學聯合推出了一個基於預訓練和知識注入的神經網路效能預測框架。
神經網路的效能評估 (精確度、召回率、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))。
有興趣的讀者可以閱讀論文原文,了解更多研究細節。
以上是打破NAS瓶頸,新方法AIO-P跨任務預測架構效能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

評估Java框架商業支援的性價比涉及以下步驟:確定所需的保障等級和服務等級協定(SLA)保證。研究支持團隊的經驗和專業知識。考慮附加服務,如昇級、故障排除和效能最佳化。權衡商業支援成本與風險緩解和提高效率。

PHP框架的學習曲線取決於語言熟練度、框架複雜性、文件品質和社群支援。與Python框架相比,PHP框架的學習曲線較高,而與Ruby框架相比,則較低。與Java框架相比,PHP框架的學習曲線中等,但入門時間較短。

輕量級PHP框架透過小體積和低資源消耗提升應用程式效能。其特點包括:體積小,啟動快,記憶體佔用低提升響應速度和吞吐量,降低資源消耗實戰案例:SlimFramework創建RESTAPI,僅500KB,高響應性、高吞吐量

根據基準測試,對於小型、高效能應用程序,Quarkus(快速啟動、低記憶體)或Micronaut(TechEmpower優異)是理想選擇。 SpringBoot適用於大型、全端應用程序,但啟動時間和記憶體佔用稍慢。

編寫清晰全面的文件對於Golang框架至關重要。最佳實踐包括:遵循既定文件風格,例如Google的Go程式設計風格指南。使用清晰的組織結構,包括標題、子標題和列表,並提供導覽。提供全面且準確的信息,包括入門指南、API參考和概念。使用程式碼範例說明概念和使用方法。保持文件更新,追蹤變更並記錄新功能。提供支援和社群資源,例如GitHub問題和論壇。建立實際案例,如API文件。

根據應用場景選擇最佳Go框架:考慮應用類型、語言特性、效能需求、生態系統。常見Go框架:Gin(Web應用)、Echo(Web服務)、Fiber(高吞吐量)、gorm(ORM)、fasthttp(速度)。實戰案例:建構RESTAPI(Fiber),與資料庫互動(gorm)。選擇框架:效能關鍵選fasthttp,靈活Web應用選Gin/Echo,資料庫互動選gorm。

在Go框架開發中,常見的挑戰及其解決方案是:錯誤處理:利用errors套件進行管理,並使用中間件集中處理錯誤。身份驗證和授權:整合第三方庫並建立自訂中間件來檢查憑證。並發處理:利用goroutine、互斥鎖和通道來控制資源存取。單元測試:使用gotest包,模擬和存根隔離,並使用程式碼覆蓋率工具確保充分性。部署和監控:使用Docker容器打包部署,設定資料備份,透過日誌記錄和監控工具追蹤效能和錯誤。

Go框架學習的迷思有以下5種:過度依賴框架,限制彈性。不遵循框架約定,程式碼難以維護。使用過時庫,帶來安全和相容性問題。過度使用包,混淆程式碼結構。忽視錯誤處理,導致意外行為和崩潰。
