背景介紹
最近幾年的深度學習領域,AutoML 技術即自動化機器學習技術,正引領著整個領域發生著日新月異的變化,自動化技術正在成為各個深度學習算法方向必不可少的標準技術。而作為 AutoML 的核心技術自動化神經網絡構架搜索 NAS (Neural Architecture Search),也在近期的各種國際會議上大放異彩,比如 ICLR 的為 NAS 主題舉辦了第一屆 workshop,其中 Google Brain的Quoc V. Le 發表了一小時的關於神經網絡自動化未來的看法。目前 NAS 方法已經存在非常多,其中 DARTS [2] 方法,即可微分結構搜索(Differentiable Architecture Search),是格外引起廣大研究從業人員關注的一種方法。針對每層神經網絡不同的操作,DARTS 為每種操作分配權重,然後在向後梯度傳遞的時候更新這些權重,最後對這些權重採用 softmax 方法選擇出唯一路徑。由於 DARTS 的可復現性不高,也遭到了不少研究者和從業人員的質疑,主要集中在,[1] 訓練過程中存在 skip-connection 富集現象,導致最終模型出現大幅度的性能損失問題 [2] softmax 離散化存在很大 gap,結構參數最佳的操作和其他算子之間的區分度並不明顯,這樣選擇的操作很難達到最優。
針對這兩個問題,小米實驗室 AutoML 團隊的研究者(作者:初祥祥、張勃等)提出了他們的最新研究成果 NoisyDARTS,通過向 skip-connection 注入噪聲的方法,來抵消由於不公平競爭而導致的富集和性能損失問題,並且在 CIFAR-10 和 ImageNet 上分別取得了 97.61%
其實早在其之前的工作 FairDARTS [1] 中,就通過使用 sigmoid 函數而不是 softmax 函數來解決富集和性能損失問題。
他們認為,softmax 使不同操作之間的關係變為競爭關係,由於 skip connection 和其他算子的加和操作形成殘差結構,這就導致了 skip connection 比其他算子有很大的優勢,這種優勢在競爭環境下表現為不公平優勢並持續放大,而其他有潛力的操作受到排擠,因此任意兩個節點之間通常最終會以 skip connection 佔據主導,導致最終搜索出的網絡性能嚴重不足。
而 FairDARTS 通過 sigmoid 使每種操作有自己的權重,這樣鼓勵不同的操作之間相互合作,最終選擇算子的時候選擇大於某個閾值的一個或多個算子,在這種情形下,所有算子的結構權重都能夠如實體現其對超網性能的貢獻,而且殘差結構也得以保留,因此最終生成的網絡不會出現性能崩塌,從而避免了原生 DARTS 的 skip-connection 富集而導致的性能損失問題。
新作 NoisyDARTS 是在 FairDARTS 基礎上的推論,既然 skip connection 存在不公平優勢,那麼對其注入噪聲即可幹擾其優勢,抑制其過度發揮,從而解決 skip connection 富集現象。
這是一個簡單優雅但又極為有效的方法。NoiseDARTS 從數學推導上回答了,實際操作的時候應該注入怎樣的噪聲,以及注入噪聲對網絡有何影響,實驗部分也符合推理。方法
通過加注噪聲來增強訓練的方法在深度學習領域早已有很多應用,比如 Vincent et al. [1] 通過加注噪聲使得自編碼器提取穩健(rubust)特徵;Fortunato et al. [4] 通過隨機噪聲實現穩定強化學習中的搜索;同時 Neeklakantan et al. [5] 和Zhang et al. [6] 指出,在梯度中注入噪聲也可以促進模型的訓練。
本節接下來主要回答 NoisyDARTS 關於噪聲的的主要兩個問題:如何加入噪聲?加入怎樣的噪聲?並且在末尾給出 DARTS 上的具體實現。
NoisyDARTS 選擇在向前傳遞的 skip-connection 的輸入中加入噪聲,如圖所示,其中