原文鏈接:https://arxiv.org/pdf/1904.12760.pdf? 發(fā)表:ICCV 2019
編輯:牛濤
code:https://github.com/ chenxin061/pdarts
作者argue的是之前的DARTS方法搜索是在淺的網(wǎng)絡唯竹,驗證在深的網(wǎng)絡乐导,因此會有一個depth gap的問題,即有些操作會在淺網(wǎng)絡下更傾向于被選擇浸颓,但是深網(wǎng)絡不會。作者提出了一種漸進式的NAS旺拉,逐漸拓展深度從淺過渡到深产上,實現(xiàn)搜索和驗證都能維持很好的性能。如下圖
問題:人家DARTS搜的不是cell嗎然后堆疊在一起嗎蛾狗?哪里有什么淺的網(wǎng)絡晋涣??
anyway沉桌,作者先回顧了下之前的DARTS谢鹊,給了mix-operation及cell輸出的公式。然后表明為了驗證這個depth gap留凭,作者重復了幾次DARTS的實驗佃扼,發(fā)現(xiàn)normal cell中更傾向于保留shallow connections。推測這是因為淺的網(wǎng)絡更利于梯度快速傳遞(更容易收斂)
那么怎么改變這個情況呢蔼夜?增加深度固然可行兼耀,但是GPU壓力太大,就得減小網(wǎng)絡寬度。直接減小寬度的話瘤运,如DARTS中提到會使性能下降窍霞。那么就漸進式吧,逐漸縮小要么寬度拯坟,要么操作數(shù)量但金。本文采用的是后者,取名為search space approximation郁季。解釋起來也很簡單冷溃,就是隨著深度增加,把概率低的操作逐漸丟掉巩踏。
第二個問題是秃诵,深網(wǎng)絡在訓練的時候更傾向于skip-connection而不是卷積這種有可學習參數(shù)的。雖然很容易train塞琼,但是泛化能力不足菠净。很容易導致過擬合。
為了解決這個問題彪杉,作者首先在skip-connection后插入一個dropout毅往。但是這一步又會影響operation的選擇,比較難控制(如果我dropout率一直維持不變派近,到訓練后期skip-connection肯定會被舍棄)攀唯。因此作者逐漸減小dropout率使其更平滑穩(wěn)定。
此外渴丸,作者通過在CIFAR10上進行3次相同實驗侯嘀,發(fā)現(xiàn)skip-connect的數(shù)量與性能成正相關(guān),設計了一種正則的規(guī)則谱轨。在更新結(jié)構(gòu)參數(shù)之前戒幔,先根據(jù)skip-connect對應的weight大小保留M個,并把其余的N-M個置零土童,然后在這個基礎上去更新結(jié)構(gòu)參數(shù)诗茎。雖然更新中可能會加入新的skip,但是這個過程被做成了迭代的献汗,最終會收斂在只有M個skip-connect敢订。正則必須要在dropout的基礎上進行,不然正則的weight被認為是低質(zhì)量的(這部分也是文字描述罢吃,可以參考原文)