《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 終結谷歌每小時20美元的AutoML!開源的AutoKeras了解下

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

2018-08-03

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

微信圖片_20180803155612.jpg


每小時 20 美刀的 AutoML


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


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


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


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


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


沒那么快!


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


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


幫你省錢的開源 AutoKeras


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


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


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


https://github.com/melodyguan/enas

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


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


知識應該是開源的


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


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


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


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


AutoKeras 技術解析


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


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


基于網(wǎng)絡態(tài)射的 NAS 方法要解決的最重要問題是運算的選擇,即從網(wǎng)絡態(tài)射運算集里進行選擇,將現(xiàn)有的架構改變?yōu)橐环N新的架構?;谧钚戮W(wǎng)絡態(tài)射的方法使用深度強化學習控制器,這需要大量的訓練樣例。另一個簡單的方法是使用隨機算法和爬山法,這種方法每次只能探索搜索區(qū)域的鄰域,并且有可能陷入局部最優(yōu)值。


貝葉斯優(yōu)化已被廣泛用于基于觀察有限數(shù)據(jù)的尋找函數(shù)最優(yōu)值過程。它經(jīng)常被用于尋找黑箱函數(shù)的最優(yōu)點,其中函數(shù)的觀察值很難獲取。貝葉斯優(yōu)化的獨特性質啟發(fā)了研究者探索它在指導網(wǎng)絡態(tài)射減少已訓練神經(jīng)網(wǎng)絡數(shù)量的能力,從而使搜索更加高效。


為基于網(wǎng)絡態(tài)射的神經(jīng)架構搜索設計貝葉斯優(yōu)化方法是很困難的,因為存在如下挑戰(zhàn):首先,其潛在的高斯過程(GP)在傳統(tǒng)上是用于歐氏空間的,為了用觀察數(shù)據(jù)更新貝葉斯優(yōu)化,潛在高斯過程將使用搜索到的架構和它們的性能來訓練。然而,神經(jīng)網(wǎng)絡架構并不位于歐氏空間,并且很難參數(shù)化為固定長度的向量。


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


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


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


結合網(wǎng)絡態(tài)射提出了一種高效的神經(jīng)架構搜索算法;

提出了利用神經(jīng)網(wǎng)絡內核的 NAS 貝葉斯優(yōu)化、樹結構采集函數(shù)的優(yōu)化以及網(wǎng)絡級的態(tài)射;

開發(fā)了一個開源軟件 AutoKeras,基于本文提出的神經(jīng)架構搜索方法;

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


論文:Efficient Neural Architecture Search with Network Morphism

微信圖片_20180803155643.jpg


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


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


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


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

微信圖片_20180803155726.jpg

圖 1:神經(jīng)網(wǎng)絡核函數(shù)


我們需要解決的第二個問題是采集函數(shù)(acquisition function)最優(yōu)化。在歐氏空間上定義了傳統(tǒng)采集函數(shù),其優(yōu)化方法不適用于通過網(wǎng)絡態(tài)射進行的樹架構搜索。因此本文提出一種優(yōu)化樹架構空間采集函數(shù)的新方法。

微信圖片_20180803155751.jpg


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

微信圖片_20180803155830.jpg

表 1:分類錯誤率 


本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。