提出背景:儘管過去幾年深度神經網絡在極具挑戰的任務上取得成功,以及越來越多樣化的feature設計和架構設計的出現,但是設計深度模型架構依然需要很強的專業知識以及大量時間。
本文:提出了基於梯度(gradient-based)NaS方法(如下圖),此工作是基於對‘一個神經網絡的結構和連通性可以被一串可變字符來明確定義’的認知,因此可以通過一個循環網絡(即controller)來生成string,在真實數據集上訓練被這一string明確規定的網絡(即child network)並在驗證集上產生準確度。用這一準確度作爲反饋信號,我們可以計算policy gradient以更新controller。最終,在下一次迭代中,controller將使架構以更高的概率獲得更好的準確度,也就是說,controller將通過迭代學會提高搜索網絡的準確度。
相關工作:
1、超參數優化(Hyperparameter optimization )應用廣泛,缺陷:只能在固定長度的空間中搜索models。其中貝葉斯優化方法允許可變長度搜索,但是相較於本文缺少通用性和靈活性。
2、進化算法(Modern neuro-evolution algorithms)更靈活但是不實用,它們的侷限性在於它們是基於搜索的方法,因此速度慢,或者需要許多啓發式方法才能很好地工作。
3、NaS與program synthesis 以及 inductive programming有一定的相似性,都是從examples中搜索程序。在ML中,probabilistic program induction在很多應用中取得成功。
4、NaS中的controller是自動迴歸的,一次預測一個超參數,以先前的預測爲條件。這一思想來源於decoder in end-to-end sequence to sequence learning,與之不同的是,我們優化的是一個non-differentiable metric,即child network的accuracy。
5、learning to learn or meta-learning
Method:
1、controller recurrent neural network samples a simple convolutional network
在NaS中,使用controller來生成神經網絡的超參數,作爲a sequence of tokens。
在實驗中,當layer數到達某一值時,我們停止繼續生成architecture(This value follows a schedule where we increase it as training progresses.)。當controllerRNN停止時,一個神經網絡已經建立好並用於訓練。下一步將介紹 a policy gradient method用來更新參數使得controllerRNN獲得更高的準確度。
2、Training with refinforce
controller生成的The list of tokens可以被看做
a list of actions a1:T 用來設計child network的架構,child network將生成一個accuracy R,我們可以用R作爲reward signal並使用強化學習來訓練controller。
通過並行和異步的更新加速訓練
在Neural ArchitectureSearch中,每個梯度更新到控制器參數對應的訓練一個子網絡到收斂。因爲訓練一個child network可能需要幾個小時,我們採用分佈式訓練和異步參數更新的方式提高controller的學習速度。
3、通過skip connections和其他layer types增加架構的複雜性
通過skip connections 或 branching layers來增大搜索空間。