市面上的自動(dòng)機(jī)器學(xué)習(xí)算法多如牛毛,但并沒有得到很好的普及,因?yàn)檫@些算法限制了搜索的空間,很多研究者還是需要自己設(shè)計(jì)機(jī)器學(xué)習(xí)模型的結(jié)構(gòu),而谷歌此次發(fā)布的AutoML-Zero搜索空間完全沒有限制,可以從最基礎(chǔ)的數(shù)學(xué)公式開始?!感轮窃逼钢鞴P、編輯、運(yùn)營經(jīng)理、客戶經(jīng)理,添加HR微信(Dr-wly)了解詳情。」
AutoML 試圖將特征工程、模型選擇、參數(shù)調(diào)節(jié)這些與特征、模型、優(yōu)化、評價(jià)有關(guān)的重要步驟進(jìn)行自動(dòng)化地學(xué)習(xí),使得機(jī)器學(xué)習(xí)模型無需人工干預(yù)即可生成。谷歌這次提出的方法跟以往的有何不同呢?
新方法可自動(dòng)搜索新算法,僅利用基本的數(shù)學(xué)公式
Automl-Zero 旨在自動(dòng)發(fā)現(xiàn)機(jī)器學(xué)習(xí)算法,從空的或隨機(jī)的程序開始,只使用基本的數(shù)學(xué)運(yùn)算。它可以同時(shí)無偏好地搜索機(jī)器學(xué)習(xí)算法的所有方面,包括模型結(jié)構(gòu)和學(xué)習(xí)策略。
盡管 Automl-Zero 的搜索域很廣,但進(jìn)化搜索看起來表現(xiàn)不錯(cuò),通過搜索發(fā)現(xiàn)了線性回歸、帶有反向傳播的雙層神經(jīng)網(wǎng)絡(luò),甚至是超過手工設(shè)計(jì)的復(fù)雜度相當(dāng)?shù)幕€算法。
上面的圖顯示了我們實(shí)驗(yàn)中的一個(gè)例子,可以看到演化算法是如何來一步步解決二分類任務(wù)的。首先是個(gè)線性模型,沒有任何優(yōu)化方法,然后逐步發(fā)現(xiàn)了 SGD 來進(jìn)行優(yōu)化,接著開始加入隨機(jī)的學(xué)習(xí)率,再往后發(fā)現(xiàn)了ReLU激活函數(shù),隨機(jī)權(quán)重初始化,梯度歸一化等等,越來越接近我們手工設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化方法。
幾乎從零開始,跟傳統(tǒng)的組裝型自動(dòng)機(jī)器學(xué)習(xí)區(qū)別很大
我們手工構(gòu)建一個(gè)典型的機(jī)器學(xué)習(xí)模型,要經(jīng)過以下幾個(gè)步驟,數(shù)據(jù)預(yù)處理、模型構(gòu)建、學(xué)習(xí)、預(yù)測,而 AutoML-Zero 的工作原理,可以簡單理解為將各個(gè)步驟涉及的基本數(shù)學(xué)方法放在一個(gè)籃子里,然后隨機(jī)從籃子取出放在對應(yīng)的步驟,利用進(jìn)化搜索,不斷得到最優(yōu)的組合。
AutoML-Zero 跟之前的自動(dòng)機(jī)器學(xué)習(xí)有什么異同呢?之前的自動(dòng)學(xué)習(xí)主要集中在體系結(jié)構(gòu)上,它依賴于專家設(shè)計(jì)的復(fù)雜層作為構(gòu)建塊——或類似的限制性搜索空間。我們的目標(biāo)是證明 AutoML 可以走得更遠(yuǎn): 只需使用基本的數(shù)學(xué)運(yùn)算作為構(gòu)建塊,來發(fā)現(xiàn)一個(gè)完整的機(jī)器學(xué)習(xí)方法, 我們通過引入一個(gè)新的框架來證明這一點(diǎn),在這個(gè)搜索空間中可以顯著減少人類經(jīng)驗(yàn)的偏見,發(fā)現(xiàn)一些有趣的東西。
我們用 auto-sklearn 來解釋下傳統(tǒng)的自動(dòng)機(jī)器學(xué)習(xí)所使用的方法,對細(xì)節(jié)感興趣的同學(xué)可以看下這篇論文。
作者開發(fā)了一個(gè)基于 scikit-learn 的強(qiáng)大的新 AutoML 系統(tǒng)(使用 15 個(gè)分類器,14 個(gè)特征預(yù)處理方法和 4 種數(shù)據(jù)預(yù)處理方法,從而產(chǎn)生具有 110 個(gè)超參數(shù)的結(jié)構(gòu)化搜索空間)。這個(gè)系統(tǒng)是在有限的參數(shù)空間中,通過自動(dòng)對比在類似數(shù)據(jù)集上的性能,以及評估這些自動(dòng)構(gòu)造的模型性能,來實(shí)現(xiàn)自動(dòng)搜索最優(yōu)的機(jī)器學(xué)習(xí)方法。
如何用Python實(shí)現(xiàn)傳統(tǒng)的AutoML
到這里你應(yīng)該理解了,AutoML-Zero 的普適性更強(qiáng)一些,可以發(fā)現(xiàn)未知的機(jī)器學(xué)習(xí)方法,而 auto-sklearn 只是在現(xiàn)有的結(jié)構(gòu)和參數(shù)中自動(dòng)找到最優(yōu)的。
我們用 Python 來舉個(gè)簡單的例子:
import autosklearn.classificationimport sklearn.model_selectionimport sklearn.datasetsimport sklearn.metricsX, y = sklearn.datasets.load_digits(return_X_y=True)X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X, y, random_state=1)AutoML = autosklearn.classification.AutoSklearnClassifier()AutoML.fit(X_train, y_train)y_hat = AutoML.predict(X_test)print(“Accuracy score”, sklearn.metrics.accuracy_score(y_test, y_hat))
如果想親自動(dòng)手實(shí)驗(yàn)的話可以安裝 Anaconda ,它集成了所需要的大部分Python科學(xué)計(jì)算庫,然后通過conda安裝 auto-sklearn。
-
算法
+關(guān)注
關(guān)注
23文章
4615瀏覽量
93005 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8423瀏覽量
132744
發(fā)布評論請先 登錄
相關(guān)推薦
評論