您當前的位置:首頁 > 收藏

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

作者:由 量子位 發表于 收藏時間:2018-08-25

原作:George Seif

夏乙 安妮 編譯整理

量子位 出品 | 公眾號 QbitAI

AutoML和神經架構搜尋(NAS),是深度學習領域的新一代王者。

這些方法能

快糙猛

地搞定機器學習任務,簡單有效,高度符合當代科技公司核心價值觀。

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

它們背後原理如何,怎樣使用?

技術部落格TowardDataScience有一篇文章,就全面介紹了關於AutoML和NAS你需要了解的一切。

NAS

要了解AutoML,還得從NAS說起。

在開發神經網路的過程中,架構工程事關重大,架構先天不足,再怎麼訓練也難以得到優秀的結果。

當然,提到架構,很多人會想到遷移學習:把ImageNet上訓練的ResNet拿來,換個我需要的資料集再訓練訓練更新一下權重,不就好了嘛!

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

這種方法的確也可行,但是要想得到最好的效果,還是根據實際情況設計自己的網路架構比較靠譜。

設計神經網路架構,能稱得上機器學習過程中門檻最高的一項任務了。想要設計出好架構,需要專業的知識技能,還要大量試錯。

NAS就為了搞定這個費時費力的任務而生。

這種演算法的目標,就是搜尋出最好的神經網路架構。它的工作流程,通常從定義一組神經網路可能會用到的“建築模組”開始。比如說Google Brain那篇NasNet論文,就為影象識別網路總結了這些常用模組:

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

其中包含了多種卷積和池化模組。

論文:Learning Transferable Architectures for Scalable Image Recognition

地址:

https://

arxiv。org/pdf/1707。0701

2。pdf

NAS演算法用一個迴圈神經網路(RNN)作為

控制器

,從這些模組中挑選,然後將它們放在一起,來創造出某種端到端的架構。

這個架構,通常會呈現出和ResNet、DenseNet等最前沿網路架構一樣的風格,但是內部模組的組合和配置有所區別。一個架構的好壞,往往就取決於選擇的模組和在它們之間構建的連線。

接下來,就要訓練這個新網路,讓它收斂,得到在留出驗證集上的準確率。這個準確率隨後會用來透過策略梯度更新控制器,讓控制器生成架構的水平越來越高。

過程如下圖所示:

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

這個過程很直觀了。簡單來說,很有小朋友搭積木的風範:讓一個演算法挑出一些積木,然後把它們組裝在一起,做成一個神經網路。訓練、測試,根據這個結果來調整選積木的標準和組裝的方式。

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

這個演算法大獲成功,NasNet論文展現出非常好的結果,有一部分原因是出於他們做出的限制和假設。

論文裡訓練、測試NAS演算法發現的架構,都用了一個比現實情況小得多的資料集。當然,這是一種折衷的方法,要在ImageNet那麼大的資料集上訓練驗證每一種搜尋結果,實在是太耗費時間了。

所以,他們做出了一個

假設

:如果一個神經網路能在結構相似的小規模資料集上得到更好的成績,那麼它在更大更復雜的資料集上同樣能表現得更好。

在深度學習領域,這個假設基本上是成立的。

上面還提到了一個

限制

,這指的是搜尋空間其實很有限。他們設計NAS,就要用它來構建和當前最先進的架構風格非常類似的網路。

在影象識別領域,這就意味著用一組模組重複排列,逐步下采樣,如下圖所示:

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

這些模組也都是當前研究中常用的。NAS演算法在其中所做的新工作,主要是給這些模組換個連線方式。

下面,就是它發現的ImageNet最佳神經網路架構:

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

架構搜尋的進展

這篇NASNet論文帶動了行業內的一次進步,它為深度學習研究指出了一個全新方向。

但是,用450個GPU來訓練,找到一個優秀的架構也需要訓練3到4天。也就是說,對於除了Google之外的普通貧民使用者們,這種方法還是門檻太高、效率太低。

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

NAS領域最新的研究,就都在想方設法讓這個架構搜尋的過程更高效。

2017年穀歌提出的

漸進式神經架構搜尋(PNAS)

,建議使用名叫“基於序列模型的最佳化(SMBO)”的策略,來取代NASNet裡所用的強化學習。用SMBO策略時,我們不是隨機抓起一個模組就試,而是按照複雜性遞增的順序來測試它們並搜尋結構。

這並不會縮小搜尋空間,但確實用更聰明的方法達到了類似的效果。SMBO基本上都是在講:相比於一次嘗試多件事情,不如從簡單的做起,有需要時再去嘗試複雜的辦法。這種PANS方法

比原始的NAS效率高5到8倍

,也

便宜

了許多。

論文:Progressive Neural Architecture Search

地址:

https://

arxiv。org/pdf/1712。0055

9。pdf

高效神經架構搜尋(ENAS)

,是谷歌打出的讓傳統架構搜尋更高效的第二槍,這種方法很親民,只要有GPU的普通從業者就能使用。作者假設NAS的計算瓶頸在於,需要把每個模型到收斂,但卻只是為了衡量測試精確度,然後所有訓練的權重都會丟棄掉。

論文:Efficient Neural Architecture Search via Parameter Sharing

地址:

https://

arxiv。org/pdf/1802。0326

8。pdf

因此,ENAS就要透過改進模型訓練方式來提高效率。

在研究和實踐中已經反覆證明,遷移學習有助在短時間內實現高精確度。因為為相似任務訓練的神經網路權重相似,遷移學習基本只是神經網路權重的轉移。

ENAS演算法強制將所有模型的權重共享,而非從零開始訓練模型到收斂,我們在之前的模型中嘗試過的模組都將使用這些學習過的權重。因此,每次訓練新模型是都進行遷移學習,收斂速度也更快。

下面這張表格表現了ENAS的效率,而這只是用單個1080Ti的GPU訓練半天的結果。

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

ENAS的表現和效率

深度學習新方法AutoML

很多人將AutoML稱為深度學習的新方式,認為它改變了整個系統。有了AutoML,我們就不再需要設計複雜的深度學習網路,只需執行一個預先設定好的NAS演算法。

最近,Google提供的Cloud AutoML將這種理念發揮到了極致。只要你上傳自己的資料,Google的NAS演算法就會為你找到一個架構,用起來又快又簡單。

AutoML的理念就是把深度學習裡那些複雜的部分都拿出去,

你只需要提供資料

,隨後就讓AutoML在神經網路設計上盡情發揮吧。這樣,深度學習就變得像外掛一樣方便,只要有資料,就能自動創建出由複雜神經網路驅動的決策功能。

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

谷歌雲的AutoML pipeline

不過,AutoML價格也並不算親民,每小時收費20美元。此外,一旦你開始訓練,則無法匯出模型,並且得用谷歌提供的API在雲上執行你的網路,這些限制看起來都不是很方便,

AutoKeras也是一個使用了ENAS演算法的GitHub專案,可以使用pip安裝。它是用Keras編寫的,因此很容易控制和使用,甚至可以自己深入研究ENAS演算法並嘗試進行一些改動。

如果你喜歡用TensorFlow或者Pytorch,也有一些開源專案可用:

https://

github。com/melodyguan/e

nas

https://

github。com/carpedm20/EN

AS-pytorch

總的來說,若你想使用AutoML,現在已經有很多不同的選擇,這完全取決於你是否會使用你想要的演算法,以及你對這件事的預算如何。

AutoML和NAS未來會怎樣?

過去幾年,在深度學習工作的自動化上,整個領域都在大步向前,讓深度學習更貼近大眾、更易用。

不過,進步的空間永遠都有。

架構搜尋已經越來越高效了,用ENAS,一個GPU一天就能找出一種新的網路架構。的確鵝妹子嚶,但是這個搜尋空間依然非常有限,而且,現在NAS演算法所用的基本結構和模組還是人工設計的,只是將組裝的過程自動化了。

將來要想取得重大突破,在更廣闊的搜尋範圍裡搜尋真正的新架構是一個重要方向。

如果這樣的演算法出現,甚至能為我們揭示龐大複雜深度神經網路中隱藏的秘密。

當然,要實現這樣的搜尋空間,需要設計出更高效的演算法。

最後,附上原文傳送門:

https://

towardsdatascience。com/

the-end-of-open-ai-competitions-ff33c9c69846

這篇文章全面介紹了用來自動尋找神經網路架構的AutoML,量子位之前還介紹過很多深度學習其他工作的自動化框架,比如自動特徵工程、自動調參等等。

一文看懂深度學習新王者「AutoML」:是什麼、怎麼用?

歡迎檢視:自動機器學習工具全景圖:精選22種框架,解放煉丹師

歡迎大家關注我們的專欄:量子位 - 知乎專欄

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。

量子位 QbitAI· 頭條號簽約作者

վ‘ᴗ’ ի 追蹤AI技術和產品新動態

標簽: 架構  nas  AutoML  神經網路  演算法