NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING 論文閱讀

提出背景:儘管過去幾年深度神經網絡在極具挑戰的任務上取得成功,以及越來越多樣化的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來增大搜索空間。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章