轉載本文需注明出處:微信公眾號EAWorld,違者必究。
目錄:
一、為什么需要自動機器學習
二、超參數優化 Hyper-parameter Optimization
三、元學習 Meta Learning
四、神經網絡架構搜索 Neural Architecture Search
五、自動化特征工程
六、其它自動機器學習工具集
一、為什么需要自動機器學習
對于機器學習的新用戶而言,使用機器學習算法的一個主要的障礙就是算法的性能受許多的設計決策影響。隨著深度學習的流行,工程師需要選擇相應的神經網絡架構,訓練過程,正則化方法,超參數等等,所有的這些都對算法的性能有很大的影響。于是深度學習工程師也被戲稱為調參工程師。
自動機器學習(AutoML)的目標就是使用自動化的數據驅動方式來做出上述的決策。用戶只要提供數據,自動機器學習系統自動的決定最佳的方案。領域專家不再需要苦惱于學習各種機器學習的算法。
自動機器學習不光包括大家熟知的算法選擇,超參數優化,和神經網絡架構搜索,還覆蓋機器學習工作流的每一步:
自動準備數據
自動特征選擇
自動選擇算法
超參數優化
自動流水線/工作流構建
神經網絡架構搜索
自動模型選擇和集成學習
二、超參數優化
Hyper-parameter Optimization
學習器模型中一般有兩類參數,一類是可以從數據中學習估計得到,還有一類參數時無法從數據中估計,只能靠人的經驗進行設計指定,后者成為超參數。比如,支持向量機里面的C Kernal Gamma;樸素貝葉斯里面的alpha等。
超參數優化有很多方法:
最常見的類型是黑盒優化 (black-box function optimization)。所謂黑盒優化,就是將決策網絡當作是一個黑盒來進行優化,僅關心輸入和輸出,而忽略其內部機制。決策網絡通常是可以參數化的,這時候我們進行優化首先要考慮的是收斂性。
以下的幾類方法都是屬于黑盒優化:
網格搜索 (grid search)
Grid search大家都應該比較熟悉,是一種通過遍歷給定的參數組合來優化模型表現的方法。網格搜索的問題是很容易發生維度災難,優點是很容易并行。
隨機搜索 (random search)
隨機搜索是利用隨機數求極小點而求得函數近似的最優解的方法。
很多時候,隨機搜索比網格搜索效果要更好,但是我們可以從上圖看出,它們都不能保證找到最優解。
貝葉斯優化
貝葉斯優化是一種迭代的優化算法,包含兩個主要的元素,輸入數據假設的模型和一個采集函數用來來決定下一步要評估哪一個點。每一步迭代,都使用所有的觀測數據fit模型,然后利用激活函數預測模型的概率分布,決定如何利用參數點,權衡是Explaoration還是Exploitation。相對于其它的黑盒優化算法,激活函數的計算量要少很多,這也是為什么貝葉斯優化被認為是更好的超參數調優的算法。
黑盒優化的一些工具:
hyperopt
hyperopt 是一個Python庫,可以用來尋找實數,離散值,條件維度等搜索空間的最佳值
Google Vizier
Google的內部的機器學習系統 Google Vizier能夠利用遷移學習等技術自動優化其他機器學習系統的超參數
advisor
Google Vizier的開源實現
katib
基于Kubernetes的超參數優化工具
由于優化目標具有不連續、不可導等數學性質,所以一些搜索和非梯度優化算法被用來求解該問題,包括我們上面提到的這些黑盒算法。此類算法通過采樣和對采樣的評價進行搜索,往往需要大量對采樣的評價才能獲得比較好的結果。然而,在自動機器學習任務中評價往往通過 k 折交叉驗證獲得,在大數據集的機器學習任務上,獲得一個評價的時間代價巨大。這也影響了優化算法在自動機器學習問題上的效果。所以一些減少評價代價的方法被提出來,其中多保真度優化(multi-fidelity methods)就是其中的一種。這里的技術包括:基于學習曲線來決定是否要提前終止訓練,探索-利用困境(exploration exploitation)的多臂老虎機算法 (Multi-armed bandit)等等。
另外還有一些研究是基于梯度下降的優化。
超參數優化面臨許多挑戰:
對于大規模的模型或者復雜的機器學習流水線而言,需要評估的空間規模非常大
配置空間很復雜
無法或者很難利用損失函數的梯度變化
訓練集合的規模太小
很容易過擬合
審核編輯 黃昊宇
-
機器人
+關注
關注
211文章
28512瀏覽量
207500 -
機器學習
+關注
關注
66文章
8425瀏覽量
132770
發布評論請先 登錄
相關推薦
評論