市面上的自動機器學習算法多如牛毛,但并沒有得到很好的普及,因為這些算法限制了搜索的空間,很多研究者還是需要自己設計機器學習模型的結構,而谷歌此次發布的AutoML-Zero搜索空間完全沒有限制,可以從最基礎的數學公式開始。「新智元急聘主筆、編輯、運營經理、客戶經理,添加HR微信(Dr-wly)了解詳情。」
AutoML 試圖將特征工程、模型選擇、參數調節這些與特征、模型、優化、評價有關的重要步驟進行自動化地學習,使得機器學習模型無需人工干預即可生成。谷歌這次提出的方法跟以往的有何不同呢?
新方法可自動搜索新算法,僅利用基本的數學公式
Automl-Zero 旨在自動發現機器學習算法,從空的或隨機的程序開始,只使用基本的數學運算。它可以同時無偏好地搜索機器學習算法的所有方面,包括模型結構和學習策略。
盡管 Automl-Zero 的搜索域很廣,但進化搜索看起來表現不錯,通過搜索發現了線性回歸、帶有反向傳播的雙層神經網絡,甚至是超過手工設計的復雜度相當的基線算法。
上面的圖顯示了我們實驗中的一個例子,可以看到演化算法是如何來一步步解決二分類任務的。首先是個線性模型,沒有任何優化方法,然后逐步發現了 SGD 來進行優化,接著開始加入隨機的學習率,再往后發現了ReLU激活函數,隨機權重初始化,梯度歸一化等等,越來越接近我們手工設計的網絡結構和優化方法。
幾乎從零開始,跟傳統的組裝型自動機器學習區別很大
我們手工構建一個典型的機器學習模型,要經過以下幾個步驟,數據預處理、模型構建、學習、預測,而 AutoML-Zero 的工作原理,可以簡單理解為將各個步驟涉及的基本數學方法放在一個籃子里,然后隨機從籃子取出放在對應的步驟,利用進化搜索,不斷得到最優的組合。
AutoML-Zero 跟之前的自動機器學習有什么異同呢?之前的自動學習主要集中在體系結構上,它依賴于專家設計的復雜層作為構建塊——或類似的限制性搜索空間。我們的目標是證明 AutoML 可以走得更遠: 只需使用基本的數學運算作為構建塊,來發現一個完整的機器學習方法, 我們通過引入一個新的框架來證明這一點,在這個搜索空間中可以顯著減少人類經驗的偏見,發現一些有趣的東西。
我們用 auto-sklearn 來解釋下傳統的自動機器學習所使用的方法,對細節感興趣的同學可以看下這篇論文。
作者開發了一個基于 scikit-learn 的強大的新 AutoML 系統(使用 15 個分類器,14 個特征預處理方法和 4 種數據預處理方法,從而產生具有 110 個超參數的結構化搜索空間)。這個系統是在有限的參數空間中,通過自動對比在類似數據集上的性能,以及評估這些自動構造的模型性能,來實現自動搜索最優的機器學習方法。
如何用Python實現傳統的AutoML
到這里你應該理解了,AutoML-Zero 的普適性更強一些,可以發現未知的機器學習方法,而 auto-sklearn 只是在現有的結構和參數中自動找到最優的。
我們用 Python 來舉個簡單的例子:
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))
如果想親自動手實驗的話可以安裝 Anaconda ,它集成了所需要的大部分Python科學計算庫,然后通過conda安裝 auto-sklearn。
-
算法
+關注
關注
23文章
4608瀏覽量
92844 -
機器學習
+關注
關注
66文章
8408瀏覽量
132574
發布評論請先 登錄
相關推薦
評論