Neural Architecture Search
Background
深度學習在圖像識別、語音識別、機器翻譯等領域取得了很大的進展,部分原因在於各種創新的神經網絡結構。當前的網絡結構主要是通過人類專家手工設計,費時費力又容易犯錯(就像編程一樣)。因此,研究人員提出自動化的神經網絡結構搜索方法(neural architecture search, NAS)。NAS本質上是在給定空間裏搜索滿足特定目標(比如性能)的神經網絡結構,可以從三個角度來回顧現有的NAS研究:搜索空間、搜索策略和性能估計策略。
搜索空間
搜索空間實際上限定了能夠表示的網絡結構的範圍。利用適合特定任務的網絡結構的典型屬性的先驗知識,可以簡化搜索空間和搜索策略,但是同時也引入了人類偏見,從而很難脫離人類現有知識的限制找到更創新的結構。
搜索空間的選擇在很大程度上決定了優化問題的難度。通過不同的抽象級別,可以實現不同程度的搜索空間壓縮。
簡單的鏈式神經網絡
其參數空間包括:
- 層數
- 每一層的操作類別,比如pooling, convolution, 或者depthwise separable convolution, dilated convolution
- 跟操作類別相關的超參,比如過濾器的數目、卷積層的核的大小和步長,全聯接網絡中結點數目。
多分支網絡
將輸入層i建模成前面網絡層輸出的函數,可以支持鏈式網絡、residual networks, denseNets等。
分塊優化
通過提取網絡中的塊模式,然後以塊爲粒度來建立搜索空間,從而壓縮搜索空間;通過提高抽象級別,還有可以提高在不同數據集之間的可遷移性。
搜索策略
搜索策略即搜索方法。因爲通常需要搜索指數級空間甚至是無界的空間,所以一方面希望儘快找到高性能的解,另一方面需要避免過早收斂到局部最優解。常用的搜索策略包括隨機搜索、貝葉斯優化、演化算法、強化學習(Reinforcement Learning, RL)、基於梯度的方法等。
性能估計策略
NAS的目標通常是找到在新數據集上預測效果好的網絡結構。最簡單的性能估計是在數據集上進行標準的訓練-測試評估,但是計算成本極爲昂貴,從而大大限制了可以估計的網絡結構數目。所以目標是提高估計性能。
lower fidelity方法
通過使用更少的epoch,更少的數據集、簡化的網絡模型等,來降低訓練時間。
learning curve extrapolation
只跑一部分訓練,然後根據學習曲線的趨勢通過外插值得到性能估計。
Weight inheritance/Network Morphism
對新的模型,繼承已訓練好的別的相關模型參數,開始訓練,而不是從零開始。
One-Shot MOdels/Weight sharing
將所有的網絡結構視爲同一個超圖(one-shot model)的子圖;訓練該超圖,然後在子圖訓練時共享權重。
下一步方向
- NAS的應用範圍從目前的圖像分類,推廣到更多領域,同時也能提供更多的可行解。
- 多目標NAS。除了性能目標,還有資源受限目標等。該領域跟網絡壓縮(network compression)緊密相關。
- 不同的NAS方法之間的比較和可重現面臨很大挑戰。一方面時間成本高,另一方面性能評估受網絡結構以外的太多因素影響。
- NAS仍然不能針對爲什麼某個網絡結構表現優秀提供很好的解釋。
Reference
Elsken, Thomas, Jan Hendrik Metzen, and Frank Hutter. “Neural Architecture Search: A Survey.” Journal of Machine Learning Research 20.55 (2019): 1-21.