天天看點

Google自動程式設計架構AutoML入門指南

本篇是和Kabuto_hui(ISN國家重點實驗室成員)合作修改生成的,感謝Kabuto_hui。

Google在AI First的戰略下,陸續釋出AI相關的産品,技術。據最新的報道:Google AutoML 系統自主編寫機器學習代碼,其效率在某種程度上竟然超過了專業的研發工程師。AutoML的目标并不是要将人類從開發過程中剝離出去,也不是要開發全新的人工智能,而是讓人工智能繼續維持某種速度來改變世界。筆者認為,機器程式設計即将取代程式員,純屬無稽之談。

Google自動程式設計架構AutoML入門指南

腦圖

以下是一個學習指南。

​ 今年在 ICML 2017International Conference on Machine Learning, ICML)國際機器學習大會和ECMLPKDD 2017(European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases, ECMLPKDD)歐洲機器學習會議和資料庫知識發現的原理與實踐上将會舉行關于<code>AutoML</code>的研讨會。那麼什麼是AutoML呢?

Google自動程式設計架構AutoML入門指南

img

​ 機器學習(Machine Learning, ML)近年來取得了相當大的成功,越來越多的學科需要依賴它。然而,這個成功的關鍵是需要人類機器學習工程師完成以下的工作:

預處理資料

選擇适當的功能

選擇一個适當的模型選擇系列

優化模型超參數

後處理機器學習模型

嚴格分析所得的結果

由于這些任務的複雜性通常超過了非機器學習專家的能力,機器學習應用的快速增長産生了對于現成的機器學習方法的需求,而且這些現成的機器學習方法簡單易使用且不需要專業的知識。我們稱以機器學習的漸進自動化為目标的研究領域為AutoML(Automatic Machine Learning, AutoML)。

​雖然它的最終使用者面向那些沒有專業機器學習知識的人,但AutoML依然向機器學習專業人士提供了一些新的工具,如:

執行深層表示的架構搜尋

分析超參數的重要性

遵循“優化程式設計”的範例,AutoML主張開發可以用資料驅動的方式自動執行個體化的靈活軟體包。

Google自動程式設計架構AutoML入門指南

aa.png

AutoML網絡的設計從卷積架構的初始版本進行多年的仔細實驗和細化完成的。

在AutoML中,一種控制器神經網絡能夠提議一個“子”模型架構,然後針對特定任務進行訓練與品質評估;而回報給控制器的資訊則會被用來改進下一輪的提議。我們重複這個過程數千次——進而生成新的架構,然後經過測試和回報,讓控制器進行學習。最終,控制器将學會為好的架構配置設定高的機率,以便在延續的驗證資料集上實作更高的準确性,并且對于架構空間的差異很小。如下圖所示:

Google自動程式設計架構AutoML入門指南

hh.png

如果AutoML取得成功的話,這可以啟發新型的神經網絡,不僅專家可以根據自己的特定需求建立神經網絡,機器學習可以讓每個人都從中獲益。

​ AutoML旨在建立可以由ML新手”開箱即用“的軟體。最近可能展示的一些執行個體:

AutoWEKA是一種可以同時選擇機器學習算法和其對應超參數的方法;通過使用WEKA包,可以為各種資料集自動生成良好的模型。

深層神經網絡衆所周知依賴于他們的超參數,一些現代優化器在參數設定方面已經比人類做的更好了(如Bergstra等,Snoek等)。

建立一個模型搜尋科學:一個複雜的計算機視覺架構可以自動被執行個體化以在3種不同的任務中獲得最先進的結果:面部比對,面部識别和對象識别。

​ AutoML借鑒了機器學習的許多學科,主要是:

貝葉斯優化

結構化資料和大資料的回歸模型

Meta 學習

轉移學習

組合優化

​ 用于貝葉斯優化的機器學習超參數系統可以促進AutoML,主要包括:

Hyperopt,包括TPE算法

基于序列模型的算法配置(SMAC)

[Spearmint](github.com/JasperSnoek…

此外,還提供了兩個可用于超參數優化的軟體包:

RoBO-魯棒的貝葉斯優化架構(Robust Bayesian Optimization framework)

SMAC3 - SMAC算法的python實作

​ 一般情況下,進行機器學習首先需要大量的訓練資料,再由機器學習工程師/資料科學家對資料進行分析,設計算法形成訓練模型;這需要大量的專業知識。但是,如果使用AutoML,就像是在使用一個工具,我們隻需要将訓練資料集傳入AutoML,那麼這個工具就會自動幫我們生成參數和模型,形成訓練模型,這樣即使不具備機器學習方面深入的專業知識也可以進行機器學習方面的工作。

Google自動程式設計架構AutoML入門指南

AutoML

目前還需要人類去使用AutoML,配置參數;在未來就是通過大量的人工智能來生成AutoML Box,再将資料傳遞到AutoML Box中生産訓練模型,如下圖所示:

Google自動程式設計架構AutoML入門指南

AutoML2

原文釋出時間為:2017年10月21日

本文來自雲栖社群合作夥伴掘金,了解相關資訊可以關注掘金網站。

繼續閱讀