前言git
谷歌推出的NASNet架構,用於大規模圖像分類和識別。NASNet架構特色是由兩個AutoML設計的Layer組成——Normal Layer and Reduction Layer,這樣的效果是再也不須要相關專家用human knowledge來搭建卷積網絡架構,直接用RNN把Hyperparameter計算出來,這樣就實現了網絡結構自動學習。github
論文:Learning Transferable Architectures for Scalable Image Recognition
網絡
強化學習架構
論文:《Neural ,Architecture Search with Reinforcement Learning》。 網站連接(開源代碼): https:// github .com / tensorflow /models
框架
論文中的核心是:利用Reinforcement Learning(強化學習)機制訓練一個RNN(循環神經網路)controller(控制器)去自動產生一個神經網絡,無需人爲手動設計網絡,設計出的網絡在相關有權威的數據集上都取得了很好的成績。看完論文後發現沒有硬件資源根本是沒法使得訓練跑起來的,有錢就是任性,論文用了800個GPU跑起來的。ide
RNN在處理變長問題和生成變長式問題時獲得普遍應用,RNN經過循環單元能夠展開爲一個多長度機率模型,把變長問題使用一個機率框架來表示。在進行模型生成時,可使用一樣的方法進行模型長度枚舉和選擇優化,生成變長模型或者可變模型。函數
關於RNN模型:DNN結構進化之RNN,DNN結構進化之LSTM,DNN結構進化之NTM/DNC。用於處理變長問題,發展出RNN;用以解決RNN梯度消失問題,發展出LSTM;NTM模型抽象LSTM的cell內存,模型能夠直接訓練簡短的生成模式,好比copy、循環、排序、NGM文法描述等簡單內存操做模式。 學習
強化學習用於結構搜索:controller控制器給出個action,action去環境中作出動做並獲得一個結果result,最後將result做爲反饋信號反饋給controller控制器,controller控制器根據反饋值進行修改,而後一直迭代這個過程直到到達目標。測試
論文的思想是:經過一個controllerRNN在搜索空間(search space)中獲得一個網絡結構(論文中稱爲child network),而後用這個網絡結構在數據集上訓練,在驗證集上測試獲得準確率R,再將這個準確率回傳給controller,controller繼續優化獲得另外一個網絡結構,如此反覆進行直到獲得最佳的結果,整個過程稱爲Neural Architecture Search。後面講詳細介紹整個流程,本總結主要是圍繞生成CNN來介紹,論文中也能夠生成RNN)。
優化
模型生成過程
以卷積層的生成爲例,使用RNN結構做爲控制器用於生成conv層的超參數-conv個數、filter的高和寬、stride的高和寬等。下圖爲RNN的展開式結構,真正的RNN結構爲一個recurrent單元。
控制一個RNN網絡的unit的參數值,根據RNN生成變長串的通常法則,能夠生成一個對應 結構的CNN網絡描述。固然這個結構描述是變長的,長度和結構由RNN的參數決定,這樣在一個可變CNN網絡結構和RNN參數之間創建起一個函數映射。
根據論文的描述,使用所謂的anchor方法,一個RNN網絡綜合Conv層、Pooling層、SoftMax等多個RNN單元,綜合爲一個大的RNN網絡,做爲控制器。
反饋學習-訓練RNN
文章描述聯合RNN的優化方法和CNN的評價方法,使用CNN在測試集合上的表現做爲CNN的評價,並把CNN的評價反傳給RNN,用以訓練RNN的結構和參數。
從整個過程能夠看出,用以生成CNN的RNN結構的訓練涉及到兩部分,相對於通常使用數據直接訓練RNN,多了一個CNN的自動生成,優化和測試,優化函數轉化過程,直覺上須要極大的運算量,比訓練一般RNN運算複雜度多幾個數量級。
論文描述細節
Training details: The controller RNN is a two-layer LSTM with 35 hidden units on each layer.I t is trained with the ADAM optimizer (Kingma & Ba, 2015) with a learning rate of 0.0006. Theweights of the controller are initialized uniformly between -0.08 and 0.08.
For the distributed training ,we set the number of parameter server shards S to 20, the num be r of controller replicas K to100 and the number of child replicas m to 8, which means there are 800 networks being trained on 800 GPUs concurrently at any time.
生成模型用於遷移學習
遷移學習便是把一個領域的框架複用到另外一個領域,兩種應用領域具備特定的結構類似性,模型複用之時能夠稍做修改或者稍加訓練便可使用。
Training deta.............................