智能感知與計算研究中心團隊提出多自由度網絡架構協同搜索新方法
研究背景
設計滿足特定資源約束(如計算量、時延等)的高性能神經網絡架構在實際人工智能應用中有著重要的意義,是數據獲取、模型設計,訓練部署這一閉環中重要的組成成分。然而手工設計網絡架構是一個耗時耗力的過程,需要大量的試錯實驗,並且當更換硬件平台、更換資源約束條件時,又需要專家重新設計網絡架構。
近年來興起的自動網絡架構搜索技術給高性能網絡架構的設計帶來了新穎而經濟的解決思路。基于梯度更新的可微分網絡架構搜索算法在顯著降低搜索開銷的情況下,能夠從巨大的架構空間中搜索到有效的網絡架構。然而,可微分網絡架構搜索中超網絡權重共享、單路徑采樣和寬度粗粒度離散性的搜索空間,使得搜索到的網絡架構很難同時達到准確性和資源約束上的最優,可微分網絡架構搜索仍有很多問題亟待解決。
方法簡述
图1 三自由度网络架构搜索框架图
爲了解決上述問題,該方法對當前主流的可微分網絡架構搜索算法進行實驗分析,從算子、深度和寬度三個維度出發,通過簡單精妙的設計,分別提出了雙路采樣算法、彙點連接空間和彈性縮放策略,如圖1所示。
對于算子層面的搜索,該方法實驗發現現有的單路采樣方法會導致算子崩潰現象發生,即在搜索過程的早期階段算法就在某些搜索層中聚焦于某一個特定的算子,並在余下的搜索過程中陷入其中保持不變,這會導致搜索到非最優的網絡架構。針對此問題,該方法設計了多種采樣方式,通過實驗發現加入隨機路徑采樣的雙路采樣方法可以有效地緩解算子崩潰現象發生。
對于深度層面的搜索,現有算法通常直接將跨層(Skip)算子加入到待搜索候選算子集中。然而,由于跨層算子的非參數性以及與其他算子的互斥性,這種設計方式會導致網絡深度的搜索不穩定,在整個搜索過程中有非常大的抖動,如圖2(a)。此外,跨層算子的直接加入也會引起架構冗余現象發生,如圖2(b)。爲了解決這個問題,該方法設計了一個彙點連接搜索空間(圖1(c)),將跨層算子的搜索剝離出來,增加深度搜索的穩定性,同時彙點連接的方式也巧妙地解決了架構冗余問題。
图2 (a)搜索过程中架构深度变化; (b)架构冗余
對于寬度層面的搜索,該方法發現由于寬度搜索空間粗粒度的離散性和無界的資源約束目標函數項,使得現有方法很難搜索到嚴格滿足特定資源約束的網絡架構(圖4),並對資源約束目標函數項的超參數設置十分敏感。爲了緩解這些問題,該方法提出了彈性縮放策略在搜索過程中動態自適應地調整超網絡中每一搜索層中每一搜索算子的寬度,如圖1(d)和圖3。
图3 弹性缩放策略
图4 不同资源约束目标函数项下弹性缩放的有效性
應用驗證
该方法的架构搜索和验证均在大尺度ImageNet-1K数据集上进行。在使用单张Titan RTX GPU的情况下,提出的方法在ImageNet-1K上仅用1.8天搜索到76.9% top-1准确性的网络架构,在准确性和推断时延上均超越Google的EfficientNet-B0。
表1 GPU和CPU上搜索架构结果,GPU时延测试批大小为32,CPU时延测试批大小为1
論文:
[1] Yibo Hu, Xiang Wu, Ran He*. TF-NAS: Rethinking Three Search Freedoms of Latency-Constrained Differentiable Neural Architecture Search. ECCV 2020.
[2] Zhihang Li, Teng Xi, Jiankang Deng, Gang zhang, Shengzhao Wen, Ran He*. GP-NAS: Gaussian Process based Neural Architecture Search. CVPR 2020.
代碼:
https://github.com/AberHu/TF-NAS