【論文筆記系列】- Understanding and Simplifying One-Shot Architecture Search


search space設計

文章認為好的search space需要滿足以下條件:

  • search space需要足夠large和expressive,這樣才能探索更豐富多樣的候選網絡架構
  • one-shot模型在驗證集上的准確率必須與stand-alone模型的准確率高度相關。也就是說相比於其他候選模型,A模型在驗證集上准確率高,那么對A模型retrain的之后,它在測試集上的准確率也要是最高,或者是靠前的。
  • 在資源有限的情況下,one-shot模型不能太大

One-shot模型訓練

  • 互相適應的魯棒性(Robustness of co-adaptation):如果只是簡單地直接訓練整個one-shot模型,那么模型內各部分是高度耦合的,即使移除一些不重要的部分,也可能使得模型預測准確率大打折扣。所以文章引入path dropout策略來提高訓練穩定性。具體做法就是最開始啥都不drop,而后每個batch都隨機drop,而且drop的概率也線性增加。drop的概率計算公式為\(r^{1/k}\),\(r\)是一個超參數,\(k\)表示操作數量。
  • 訓練模型的穩定性(Stabilizing Model Training.)
    • 雖然Relu-BN-Conv效果也差不多,實驗使用更常用的BN-Relu-Conv順序。另外我們知道在評估階段我們會從one-shot模型里選擇一個子模型來評估,也就是說我們會剔除一些操作,但是模型里的BN操作的統計量只是基於one-shot模型計算得到的,所以在評估階段BN的統計量每個batch都要重新計算。
    • 另外在訓練one-shot模型的時候,對於一個batch里的數據,我們dropout的操作都是一樣的。換句話說這批數據都是在同一個子模型下訓練的。文章稱這種方式也會導致訓練不穩定,所以他們將一個大小為1024的batch數據進一步划分成多個子batch,稱作ghost batch。比如1024批數據可以划分成32個大小為32的ghost batch,然后每個ghost batch應用不同的path dropout操作(即對應不同的子模型)。
  • 避免過度正則化:在訓練模型時,我們經常會用L2正則化。但是在這里只是對選擇的子模型做正則化。不然一些沒有被選擇過的操作也被正則化的話就過分了啊~~

實驗結果

下面只介紹一個比較有意思的實驗結果,即 Dropout rate對結果的影響:

結果如下圖示:

  • 設置的概率值太小的話(最左),可以看到one-shot模型的整體准確率都不高,但是retrain之后的stand-alone模型性能好像都還可以。但是這樣one-shot的准確率並不能很好的反映最后模型的性能。
  • 設置的概率值太高的話(最右),雖然one-shot模型的准確率提高了,但是可以看到准確率的范圍分布在了0.6~0.8之間,也就是說概率值過大使得模型可能把更多機會給到了一些表現可能

理解one-shot模型

由上圖我們可以看到(以最左圖為例),one-shot模型的准確率從0.1~0.8, 而stand-alone(即retrain之后的子模型)的准確率范圍卻只是0.92~0.945。為什么one-shot模型之間的准確率差別會更大呢?

文章對此給出了一個猜想:one-shot模型會學習哪一個操作對模型更加有用,而且最終的准確率也是依賴於這些操作的。換句話說:

  • 在移除一些不太重要的操作時,可能會使one-shot模型准確率有所降低,但是最后對stand-alone模型性能的預測影響不大。
  • 而如果把一些最重要的操作移除之后,不僅對one-shot模型影響很大,對最后的

我理解是這個意思

狀態 one-shot 模型准確率 stand-alone模型准確率
移除操作之前 80% 92%
移除不太重要的操作 78% 91%
移除重要的操作 56% 90%

為了驗證這一猜想,文章做了如下實驗:

首先將幾乎保留了所有操作的(dropout概率是\(r=10^-8\))模型叫做reference architectures,注意這里用的是復數,也就是說這個reference architectures有很多種,即有的是移除了不太重要的操作后的結構,有的時移除了非常重要的操作候的結構,那么不同結構的准確率應該是不一樣的。不過在沒有retrain的情況下,什么操作都沒有移除的one-shot模型(All on)應該是最好的(或者是表現靠前的,這里我們認為是最好的)。

注意這里的移除某些操作后得到的模型還是One-shot模型,而不是采樣后的模型。采樣后的模型是指從這個完整的one-shot中按照某種策略得到的模型。文中把這種模型叫做candidate architectures

我們以分類任務為例,假設reference architectures對某個樣本的預測輸出是\((p_1,p_2,...,p_n)\),其中\(n\)表示類別數量;而candidate architectures的輸出為\((q_1,q_2,...,q_n)\)。注意candidate architecture的輸出應該是沒有retrain的結果。

所以如果上面的猜想是正確的,那么表現最好的candidate architecture的預測應該要和所有操作都保留的one-shot模型的預測結果要十分接近。文中使用對稱散度來判斷相似性,散度公式為\(D_{\mathrm{KL}}(p \| q)=\sum_{i=1}^{n} p_{i} \log \frac{p_{i}}{q_{i}}\),那么對稱散度就是\(D_{\mathrm{KL}}(p \| q)+D_{\mathrm{KL}}(q \| p)\)。對稱散度結果是在64個隨機樣本上得到的平均值,散度值越接近於0,表示二者輸出越相近。

最后的結果如圖示,可以看到在訓練集上散度值低的模型(即預測值和保留大多數操作的完整模型很接近),在驗證集上的准確率也相對高一些。

原論文各種名詞用的很混亂,一下是one-hot,一下是reference architecture,看得很迷幻,結合了好幾個博文歸納總結的此文,有問題歡迎評論區指出。
參考:

微信公眾號:AutoML機器學習
MARSGGBO原創
如有意合作或學術討論歡迎私戳聯系~
郵箱:marsggbo@foxmail.com

2020-06-25 17:11:21


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM