enas 参数共享_CVPR2020 | CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR10上仅需单卡半天...
點擊上方“CVer”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達
本文轉(zhuǎn)載自:曉飛的算法工程筆記為了優(yōu)化進化算法在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索時候選網(wǎng)絡(luò)訓(xùn)練過長的問題,參考ENAS和NSGA-III,論文提出連續(xù)進化結(jié)構(gòu)搜索方法(continuous evolution architecture search, CARS),最大化利用學(xué)習(xí)到的知識,如上一輪進化的結(jié)構(gòu)和參數(shù)。首先構(gòu)造用于參數(shù)共享的超網(wǎng),從超網(wǎng)中產(chǎn)生子網(wǎng),然后使用None-dominated排序策略來選擇不同大小的優(yōu)秀網(wǎng)絡(luò),整體耗時僅需要0.5 GPU day
論文: CARS: Continuous Evolution for Efficient Neural Architecture Search
- 論文地址:https://arxiv.org/abs/1909.04977
Introduction
? 目前神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的網(wǎng)絡(luò)性能已經(jīng)超越了人類設(shè)計的網(wǎng)絡(luò),搜索方法大致可以分為強化學(xué)習(xí)、進化算法以及梯度三種,有研究表明進化算法能比強化學(xué)習(xí)搜索到更好的模型,但其搜索耗時較多,主要在于對個體的訓(xùn)練驗證環(huán)節(jié)費事??梢越梃bENSA的權(quán)重共享策略進行驗證加速,但如果直接應(yīng)用于進化算法,超網(wǎng)會受到較差的搜索結(jié)構(gòu)的影響,因此需要修改目前神經(jīng)網(wǎng)絡(luò)搜索算法中用到的進化算法。為了最大化上一次進化過程學(xué)習(xí)到的知識的價值,論文提出了連續(xù)進化結(jié)構(gòu)搜索方法(continuous evolution architecture search, CARS)
? 首先初始化一個有大量cells和blocks的超網(wǎng)(supernet),超網(wǎng)通過幾個基準(zhǔn)操作(交叉、變異等)產(chǎn)生進化算法中的個體(子網(wǎng)),使用Non-dominated 排序策略來選取幾個不同大小和準(zhǔn)確率的優(yōu)秀模型,然后訓(xùn)練子網(wǎng)并更新子網(wǎng)對應(yīng)的超網(wǎng)中的cells,在下一輪的進化過程會繼續(xù)基于更新后的超網(wǎng)以及non-dominated排序的解集進行。另外,論文提出一個保護機制來避免小模型陷阱問題
Approach
? 論文使用基因算法(GA)來進行結(jié)構(gòu)進化,GA能提供很大的搜索空間,對于結(jié)構(gòu)集,為種群大小。在結(jié)構(gòu)優(yōu)化階段,種群內(nèi)的結(jié)構(gòu)根據(jù)論文提出的pNSGA-III方法逐步更新。為了加速,使用一個超網(wǎng)用來為不同的結(jié)構(gòu)共享權(quán)重,能夠極大地降低個體訓(xùn)練的計算量
Supernet of CARS
? 從超網(wǎng)中采樣不同的網(wǎng)絡(luò),每個網(wǎng)絡(luò)可以表示為浮點參數(shù)集合以及二值連接參數(shù)集合,其中0值表示網(wǎng)絡(luò)不包含此連接,1值則表示使用該連接,即每個網(wǎng)絡(luò)可表示為對
? 完整的浮點參數(shù)集合是在網(wǎng)絡(luò)集合中共享,如果這些網(wǎng)絡(luò)結(jié)構(gòu)是固定的,最優(yōu)的可通過標(biāo)準(zhǔn)反向傳播進行優(yōu)化,優(yōu)化的參數(shù)適用于所有網(wǎng)絡(luò)以提高識別性能。在參數(shù)收斂后,通過基因算法優(yōu)化二值連接,參數(shù)優(yōu)化階段和結(jié)構(gòu)優(yōu)化階段是CARS的主要核心
Parameter Optimization
? 參數(shù)為網(wǎng)絡(luò)中的所有參數(shù),參數(shù),為mask操作,只保留對應(yīng)位置的參數(shù)。對于輸入,網(wǎng)絡(luò)的結(jié)果為,為-th個網(wǎng)絡(luò),為其參數(shù)
? 給定GT?,預(yù)測的損失為,則的梯度計算如公式1
? 由于參數(shù)應(yīng)該適用于所有個體,因此使用所有個體的梯度來計算的梯度,計算如公式2,最終配合SGD進行更新
? 由于已經(jīng)得到大量帶超網(wǎng)共享參數(shù)的結(jié)構(gòu),每次都集合所有網(wǎng)絡(luò)梯度進行更新會相當(dāng)耗時,可以借鑒SGD的思想進行min-batch更新。使用個不同的網(wǎng)絡(luò)進行參數(shù)更新,編號為。計算如公式3,使用小批量網(wǎng)絡(luò)來接近所有網(wǎng)絡(luò)的梯度,能夠極大地減少優(yōu)化時間,做到效果和性能間的平衡
Architecture Optimization
? 對于結(jié)構(gòu)的優(yōu)化過程,使用NSGA-III算法的non-dominated排序策略進行。標(biāo)記為個不同的網(wǎng)絡(luò),為希望優(yōu)化的個指標(biāo),一般這些指標(biāo)都是有沖突的,例如參數(shù)量、浮點運算量、推理時延和準(zhǔn)確率,導(dǎo)致同時優(yōu)化這些指標(biāo)會比較難
? 首先定義支配(dominate)的概念,假設(shè)網(wǎng)絡(luò)的準(zhǔn)確率大于等于網(wǎng)絡(luò),并且有一個其它指標(biāo)優(yōu)于網(wǎng)絡(luò),則稱網(wǎng)絡(luò)支配網(wǎng)絡(luò),在進化過程網(wǎng)絡(luò)可被網(wǎng)絡(luò)代替。利用這個方法,可以在種群中挑選到一系列優(yōu)秀的結(jié)構(gòu),然后使用這些網(wǎng)絡(luò)來優(yōu)化超網(wǎng)對應(yīng)部分的參數(shù)
? 盡管non-dominated排序能幫助選擇的更好網(wǎng)絡(luò),但搜索過程仍可能會存在小模型陷阱現(xiàn)象。由于超網(wǎng)的參數(shù)仍在訓(xùn)練,所以當(dāng)前輪次的模型不一定為其最優(yōu)表現(xiàn),如果存在一些參數(shù)少的小模型但有比較高的準(zhǔn)確率,則會統(tǒng)治了整個搜索過程。因此,論文基于NSGA-III提出pNSGA-III,加入準(zhǔn)確率提升速度作為考慮
? 假設(shè)優(yōu)化目標(biāo)為模型參數(shù)和準(zhǔn)確率,對于NSGA-III,會根據(jù)兩個不同的指標(biāo)進行non-dominated排序,然后根據(jù)帕累托圖進行選擇。而對于pNSGA-III,額外添加考慮準(zhǔn)確率的增長速度的non-dominated排序,最后結(jié)合兩種排序進行選擇。這樣,準(zhǔn)確率增長較慢的大模型也能得到保留。如圖2所示,pNSGA-III很明顯保留的模型大小更廣,且準(zhǔn)確率與NSGA-III相當(dāng)
Continuous Evolution for CARS
? CARS算法的優(yōu)化包含兩個步驟,分別是網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化和參數(shù)優(yōu)化,另外,在初期也會使用參數(shù)warmup
- Parameter Warmup,由于超網(wǎng)的共享權(quán)重是隨機初始化的,如果結(jié)構(gòu)集合也是隨機初始化,那么出現(xiàn)最多的block的訓(xùn)練次數(shù)會多于其它block。因此,使用均分抽樣策略來初始化超網(wǎng)的參數(shù),公平地覆蓋所有可能的網(wǎng)絡(luò),每條路徑都有平等地出現(xiàn)概率,每種層操作也是平等概率,在最初幾輪使用這種策略來初始化超網(wǎng)的權(quán)重
- Architecture Optimization,在完成超網(wǎng)初始化后,隨機采樣個不同的結(jié)構(gòu)作為父代,為超參數(shù),后面pNSGA-III的篩選也使用。在進化過程中生成個子代,是用于控制子代數(shù)的超參,最后使用pNSGA-III從中選取個網(wǎng)絡(luò)用于參數(shù)更新
- Parameter Optimization,給予網(wǎng)絡(luò)結(jié)構(gòu)合集,使用公式3進行小批量梯度更新
Search Time Analysis
? CARS搜索時,將數(shù)據(jù)集分為數(shù)據(jù)集和驗證集,假設(shè)單個網(wǎng)絡(luò)的訓(xùn)練耗時為,驗證耗時,warmup共周期,共需要時間來初始化超網(wǎng)的參數(shù)。假設(shè)進化共輪,每輪參數(shù)優(yōu)化階段對超網(wǎng)訓(xùn)練周期,所以每輪進化的參數(shù)優(yōu)化耗時,為mini-batch大小。結(jié)構(gòu)優(yōu)化階段,所有個體是并行的,所以搜索耗時為。CARS的總耗時如公式5
Experiments
Experimental Settings
supernet Backbones
? 超網(wǎng)主干基于DARTS的設(shè)置,DARTS搜索空間包含8個不同的操作,包含4種卷積、2種池化、skip連接和無連接,搜索normal cell和reduction cell,分別用于特征提取以及下采樣,搜索結(jié)束后,根據(jù)預(yù)設(shè)將cell堆疊起來
Evolution Details
? 在DARTS中,每個中間節(jié)點與之前的兩個節(jié)點連接,因此每個節(jié)點有其獨立的搜索空間,而交叉和變異在搜索空間相對應(yīng)的節(jié)點中進行,占總數(shù)的比例均為0.25,其余0.5為隨機生成的新結(jié)構(gòu)。對于交叉操作,每個節(jié)點有0.5的概率交叉其連接,而對于變異,每個節(jié)點有0.5的概率隨機賦予新操作
Experiments on CIFAR-10
Small Model Trap
? 圖3訓(xùn)練了3個不同大小的模型,在訓(xùn)練600輪后,模型的準(zhǔn)確率與其大小相關(guān),從前50輪的曲線可以看出小模型陷阱的原因:
? 在前50輪模型C一直處于下風(fēng),若使用NSGA算法,模型C會直接去掉了,這是需要使用pNSGA-III的第一個原因。對于模型B和C,準(zhǔn)確率增長類似,但由于訓(xùn)練導(dǎo)致準(zhǔn)確率波動,一旦模型A的準(zhǔn)確率高于B,B就會被去掉,這是需要使用pNSGA-III的第二個原因
NSGA-III vs. pNSGA-III
? 如圖2所示,使用pNSGA-III能避免小模型陷阱,保留較大的有潛力的網(wǎng)絡(luò)
Search on CIFAR-10
? 將CIFAR分為25000張訓(xùn)練圖和25000張測試圖,共搜索500輪,參數(shù)warmup共50輪,之后初始化包含128個不同網(wǎng)絡(luò)的種群,然后使用pNSGA-III逐漸進化,參數(shù)優(yōu)化階段每輪進化訓(xùn)練10周期,結(jié)構(gòu)優(yōu)化階段根據(jù)pNSGA-III使用測試集進行結(jié)構(gòu)更新
Search Time analysis
? 對于考量模型大小和準(zhǔn)確率的實驗,訓(xùn)練時間為1分鐘,測試時間為5秒,warmup階段共50輪,大約耗費1小時。而連續(xù)進化算法共輪,對于每輪結(jié)構(gòu)優(yōu)化階段,并行測試時間為,對于每輪的參數(shù)優(yōu)化階段,設(shè)定,大約為10分鐘,大約為9小時,所以為0.4 GPU day,考慮結(jié)構(gòu)優(yōu)化同時要計算時延,最終時間大約為0.5 GPU day
Evaluate on CIFAR-10
? 在完成CARS算法搜索后,保留128個不同的網(wǎng)絡(luò),進行更長時間的訓(xùn)練,然后測試準(zhǔn)確率
Comparison on Searched Block
? CARS-H與DARTS參數(shù)相似,但準(zhǔn)確率更高,CARS-H的reduction block包含更多的參數(shù),而normal block包含更少的參數(shù),大概由于EA有更大的搜索空間,而基因操作能更有效地跳出局部最優(yōu)解,這是EA的優(yōu)勢
Evaluate on ILSVRC2012
? 將在CIFAR-10上搜索到網(wǎng)絡(luò)遷移到ILSVRC22012數(shù)據(jù)集,結(jié)果表明搜索到的結(jié)構(gòu)具備遷移能力
CONCLUSION
? 為了優(yōu)化進化算法在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索時候選網(wǎng)絡(luò)訓(xùn)練過長的問題,參考ENAS和NSGA-III,論文提出連續(xù)進化結(jié)構(gòu)搜索方法(continuous evolution architecture search, CARS),最大化利用學(xué)習(xí)到的知識,如上一輪進化的結(jié)構(gòu)和參數(shù)。首先構(gòu)造用于參數(shù)共享的超網(wǎng),從超網(wǎng)中產(chǎn)生子網(wǎng),然后使用None-dominated排序策略來選擇不同大小的優(yōu)秀網(wǎng)絡(luò),整體耗時僅需要0.5 GPU day
參考內(nèi)容
- Pareto相關(guān)理論 (https://blog.csdn.net/qq_34662278/article/details/91489077)
推薦閱讀
2020年AI算法崗求職群來了(含準(zhǔn)備攻略、面試經(jīng)驗、內(nèi)推和學(xué)習(xí)資料等)
重磅!CVer-NAS交流群已成立
掃碼添加CVer助手,可申請加入CVer-NAS微信交流群,旨在交流AutoML(NAS)等的學(xué)習(xí)、科研、工程項目等內(nèi)容。
一定要備注:研究方向+地點+學(xué)校/公司+昵稱(如NAS+上海+上交+卡卡),根據(jù)格式備注,可更快被通過且邀請進群
▲長按加群
▲長按關(guān)注我們
麻煩給我一個在看!
總結(jié)
以上是生活随笔為你收集整理的enas 参数共享_CVPR2020 | CARS: 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR10上仅需单卡半天...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米之家第五家旗舰店 7月13日将在西
- 下一篇: 微粒贷初次能贷多少