Noisy DARTS:含注入噪聲的可微分神經網絡搜索

2021-02-20 PaperWeekly
論文連結:http://arxiv.org/abs/2005.03566
源碼連結:https://github.com/xiaomi-automl/NoisyDARTS

背景介紹

最近幾年的深度學習領域,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 的輸入中加入噪聲,如圖所示,其中

其次,加入怎樣的噪聲。文章中提到如上圖所示,加入噪聲會為梯度更新帶來不確定性,那麼 skip-connection 就更難勝過其他操作,因此原本不公平的優勢就被削弱了。可是保持梯度的更新是有效的,應該加注怎樣的噪聲?

NoisyDARTS 提出,應該加注一種無偏的並且方差較小的噪聲,比如之後的實驗中使用均值為 

這樣做的近似好處在於,我們可以近似認為梯度的期望也是無偏的:

接下來,我們在討論如何將上面討論的噪聲注入方法應用到實際的 DARTS 模型上。首先,對於節點 j 的所有輸入為所有之前 (i<j) 節點的輸出,並在 j 上做 M 種不同操作方法,其中 o 代表不同的操作,比如卷積或者 skip-connection 等等:

其次,對於 skip-connection 操作,我們對其輸入添加噪聲,而對於其他操作,我們保持不變:

因此與 DARTS 比較,NoisyDARTS 做的改動是在 skip-connection 的輸入上增添噪聲,雖然改動微小,但這一微小的改變卻非常顯著地解決了 skip-connection 的富集和性能損失這兩個問題,並且基本上不添加額外的計算開銷或參數量。

實驗及結果

NoisyDARTS 選擇兩種廣泛使用和精心設計的搜索空間:DARTS 的搜索空間(Liu et al. [2])和 MobileNetV2 的搜索空間(Cai et al. [2019])。前者在搜索空間上搜索了兩種類型的 cell,其次 NoisyDARTS 的實驗分別是在 CIFAR-10 和 ImageNet 上進行的。上圖展示的是在 supernet 訓練過程中,不同的操作在 softmax 下的權重變化,其中深綠色的線是 skip-connection 被 softmax 分配的權重。這張圖中可以看到,normal cell中 的 skip-connection 數量被極大的消減了,同時保留了 reduction-cell 中的 skip-connection。具體獲得的兩種結構如下圖所示:

下圖展示的是在 CIFAR-10 上,NoisyDARTS 與其他主流 NAS 方法相比的結果,其中   NoisyDARTS-A-t 是在 ImageNet上 訓練得到的模型,遷移到 CIFAR-10 上訓練得到的結果:下圖展示的是在 ImageNet上,NoisyDARTS 得到的結果。通過與 DARTS 比較,NoisyDARTS 無論是在 CIFAR-10 還是在 ImageNet上,都更具優勢,也說明了注入噪聲這一操作,改動微小卻行之有效。並且 NoisyDARTS 自身對比了注入噪聲與不注入噪聲在 CIFAR-10 和 ImageNet 上的不同表現,發現注入噪聲對搜索到的模型提升明顯:

其次 NoisyDARTS 測試了注入無偏噪聲和有偏噪聲的區別,如下:

確實符合之前的數學推斷,無偏噪聲對模型的提升是要高於有偏噪聲的,並且 NoisyDARTS 做了關於均勻噪聲和噪聲的添加形式的實驗,結果如下:

總結

首先,NoisyDARTS 提出通過對 skip-connection 中加入噪聲(無偏小方差高斯噪聲),極大的限制了原本 skip-connection 的不公平競爭問題,解決了 DARTS 中skip-connection富集和模型化後性能損失的問題。

其次,通過實驗,NoisyDARTS 分別在 CIFAR-10 和 ImageNet 上取得了 state-of-art 的穩健的結果。

最後關於未來發展 AutoML 的必要性,我想引用 Quoc V.Le 在第一屆 ICLR workshop 上的一段話作為本文的結尾:最早的機器學習其實是特徵工程,由專家設計好特徵後交給比如 SVM 進行學習。但在 CNN 時代,端到端的網絡模型被認為能夠自動的找到有效特徵,從而取得更好的預測結果。現在,模型的複雜度和超參數日益提升,手動調整的參數遠非最優,AutoML/Learn2Learn 的發展必不可少。

[1] Xiangxiang Chu, Tianbao Zhou, Bo Zhang, and Jixiang Li. Fair darts: Eliminating unfair advantages in differentiable architecture search. arXiv preprint arXiv:1911.12126, 2019a.

[2] Hanxiao Liu, Karen Simonyan, and Yiming Yang. DARTS: Differentiable Architecture Search. In ICLR, 2019.

[3] Pascal Vincent, Hugo Larochelle, Yoshua Bengio, and Pierre-Antoine Manzagol. Extracting and composing robust features with denoising autoencoders. In Proceedings ofthe 25th international conference on Machine learning, pages 1096–1103, 2008.

[4] Meire Fortunato, Mohammad Gheshlaghi Azar, Bilal Piot, Jacob Menick, Matteo Hessel, Ian Osband, Alex Graves, Volodymyr Mnih, Remi Munos, Demis Hassabis, Olivier Pietquin, Charles Blundell, and Shane Legg. Noisy networks for exploration. In International Conference on Learning Representations, 2018.

[5] Arvind Neelakantan, Luke Vilnis, Quoc V Le, Ilya Sutskever, Lukasz Kaiser, Karol Kurach, and James Martens. Adding Gradient Noise Improves Learning for Very Deep Networks. arXiv preprint arXiv:1511.06807, 2015.

[6] Baochang Zhang, Chen Chen, Qixiang Ye, Jianzhuang Liu, David Doermann, et al. Calibrated Stochastic Gradient Descent for Convolutional Neural Networks. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 33, pages 9348–9355, 2019.

[7] Han Cai, Ligeng Zhu, and Song Han. ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware. In ICLR, 2019.

相關焦點

  • DeepMind提出可微分邏輯編程,結合深度學習與符號程序優點
    夏乙 編譯自 DeepMind Blog   神經網絡的強大功能有目共睹,但它往往需要大量與目標測試領域數據分布相似的訓練數據;而用於符號領域的歸納邏輯編程只需少量數據,卻無法對抗噪聲,   DeepMind在最近發表的一篇論文中,提出了可微分歸納邏輯編程方法?ILP,既能解決傳統歸納邏輯編程擅長的符號類任務,也對噪聲數據、訓練集中的誤差有一定容忍度,還可以通過梯度下降來訓練。   怎麼樣?我們來看看DeepMind在官方博客上對這種方法的解讀:
  • 《自然》雜誌:「可微分神經計算機」問世
    英國《自然》雜誌12日發表了一項人工智慧重要成果,描述了一種集神經網絡與計算機優點於一身的混合型學習機器,既能像神經網絡那樣學習,又能像計算機那樣處理複雜數據
  • 谷歌DeepMind 的可微分神經計算機 DNC 怎麼樣?看 Facebook AI...
    近日,谷歌的 AI 部門 DeepMind 開發了一種叫做可微分神經計算機(DNC)的神經網絡模型,相關論文發表於 10 月 12 日在線出版的《自然》雜誌上,題為《 利用神經網絡與外部動態存儲器進行混合計算》。這種新模型將神經網絡與可讀寫的外部存儲器結合,既能像神經網絡那樣通過試錯和樣本訓練進行深度學習,又能像傳統計算機一樣處理數據。
  • MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    微分太極是基於太極項目的,它能夠使用源碼轉換的方式,對模擬步驟生成梯度。模擬程序由一個輕量的 tape 進行記錄,並以降序方式返回核的梯度,實現端到端反向傳播。左:微分太極可以和神經網絡控制器及物理模擬模塊無縫結合,並向控制器或初始化轉臺參數更新梯度。
  • DeepMind可微分神經計算機DNC開源 內部架構原理首次曝光
    1 新智元報導1   作者:聞菲胡祥傑 劉小芹 零夏  【新智元導讀】DeepMind昨夜宣布,將其 Nature 論文研究成果、2016 年引起熱議的可微分神經計算機 DNC 開源,相關代碼和部署細節已經在 Github 公開。
  • 萬字解讀商湯科技ICLR2019論文:隨機神經網絡結構搜索
    該論文提出了一種全新的經濟、高效且自動化程度高的神經網絡結構搜索(NAS)方法。他們通過深入分析NAS任務的MDP,提出了一個更高效的方法——隨機神經網絡結構搜索,重新建模了NAS問題。與基於強化學習的方法(ENAS)相比,SNAS的搜索優化可微分,搜索效率更高。與其他可微分的方法(DARTS)相比,SNAS直接優化NAS任務的目標函數,搜索結果偏差更小。
  • 【深度學習會被可微分編程取代?】展望30年後的神經網絡和函數編程
    機器學習著名博主colah(Christopher Olah)在2015年展望30年後的深度學習,提到了可微分編程。他從深度學習三大觀點之一的表示(representation)角度出發,認為深度學習研究的是優化和函數編程之間的聯繫,而可微分編程則是函數編程和優化的自然交集,十分優雅而簡潔,值得進一步研究。目前,深度學習是一個非常成功的工具。
  • 【神經網絡】神經網絡簡介
    增強網絡的分類和識別能力、解決非線性問題的唯一途徑是採用多層前饋前饋網絡,即在輸入層和輸出層之間加上隱含層,構成多層前對感知器網絡。[2]BP神經網絡是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡,是在前饋神經網絡的基礎上應用了BP算法(下一節會講到),屬於前饋神經網絡的一種。BP神經網絡的基本思想是梯度下降法,利用梯度搜索技術,以期望使得網絡的實際輸出值和期望輸出值的誤差均方差最小。
  • Yann LeCun:深度學習已死,可微分編程萬歲!
    沒錯,「可微分編程」不過是把現代這套深度學習技術重新換了個叫法,這就跟「深度學習」是現代兩層以上的神經網絡變體的新名字一樣。但重要的一點是,人們現在正在將各種參數化函數模塊的網絡組裝起來,構建一種新的軟體,並且使用某種基於梯度的優化來訓練這些軟體。
  • 「深度學習被可微分編程取代?」展望30年後的神經網絡和函數編程
    【新智元導讀】在Yann LeCun「深度學習已死」的驚人發言下,可微分編程的概念引發了廣泛關注。機器學習著名博主colah(Christopher Olah)在2015年展望30年後的深度學習,提到了可微分編程。
  • 7 Papers|MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    機器之心&ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文有 MIT 學神胡淵鳴等開源的自動微分版太極以及北大、華為諾亞方舟實驗室等主張以加法運算代替深度神經網絡中的乘法運算。
  • 含納維-斯託克斯方程(氣象學)實例,微分方程 VS 機器學習
    機器學習對於人類不確定如何將信號從噪聲中分離出來的複雜系統格外有效,只需要訓練一種聰明的算法,讓它來代替你做繁瑣的事情。機器學習任務廣義上可以分為:如今機器學習和人工智慧系統在日常生活中隨處可見。因此,我們需要在簡單性和可分析性之間進行權衡,正如統計學家 George Box 所說:在機器學習和統計學中,模型複雜度被稱為「偏差 - 方差權衡」。高偏差模型過於簡單,導致欠擬合,高方差模型存儲的是噪聲而不是信號(即系統的實際結構),會導致過擬合。該方程涉及農業、生物學、經濟學、生態學、流行病學等領域。logistic 模型的一個例子是哈伯特峰值石油模型。
  • 神經圖靈機深度講解:從圖靈機基本概念到可微分神經計算機
    這裡的關鍵思想是神經圖靈機基本上就是可微分的圖靈機,這是很重要的,因為我們每天在計算機上做的算法和事情對計算機來說是非常困難的,原因是計算機的計算是絕對的。要麼是 0 要麼是 1。計算機在「非此即彼」的邏輯或者整數中運作。然而大多數的神經網絡和機器學習實際上不是這樣的。它們使用實數。
  • 什麼是神經網絡架構搜索?
    然而,神經網絡架構本身通常由專家以艱苦的、一事一議的方式臨時設計出來。 神經網絡架構搜索(NAS)被譽為一條減輕痛苦之路,它可以自動識別哪些網絡優於手工設計的網絡。但是,無論是在研究進展還是炒作方面,這個領域都變得如此之快,很難得到一些基礎問題的答案:NAS到底是什麼,它與AutoML或超參數優化有什麼根本的不同? 定製化的NAS方法真的有用嗎? 它們使用起來不是很昂貴嗎?
  • 一文解構神經常微分方程
    這篇文章的重點將介紹神經常微分方程的實際用途、應用這種所需的神經網絡類型的方式、原因以及可行性。為什麼需要關注常微分方程?首先,快速回顧一下什麼是常微分方程。這基本上是神經常微分方程的主要思想:神經網絡中的殘差塊鏈基本上是用歐拉法來求解常微分方程。在這種情況下,系統的初始條件是「時間」0,它表示神經網絡的第一層,因為x(0)將作用於正常輸入,這可以是時間序列、圖像,以及任何你想要的!「時間」 t的最終條件是神經網絡的期望輸出:標量值、表示類的或其他任何東西的向量。
  • 計算機視覺與模式識別論文摘要:神經常規微分方程、推理視覺問答
    神經常規微分方程論文一:標題:Neural Ordinary Differential Equations,神經常規微分方程神經常規微分方程論文摘要:介紹了一種新的深度神經網絡模型。我們使用神經網絡參數化隱藏狀態的導數,而不是一個具體指定的離散隱藏層的序列。
  • Google Deepmind最新開發的可微分神經計算機是什麼?
    Graves et al.本周《自然》發表的研究Hybrid neural computing using a dynamic external memory描述了一種集神經網絡與計算機優點於一身的混合型學習機器。傳統計算機可以處理複雜的數據形式,但是需要手工編程來執行這些任務。
  • 科學家提出多自由度網絡架構協同搜索新方法
    設計滿足計算量、時延等特定資源約束的高性能神經網絡架構在實際人工智慧應用中有著重要意義,是數據獲取、模型設計、訓練部署這一閉環中的組成成分。手工設計網絡架構是一個耗時耗力的過程,需大量試錯實驗,且更換硬體平臺、更換資源約束條件時,還需重新設計網絡架構。近年來興起的自動網絡架構搜索技術給高性能網絡架構的設計帶來了新穎而經濟的解決思路。
  • CVPR 2019 神經網絡架構搜索進展綜述
    ——但是還為時過早。手動調參尋找神經網絡架構依然是個有趣的工作,尤其是對於那些帶了很多學生的導師而言(開玩笑啦~)。  神經網絡架構搜索(NAS)——前言那麼問題來了,神經網絡架構搜索(NAS)究竟是什麼?為什麼我們要了解NAS呢?
  • Places to Play Darts in Shanghai
    If this is indeed the feeling you get sometimes, may we suggest darts?This spot is perfect for darts, but it's also perfect for a bunch of other sports if you get bored of that.