當前位置:
首頁 > 知識 > 終結谷歌每小時20美元的AutoML!開源的AutoKeras了解下

終結谷歌每小時20美元的AutoML!開源的AutoKeras了解下

機器之心報道

機器之心編輯部

谷歌的 AutoML 每小時收費 20 美元,是不是很肉疼?GitHub 上的一個開源項目為廣大從業者帶來了福音。這種名為 AutoKeras 的開源 Python 包為昂貴的 AutoML 提供了免費替代品。AutoKeras 使用高效神經網路自動架構搜索 ENAS,具有安裝快速、運行簡單、案例豐富、易於修改等優點,而且所有代碼都是開源的!想要嘗鮮的小夥伴可以了解一下。

每小時 20 美刀的 AutoML

Google AI 終於發布了 AutoML 的 beta 版,有人說這項服務將徹底改變深度學習的方式。

beta 版鏈接:https://cloud.google.com/automl/

谷歌的 AutoML 是機器學習工具中新的雲軟體集。它基於谷歌最先進的圖像識別研究——神經網路自動架構搜索(Neural Architecture Search,NAS)。NAS 是一種在給定特定數據集中的演算法,用於搜索在該數據集上完成特定任務的最優神經網路。AutoML 是一套機器學習的工具,可以讓用戶輕鬆地訓練高性能的深度網路,而無需用戶具備任何深度學習或人工智慧方面的知識;你所需要的只是標籤數據!谷歌將使用 NAS 為特定的數據集和任務找到最優網路。他們已經展示了該模型如何取得遠優於手工設計網路的性能。

AutoML 完全改變了整個機器學習圈,因為對於許多應用程序來說,有了它就不再需要專業技能和專業知識了。許多公司只需要深度網路完成簡單的任務,如圖像分類。在這一點上,他們不需要招五個機器學習博士,只需要一個能處理數據遷移和數據組織的人即可。

那麼 AutoML 會是讓所有公司或者個人輕鬆做人工智慧的「萬能鑰匙」嗎?

沒那麼快!

在計算機視覺中使用谷歌的 AutoML,每小時將花費 20 刀。簡直瘋了!除非花錢去試,不然你都無法確定 AutoML 是否真的比你自己手工設計的網路更準確。有趣的是,在谷歌以此盈利之前,無論在谷歌還是 AI 社區,人們都更傾向於開源,將知識分享給每一個人。

而谷歌的 AutoML 就將敗在「開源」上。

幫你省錢的開源 AutoKeras

AutoKeras 是一個由易用深度學習庫 Keras 編寫的開源 python 包。AutoKeras 使用 ENAS——神經網路自動架構搜索的高效新版本。AutoKeras 包可通過 pip install autokeras 快速安裝,然後你就可以免費在準備好在的數據集上做你自己專屬的架構搜索。

因為所有的代碼都是開源的,所以如果你想實現真正的自定義,你甚至可以利用其中的參數。所有都來自 Keras,所以代碼都很深入淺出,能幫助開發人員快速準確地創建模型,並允許研究人員深入研究架構搜索。

AutoKeras 具備一個好的開源項目該有的一切:安裝快速,運行簡單,案例豐富,易於修改,甚至可以看到最後 NAS 找到的網路模型!偏愛 TensorFlow 或 Pytorch 的用戶可點擊以下鏈接:

https://github.com/melodyguan/enas

https://github.com/carpedm20/ENAS-pytorch

用戶可以嘗試利用 AutoKeras 或其他任何實現方式替代 AutoML,它們的價格便宜得離譜。或許谷歌正暗中改進 AutoML,與各種開源方法拉開差距,但 NAS 模型的表現與手工設計的模型差距很小,付出這麼高的代價真的值得嗎?

知識應該是開源的

總體來看,深度學習和 AI 是一種非常強大的技術,我們不應該為其設置如此之高的成本壁壘。沒錯,谷歌、亞馬遜、蘋果、Facebook 及微軟都需要賺錢才能在競爭中存活下來。但現在,研究論文是公開的,我們的深度學習庫可以快速複製這些方法,在公開內容唾手可得的情況下,為用戶設置使用障礙是沒有意義的。

這裡有一個更嚴重的潛在問題:知識本身正在被隱藏。AI 領域最新趨勢中非常可圈可點的一點就是:許多研究社區都決定在 arXiv 等網站上快速、公開地發表自己的研究成果,以與其他社區分享並獲得反饋。此外還有一個趨勢變得越來越明顯,即在 Github 上發布研究代碼以供複製以及在研究和實際應用中實現演算法的進一步應用。然而,我們仍然能看到這種研究受困於高高的成本壁壘。

分享有助於每個人知識的增長和科學的進步。知識應該是開源的,這一點毋庸置疑,而且造福人人。

項目鏈接:https://github.com/jhfjhfj1/autokeras

AutoKeras 技術解析

相比於 AutoML,AutoKeras 採用的架構搜索方法是一種結合了貝葉斯優化的神經架構搜索。它主要關注於降低架構搜索所需要的計算力,並提高搜索結果在各種任務上的性能。以下我們將從神經架構搜索到貝葉斯優化介紹 AutoKeras 背後的技術,並期望讀者們能嘗試使用這樣的開源技術完成各種優秀的應用。

神經架構搜索(NAS)是自動機器學習中一種有效的計算工具,旨在為給定的學習任務搜索最佳的神經網路架構。然而,現有的 NAS 演算法通常計算成本很高。另一方面,網路態射(network morphism)已經成功地應用於神經架構搜索。網路態射是一種改變神經網路架構但保留其功能的技術。因此,我們可以利用網路態射操作將訓練好的神經網路改成新的體系架構,如,插入一層或添加一個殘差連接。然後,只需再加幾個 epoch 就可以進一步訓練新架構以獲得更好的性能。

基於網路態射的 NAS 方法要解決的最重要問題是運算的選擇,即從網路態射運算集里進行選擇,將現有的架構改變為一種新的架構。基於最新網路態射的方法使用深度強化學習控制器,這需要大量的訓練樣例。另一個簡單的方法是使用隨機演算法和爬山法,這種方法每次只能探索搜索區域的鄰域,並且有可能陷入局部最優值。

貝葉斯優化已被廣泛用於基於觀察有限數據的尋找函數最優值過程。它經常被用於尋找黑箱函數的最優點,其中函數的觀察值很難獲取。貝葉斯優化的獨特性質啟發了研究者探索它在指導網路態射減少已訓練神經網路數量的能力,從而使搜索更加高效。

為基於網路態射的神經架構搜索設計貝葉斯優化方法是很困難的,因為存在如下挑戰:首先,其潛在的高斯過程(GP)在傳統上是用於歐氏空間的,為了用觀察數據更新貝葉斯優化,潛在高斯過程將使用搜索到的架構和它們的性能來訓練。然而,神經網路架構並不位於歐氏空間,並且很難參數化為固定長度的向量。

其次,採集函數需要進行優化以生成下一個架構用於貝葉斯優化。然而,這個過程不是最大化歐氏空間里的一個函數來態射神經架構,而是選擇一個節點在一個樹架構搜索空間中擴展,其中每個節點表示一個架構,且每條邊表示一個態射運算。傳統的類牛頓或基於梯度的方法不能簡單地進行應用。第三,網路態射運算改變神經架構的的一個層可能會導致其它層的很多變化,以保持輸入和輸出的一致性,這在以前的研究中並沒有定義。網路態射運算在結合了跳過連接的神經架構搜索空間中是很複雜的。

在 AutoKeras 作者提交的論文中,研究人員們提出了一種帶有網路態射的高效神經架構搜索,它利用貝葉斯優化通過每次選擇最佳運算來引導搜索空間。為應對上述挑戰,研究者創建了一種基於編輯距離(edit-distance)的神經網路核函數。與網路態射的關鍵思路一致,它給出了將一個神經網路轉化為另一個神經網路需要多少運算。此外,研究者為樹形架構搜索空間專門設計了一種新的採集函數優化器,使貝葉斯優化能夠從運算中進行選擇。優化方法可以在優化過程中平衡探索和利用。此外,作者還定義了一個網路級態射,以解決基於前一層網路態射的神經架構中的複雜變化。該方法被封裝成一個開源軟體,即 AutoKeras,在基準數據集上進行評估,並與最先進的基線方法進行比較。

該論文的主要貢獻總結如下:

結合網路態射提出了一種高效的神經架構搜索演算法;

提出了利用神經網路內核的 NAS 貝葉斯優化、樹結構採集函數的優化以及網路級的態射;

開發了一個開源軟體 AutoKeras,基於本文提出的神經架構搜索方法;

在基準數據集上運行了大量試驗來評估該方法。

論文:Efficient Neural Architecture Search with Network Morphism

論文地址:https://arxiv.org/abs/1806.10282

雖然目前深度神經網路自動調參領域非常關注神經架構搜索(NAS),但現存的搜索演算法通常面臨計算成本高昂的困境。網路態射(Network morphism)在改變神經網路架構的同時保留它的功能,因此能在搜索過程中實現更有效的訓練來幫助 NAS。然而,基於 NAS 的網路態射仍然在計算上比較昂貴,這主要因為對現有的架構選擇合適的變形操作效率比較低。

眾所周知,貝葉斯優化已經廣泛應用於優化基於有限觀察值的目標函數,這激勵我們探索利用貝葉斯優化加速變形運算選擇過程。本論文中提出了一種新穎的框架,它引入了神經網路核函數和樹架構的採集函數最優化方法,並允許使用貝葉斯優化為高效的神經架構搜索引導網路態射。通過使用貝葉斯優化選擇網路態射操作,搜索空間的探索會更加高效。此外,將這一方法精心包裝成一個開源軟體,即 AutoKeras,沒有豐富機器學習背景的開發者也可以便捷地使用它。研究者已經對真實數據集做了密集的實驗,並證明了開發的框架對於當前最優的基線模型有更優的性能。

研究過程中需要解決的第一個問題是:NAS 空間不是歐氏空間,它並不滿足傳統高斯過程的假設。由於架構包含的層級數和參數數量並不確定,因此向量化所有神經架構是不切實際的。此外,因為高斯過程是一種核方法,所以研究人員使用神經網路核函數以解決 NAS 搜索空間的問題,而不是直接向量化神經架構。核函數背後的原理可直觀理解為將一個神經架構變形為另一個所需的編輯距離。

圖 1:神經網路核函數

我們需要解決的第二個問題是採集函數(acquisition function)最優化。在歐氏空間上定義了傳統採集函數,其優化方法不適用於通過網路態射進行的樹架構搜索。因此本文提出一種優化樹架構空間採集函數的新方法。

評估該方法有效性的結果如表 1 所示。我們的方法在所有數據集上的錯誤率最低。

表 1:分類錯誤率

參考原文:https://towardsdatascience.com/autokeras-the-killer-of-googles-automl-9e84c552a319

本文為機器之心報道,轉載請聯繫本公眾號獲得授權。

------------------------------------------------


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

我們今天想介紹的這篇論文,剛剛中了CVPR 2018最佳論文
上交大&南科大最新PRL論文:成功用機器學習實現量子態分類器

TAG:機器之心 |