AutoML 和神經架構搜索初探
來自CMU和DeepMind的研究人員最近發布了一篇有趣的新論文,稱為可微分網路結構搜索(DARTS),它提供了一種神經網路結構搜索的替代方法,這是目前機器學習領域的一個大熱門。神經網路結構搜索去年被大肆吹捧,Google首席執行官Sundar Pichai和Google AI負責人Jeff Dean宣稱,神經網路結構搜索及其所需的大量計算能力對於機器學習的大眾化至關重要。科技媒體爭相報道了谷歌在神經網路結構搜索方面的工作。
報道谷歌的AutoML和神經網路結構搜索的頭條新聞
在2018年3月舉辦的TensorFlow DevSummit大會上,Jeff Dean在主題演講(大約22:20左右開始)中宣稱,未來谷歌可能會用100倍的計算能力取代機器學習專家。 他給出了需要龐大計算力的神經網路結構搜索作為例子(他給出的唯一例子),來說明為什麼我們需要100倍的計算能力才能使更多人能夠使用ML。
Jeff Dean在TensorFlow DevSummit大會上的主題演講
什麼是神經網路結構搜索?它是使得機器學習技術可以被非機器學習專家所使用的關鍵嗎?
我將在這篇文章中深入研究這些問題,在下一篇文章中,我將專門研究Google的AutoML。 神經網路結構搜索是一個名為AutoML的更廣泛領域的一部分。AutoML近年來受到了很多關注,我們將首先來探討它。
目錄:
? AutoML是什麼?
? AutoML有用嗎?
? 神經網路結構搜索是什麼?
? DARTS是什麼?
? 神經網路結構搜索有用嗎?
? 如何讓機器學習從業者更高效地工作? AutoML vs增強機器學習
AutoML 是什麼?
傳統上,術語AutoML用於描述模型選擇和/或超參數優化的自動化方法。這些方法適用於許多類型的演算法,例如隨機森林,梯度提升機器(gradient boosting machines),神經網路等。 AutoML領域包括開源AutoML庫,研討會,研究和比賽。 初學者常常覺得他們在為模型測試不同的超參數時通常僅憑猜測,而將這部分過程的自動化可以使機器學習變得更加容易。即使是對經驗豐富的機器學習從業者而言,這一自動化過程也可以加快他們的速度。
業內現存有許多AutoML庫,其中最早出現的是AutoWEKA,它於2013年首次發布,可以自動選擇模型和超參數。其他值得注意的AutoML庫包括auto-sklearn(將AutoWEKA拓展到了python環境),H2O AutoML和TPOT。 AutoML.org(以前被稱為ML4AAD,Machine Learning for Automated Algorithm Design)小組,自2014年以來一直在ICML機器學習學術會議上組織AutoML研討會。
AutoML 有用嗎?
AutoML提供了一種選擇模型和優化超參數的方法。它還可以用於獲取對於一個問題可能性能的基準結果。這是否意味著數據科學家將被取代? 並非如此,因為我們知道,機器學習從業者還有許多其他事情要做。
對於許多機器學習項目,選擇模型不過是構建機器學習產品複雜過程中的一部分。 正如我在上一篇文章中所述,如果參與者不了解項目各個部分是如何相互關聯的,那麼項目必然會失敗。我能想到過程中可能會涉及的30多個不同步驟。我必須要強調,機器學習(特別是深度學習)中最耗時的兩個方面是清理數據(這是機器學習中不可或缺的一部分)和訓練模型。 雖然AutoML可以幫助選擇模型並選擇超參數,但重要的是,我們仍然要理清有哪些數據科學的技能是需要的以及那些仍未解決的難題。
我將提出一些替代AutoML方法的建議,以使機器學習從業者在進行最後一步時更有效率。
神經網路結構搜索是什麼?
現在我們已經介紹了AutoML的一些內容,讓我們來看看該領域特別活躍的一個子集:神經網路結構搜索。谷歌首席執行官桑達·皮采Sundar Pichai在博客中寫道:「設計神經網路是非常耗時的,其對專業知識的極高要求使得只有小部分科研人員和工程師才能參與設計。這就是我們創建AutoML方法的原因,有了它,神經網路也可以設計神經網路。」
Pichai所說的使用「神經網路也可以設計神經網路」就是神經網路結構搜索; 通常使用強化學習或進化演算法來設計新的神經網路網路結構。這很有用,因為它使得我們能夠發現比人們想像的要複雜得多的網路結構,並且這些網路結構可以針對特定目標進行優化。神經網路結構搜索通常需要大量計算力。
確切地說,神經網路結構搜索通常涉及學習像層(通常稱為「單元」)之類的東西,它們可以組裝成一堆重複的單元來創建神經網路:
來自Zoph等人2017年發表的論文。左邊是單元堆疊的完整神經網路,右邊是單元的內部結構
關於神經結構搜索的學術論文很多,所以我將在這裡重點介紹幾篇最近發表的論文:
來自Le和Zoph的博客文章:左邊更簡單的架構是人類設計的,右邊更複雜的架構是神經網路設計的。
? 通過Learning Transferable Architectures for Scalable Image Recognition論文中提出的NASNet。這項研究在小數據集Cifar10上尋找一個網路結構構建塊,然後為大型數據集ImageNet構建網路。這項研究需要大量計算,花費1800個GPU天(相當於1個GPU工作5年)來學習網路結構(谷歌團隊使用500個GPU 訓練了4天!)。
? Regularized Evolution for Image Classifier Architecture Search論文中提出的AmoebaNet。這項研究比NASNet需要更多的計算,它花費3150個 GPU天(相當於1 GPU近9年的時間)來學習網路結構(Google團隊使用450個K40 GPU 訓練了7天!)。 AmoebaNet由通過進化演算法習得的「單元」組成,表明人工智慧進化而來的架構可以媲美甚至超越人工製作和強化學習設計的圖像分類器。 fast.ai對此架構進行了改進,學習進程加快的同時改變了訓練過程中圖像的尺寸。AmoebaNet已成為在單台機器上訓練ImageNet最便宜的方式!
? 高效的神經網路結構搜索(ENAS):使用的GPU小時數比現有的自動模型設計方法少得多,特別是比標準的神經網路結構搜索所需的計算力要少1000倍。這項研究僅使用單個GPU訓練了16個小時!
DARTS是什麼?
可微分網路結構搜索(DARTS)。這項研究是最近由卡內基梅隆大學和DeepMind的一個團隊發布的,我對這個想法很感興趣。 DARTS假定候選網路結構的空間是連續的,而不是離散的,這使得它能夠使用基於梯度的方法。這比大多數神經架構搜索演算法使用的黑箱搜索效率高得多。
來自DARTS,它將所有可能的網路結構空間視為連續的,而非離散的
要為Cifar-10學習一個網路結構,DARTS僅需4個GPU天,相比之下,NASNet為1800 個GPU天,AmoebaNet為3150個GPU天(準確度都相同)。這是效率的巨大提升! 雖然還需要更多的探索,但這是一個很有前景的研究方向。 Google經常強調神經架構搜索需要巨大計算力,這說明有效的網路結構搜索方法很可能未被充分探索。
神經架構搜索有用嗎?
在他的TensorFlow DevSummit主題演講中(從22:20開始),Jeff Dean提出深度學習工作的一個重要部分是嘗試不同的網路結構。這是Dean在他的簡短的演講中唯一強調的機器學習步驟,我對他的重點感到驚訝。Sundar Pichai的博文包含了類似的斷言。
Jeff Dean的幻燈片顯示神經網路結構搜索可以嘗試20種不同的模型以找到最準確的一種。
但是,選擇模型只是構建機器學習產品複雜過程中的一部分。 在大多數情況下,網路結構選擇遠不是最難,最耗時或最重要的問題。目前,沒有證據能夠證明每個問題最好用它自己獨特的網路結構來建模,大多數從業者都認為不太可能會出現這種情況。
谷歌等組織致力於網路結構設計,並與其他人共享他們發現的網路結構。這樣的服務是非常重要且有用的。 然而,只有那些致力於基礎神經結構設計的小部分研究人員才需要基礎架構搜索方法。 我們其他人可以通過遷移學習來利用他們找到的網路結構。
如何讓機器學習從業者更高效地工作? AutoML vs增強機器學習(Augmented ML)
神經網路結構搜索是AutoML領域的一部分,該領域關注的核心問題是:我們如何將模型選擇和超參數優化過程自動化? 然而,自動化忽視了人類參與的重要作用。 我想提出另一個問題:人類和計算機如何協同工作才能使機器學習效率更高? 增強機器的重點在於弄清楚人和機器應如何更好地協同工作以發揮他們的不同優勢。
增強機器學習的一個例子是Leslie Smith的學習率查詢器,它可在fastai庫(在PyTorch之上運行的高級API)中實現,我們在免費的深度學習課程中也將其作為關鍵技術進行教學。 學習率是一個超參數,可以確定模型訓練的速度,甚至可以確定模型是否訓練成功。 學習速率查詢器允許人類通過查看生成的圖表中找到合適的學習速率。它比AutoML更快地解決了這一問題,增強了數據科學家對訓練過程的理解,並鼓勵採用更強大的多步驟方法來訓練模型。
來自Surmenok關於學習率查詢器的博客文章,顯示了學習率與損失之間的關係
專註於自動化超參數選擇存在的另一個問題是:它忽視了某些類型的模型可能適用性更廣,需要調整的超參數更少以及對超參數選擇不太敏感的情況。例如,隨機森林優於梯度提升機器(Grandient Boosting Machine, GBM)的重要一點是隨機森林更加穩定,而GBM往往對超參數的微小變化相當敏感。因此,隨機森林在業內得到廣泛應用。研究有效刪除超參數的方法(通過更智能的默認值或通過新模型)將產生巨大的影響。當我在2013年開始對深度學習感興趣時,對如此多的超參數感到不知所措,我很高興新的研究和工具幫助消除了許多超參數(特別是為初學者)。例如,在fast.ai課程中,初學者只需要選擇學習率這一個超參數,我們甚至會給你一個工具來做到這一點!
※上汽數字化轉型矩陣:成立AI 實驗室,打一套「新四化」的組合拳
※明星臉、花鳥都不是問題,微軟中科大聯合推出細粒度圖像合成模型
TAG:雷鋒網 |