AmoebaNet:經費在燃燒,谷歌提出基於aging evolution的神經網路搜尋 | AAAI 2019

曉飛的演算法工程筆記發表於2021-01-20

論文提出aging evolution,一個錦標賽選擇的變種來優化進化演算法,在NASNet搜尋空間上,對比強化學習和隨機搜尋,該演算法足夠簡潔,而且能夠更快地搜尋到更高質量的模型,論文搜尋出的AmoebaNet-A在ImageNet上能達到SOTA

來源:【曉飛的演算法工程筆記】 公眾號

論文: Regularized Evolution for Image Classifier Architecture Search

Introduction


  神經網路結構搜尋的網路已經能夠超越人工設計的網路,但是基於進化演算法(evolutionary algorithms)和基因規劃(genetic programming)還沒有達到人工設計的網路的精度。為此,論文在標準的進化過程基礎上進行兩個改進:

  • 提出改進錦標賽選擇(tournament selection)的進化演算法,命名aging evolution或regularized evolution。在錦標賽選擇中,表現最好的基因會保留,而新方法將每個基因關聯一個年齡,偏向於選擇年輕的基因
  • 在NASNet的搜尋空間上採用最簡單的變異集合進行進化,NasNet的搜尋空間用小的有向圖來表示卷積神經網路,節點表示隱藏層,帶標籤的邊表示常見的網路操作,變異的規則僅允許隨機將邊連線到新的節點和修改邊的標籤

  在NASNet空間進行搜尋,能夠直接地將論文提出的方法和原來的強化學習方法進行對比。論文提出的方法不僅簡單,而且搜尋速度更快,結果更優,搜尋得到的AmoebaNet-A能達到83.9% top-1 error rate

Methods


Search Space

  NASNet搜尋空間定義的網路架構是固定的,如圖1左,通過堆疊單元(cell)來組成網路,每個單元接受前兩個單元的輸出作為輸入,有normal cellreduction cell,分別主要用於特徵提取以及池化。單元的搜尋就是定義裡面每個塊的輸入、運算元以及合併輸出方式,細節可以看NASNet的論文,也可以看我之前的NASNet解讀

Evolutionary Algorithm

  進化演算法始終保持population(種群)的大小為$P$個模型,使用隨機網路進行population初始化,然後進行$C$輪進化來優化種群。每輪以均勻的概率隨機選取S個模型,將選取的模型中準確率最高的作為parent,然後將parent進行mutation(變異)得到新網路child,在訓練和驗證後將child加入到historypopulation的右側中,最後刪除population最左邊的模型,演算法可以通過分發“$while |history|$”來進行平行計算
  需要注意,在錦標賽選擇中,通過去掉S-sample中最差的模型來保持最初種群數始終為$P$,這可以認為是non-aging evolution。相反的,論文的新方法每次直接去掉種群中最老的模型,這樣能為搜尋帶來更多的可能性,而非只關注高準確率模型,稱為aging evolution
  直觀的,變異可認為是提供探索,而引數$S$則可以認為是提供榨取(獲取最優模型的可能)。不同的引數$S$控制榨取的侵略性,$S=1$等於隨機搜尋,$2\le S\le P$則代表不同的貪婪程度

  變異有三種形式,每次只能進行一種變異,兩種主要的為hidden state mutationop mutation,另外一種為不變異。hidden state mutation首先選擇變異的是normal cell還是reduction cell,然後選擇單元的5個block中的一個,最好在block的兩個輸入中選擇一個進行變異,隨機選擇另外一個單元內的hidden state作為輸入,前提不能產生環。op mutation則進行類似的選擇,先單元型別,然後block,再選兩個操作中的一個進行變異,替換成另一個隨機操作

Baseline Algorithms

  論文的主要對比演算法為強化學習(RL)和隨機搜尋(RS)

Experimental Setup

  在CIFAR-10上進行小模型(N和F都很小)搜尋,直到驗證了20k模型,之後將搜尋到的最優結構應用到full-size的模型中(提高N和F),然後使用更長的訓練時間來獲得CIFAR-10和ImageNet上的準確率

Methods Details


  op的選擇與NASNet有點不同,包含:none (identity); 3x3, 5x5 and 7x7 separable (sep.) convolutions (convs.); 3x3 average (avg.) pool; 3x3 max pool;
3x3 dilated (dil.) sep. conv.; 1x7 then 7x1 conv,$P=100$,$S=25$,在搜尋階段每個模型訓練25 epoch,$N=3/F=24$,在450張K40上訓練7天,identity mutation的概率固定為0.05,其它的兩種概率一致,搜尋到的最優20個模型進行最終的訓練

Results


Comparison With RL and RS Baselines

  圖3看出進化方法有更高的準確率,而且可以早停

  圖4進行了多次重複實驗,進化演算法比RS的準確率高,比RL的引數少

  論文的進化演算法搜尋到的最優網路AmoebaNet-A

  可以看到,在引數量和準確率方法,AmoebaNet-A要優於NASNet-A

ImageNet Results

  將CIFAR-10上的最優模型轉化到ImageNet上,準確率與當前的SOTA相似,對模型進行進一步加大後,得到SOTA模型83.9%,但是模型的引數量相對較大

CONCLUSION


  論文提出aging evolution,一個錦標賽選擇的變種來優化進化演算法,在NASNet搜尋空間上,對比強化學習和隨機搜尋,該演算法足夠簡潔,而且能夠更快地搜尋到更高質量的模型,450塊K40搜尋大約7天,論文搜尋出的AmoebaNet-A在ImageNet達到SOTA



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】

work-life balance.

相關文章