進化計算在深度學習中的應用 | 附多篇論文解讀

基於遺傳規劃的自動機器學習機器學習

自動機器學習(Automated/Automatic Machine Learning, AutoML)做爲近年來逐漸興起的熱門研究領域,旨在下降機器學習的門檻,使其更加易用。性能

通常而言,一個完整的機器學習(特別是監督式機器學習)工做流一般包含如下部分,數據清洗,特徵工程,模型選擇,訓練測試以及超參數調優。每一道工序都有至關多的實現選項,且工序之間相互影響,共同決定最終的模型性能。學習

對於機器學習使用者而言,針對具體任務設計實現合適的工做流並不容易,在不少狀況下可能會耗費大量的時間進行迭代。AutoML 的目標即是儘量地使以上的過程自動化,從而下降使用者的負擔測試

本次咱們要同你們分享的是近年來在 AutoML 領域內比較有影響力的一個工做,基於樹表示的工做流優化(Tree-based Pipeline Optimization Tool, TPOT)優化

TPOT 的做者爲 Randal S. Olson 等人,相關文獻爲 [1] (2016 EvoStar Best Paper) 和[2] (2016 GECCO Best Paper),咱們在這裏將兩篇文獻的內容統一爲你們做介紹。設計

292b7c07ce33068266b7a6b5adc89546036f04f5

 圖1:機器學習工做流中被TPOT優化的部分blog

如圖 1 所示,TPOT 但願從總體上自動優化機器學習的工做流 。在 TPOT 中,一個工做流被定義爲一棵樹,樹上每個非葉子節點爲操做(Operator)節點,葉子節點則爲數據節點。數據集從葉子節點流入,通過操做節點進行變換,最終在根節點處進行分類/迴歸,圖 2 給出了一個例子。ip

25cca20bf77da9d9b10a7ff8cc321a965f845165

 圖2:基於樹表示的工做流的一個例子ci

TPOT 一共定義了 4 種操做節點類型(見圖 3),分別是預處理、分解/降維、特徵選擇以及學習模型。這些操做的底層實現均是基於 Python 的機器學習庫 scikit-learn。工作流

5d05b6316a81d685673c7b16277d79d14c38cb1a

 圖3:TPOT操做節點類型

有了以上基於樹的表示,TPOT 直接利用遺傳規劃(具體來講,是 Python 庫 DEAP 中的 GP 實現)對工做流進行優化。在搜索過程當中,任一工做流首先在訓練集上訓練,而後在獨立的驗證集上評估(另外一種更爲耗時的選項是交叉驗證)。在搜索結束後,TPOT 將返回最好的工做流所對應的代碼。

相關文章
相關標籤/搜索