對於機器學習的新用戶而言,使用機器學習算法的一個主要的障礙就是算法的性能受許多的設計決策影響。隨着深度學習的流行,工程師須要選擇相應的神經網絡架構,訓練過程,正則化方法,超參數,等等,全部的這些都對算法的性能有很大的影響。因而深度學習工程師也被戲稱爲調參工程師。html
自動機器學習(AutoML)的目標就是使用自動化的數據驅動方式來作出上述的決策。用戶只要提供數據,自動機器學習系統自動的決定最佳的方案。領域專家再也不須要苦惱於學習各類機器學習的算法。python
自動機器學習不光包括你們熟知的算法選擇,超參數優化,和神經網絡架構搜索,還覆蓋機器學習工做流的每一步:git
學習器模型中通常有兩類參數,一類是能夠從數據中學習估計獲得,還有一類參數時沒法從數據中估計,只能靠人的經驗進行設計指定,後者成爲超參數。好比,支持向量機裏面的C, Kernal, game;樸素貝葉斯里面的alpha等。github
超參數優化有不少方法:算法
最多見的類型是黑盒優化 (black-box function optimization)。所謂黑盒優化,就是將決策網絡看成是一個黑盒來進行優化,僅關心輸入和輸出,而忽略其內部機制。決策網絡一般是能夠參數化的,這時候咱們進行優化首先要考慮的是收斂性。數組
如下的幾類方法都是屬於黑盒優化:網絡
黑盒優化的一些工具:架構
因爲優化目標具備不連續、不可導等數學性質,因此一些搜索和非梯度優化算法被用來求解該問題,包括咱們上面提到的這些黑盒算法。此類算法經過採樣和對採樣的評價進行搜索,每每須要大量對採樣的評價才能得到比較好的結果。然而,在自動機器學習任務中評價每每經過 k 折交叉驗證得到,在大數據集的機器學習任務上,得到一個評價的時間代價巨大。這也影響了優化算法在自動機器學習問題上的效果。因此一些減小評價代價的方法被提出來,其中多保真度優化(multi-fidelity methods)就是其中的一種。這裏的技術包括:基於學習曲線來決定是否要提早終止訓練,探索-利用困境(exploration exploitation)的多臂老虎機算法 (Multi-armed bandit)等等。app
另外還有一些研究是基於梯度降低的優化。框架
超參數優化面臨許多挑戰:
相關參考
元學習也就是‘學習如何學習’,經過對現有的學習任務之間的性能差別進行系統的觀測,而後學習已有的經驗和元數據,用於更好的執行新的學習任務。這樣作能夠極大的該靜機器學習流水線或者神經網絡架構的設計,也能夠用數據驅動的方式取代手工做坊似的算法工程工做。
從某種意義上來講,元學習覆蓋了超參數優化,由於元數據的學習包含了:超參數,流水線的構成,神經網絡架構,模型構成,元特徵等等。
機器學習的算法咱們又稱爲‘學習器’,學習器就是假定一個模型,該模型擁有不少未知參數,利用訓練數據和優化算法來找到最適合這些訓練數據的參數,生成一個新的算法,或者參數已知的模型,並利用該模型/算法來預測新的未知數據。若是說世界上只有一個模型,那麼問題就簡單了,問題是模型有不少,不一樣的模型擁有不一樣的超參數,咱們每每還會把模型和算法組裝在一塊兒構成複合模型和機器學習的流水線,這個時候,我就須要知道解決不一樣的問題要構建那些不一樣的模型。元學習就在這個時候,咱們能夠把超參數,流水線,神經網絡架構這些都當作是一個新的模型的未知參數,把不一樣學習任務的性能指標當作是輸入數據,這樣咱們就能夠利用優化算法來找到性能最好的那組參數。這個模式能夠一直嵌套,也就是說,你能夠有‘元元元學習‘,固然我但願你不要走得太遠,找不到回來的路。
元學習的方法包括:
元學習的一個很大的挑戰就是若是經過不多的訓練數據來學習一個複雜的模型,這就是one-shot或者few-shot的問題。
像人類的學習同樣,每次學習不管成功失敗,咱們都收穫必定的經驗,人類不多從頭學習。在構建自動學習的時候,咱們也應該充分利用已有的每一次的學習經驗,逐步的改進,使得新的學習更加有效。
相關參考:
提起AutoML,其實大多數人都是由於Google的AutoML系統才知道這個故事的。隨着深度學習的流行,神經網絡的架構變得愈來愈複雜,愈來愈多的手工工程也隨之而來。神經網絡架構搜索就是爲了解決這個問題。
NAS主要包含三個部分:
相關參考
自動化特徵工程能夠幫助數據科學家基於數據集自動建立可以最好的用於訓練的特徵。
Featuretools是一個開源庫,用來實現自動化特徵工程。它是一個很好的工具,旨在加快特徵生成的過程,從而讓你們有更多的時間專一於構建機器學習模型的其餘方面。換句話說,它使你的數據處於「等待機器學習」的狀態。
Featuretools程序包中的三個主要組件:
實體(Entities)
深度特徵綜合(Deep Feature Synthesis ,DFS)
特徵基元(Feature primitives)
一個Entity能夠視做是一個Pandas的數據框的表示,多個實體的集合稱爲Entityset。
深度特徵綜合(DFS)與深度學習無關,不用擔憂。實際上,DFS是一種特徵工程方法,是Featuretools的主幹。它支持從單個或者多個數據框中構造新特徵。
DFS經過將特徵基元應用於Entityset的實體關係來構造新特徵。這些特徵基元是手動生成特徵時經常使用的方法。例如,基元「mean」將在聚合級別上找到變量的平均值。
參考:
如下列出一些開源的自動機器學習工具空你們參考,選擇。