01-自動化機器學習技術原理

「術小科導讀」自動機器學習(AutomatedMachine Learning, AutoML)技術是當前機器學習領域熱點研究和迅速發展的方向之一,已被證明能夠在多個領域達到或超過人類專家手動調參的效果,國內外許多頭部公司紛紛將AutoML技術集成到自研AI平臺中,降低算法工程師調參試錯成本,加速機器學習模型的構建和落地。


AutoML系列 | 01-自動化機器學習技術原理

全球AutoML近5年熱度趨勢 (來源: Google Trend)

本文將介紹AutoML的定義、目標和研究領域,梳理、回顧自動化超參數調優算法和機器學習管道創建方法,並對主流AutoML開源框架進行對比分析,並結合真實案例說明AutoML的實際效果,最後探討AutoML領域目前存在的開放性問題及未來研究方向。


一、AutoML概述


主要回答什麼是AutoML、為什麼需要AutoML、AutoML能幫助解決什麼問題、AutoML的研究範圍是什麼四個方面的問題。

1.1 AutoML是什麼

AutoML是一個將機器學習這個用於解決現實世界問題的端到端的處理過程進行自動化的過程。AutoML是自動化與機器學習的交叉。

★ 機器學習角度:在給定數據和任務上學習泛化能力非常強大的系統。

★ 自動化角度:設計一系列高級的控制系統去操作機器學習模型,使得模型可以自動化地學習到合適的參數和配置而無需人工干預。

AutoML系列 | 01-自動化機器學習技術原理

在無人工干預和有限計算資源預算的約束下,學習到一組能夠最大化模型性能的模型參數配置。


1.2 直觀認識AutoML

通過Google的Cloud AutoML Vision從圖像分類領域的神經網絡架構搜索的角度直觀認識AutoML。

AutoML系列 | 01-自動化機器學習技術原理

基於NAS的自動圖像分類

通過華為Model Arts從結構化數據分類/迴歸模型自動構建的角度直觀認識AutoML。

AutoML系列 | 01-自動化機器學習技術原理

結構化數據分類/迴歸


1.3 為什麼需要AutoML

1)現實問題:① 構建機器學習模型環節多、流程長;② 依賴數據科學、機器學習專家知識;③ 模型難以通用;④ 專業人才數量缺乏。

AutoML系列 | 01-自動化機器學習技術原理

2)業務需求:① 縮短 AI 應用投產時間:降低建模所需人員規模和技能門檻,通過自動化技術將 AI 應用構建時間縮短至數天;② 降低 AI 應用建設成本:通過標準化建模過程實現企業AI應用規模化發展,大幅削減企業擁有 AI 能力總成本;③ 適應業務快速變化:利用高性能 AI 開發工具實現模型的快速迭代,靈活適應業務變化。


1.4 AutoML解決哪些問題

核心任務:無需人工干涉;更低的計算開銷;輸出更好泛化能力的模型。

AutoML系列 | 01-自動化機器學習技術原理

Current:Solution= ML Expertise + Data + Computing Power→ Future:Solution= Data + Computing Power * 100


1.5 AutoML的研究領域

1)按模型類型劃分:Classical ML&NAS

Classical ML:傳統機器學習模型的自動化學習,包括基礎算法的選擇和超參數優化以及機器學習pipeline的自動合成等。

NAS:神經網絡架構搜索 (Neural Architecture Search,NAS)是一種自動設計神經網絡的技術,可以通過算法根據樣本集自動設計出高性能的網絡結構,在某些任務上甚至可以媲美人類專家的水準,甚至發現某些人類之前未曾提出的網絡結構,這可以有效的降低神經網絡的使用和實現成本。

2)按機器學習pipeline不同階段劃分

AutoML系列 | 01-自動化機器學習技術原理

3)按垂直應用場景劃分

AutoML系列 | 01-自動化機器學習技術原理


二、AutoML問題形式化


主要介紹AutoML問題形式化的幾個基本定義以及AutoML框架的基本組成。

2.1 幾個基本定義

★ 典型監督學習模型pipeline

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理


定義1:機器學習管道(MachineLearning Pipeline)

AutoML系列 | 01-自動化機器學習技術原理

三元組(g,A ⃗,λ ⃗)稱作一個配置。對於一個Pg,A ⃗,λ ⃗,需要評估其在給定數據集上的性能以確保構建的機器學習管道(ML Pipeline)具有低的泛化誤差。


定義2:管道創建(Pipeline creation Problem)

AutoML系列 | 01-自動化機器學習技術原理


定義3:管道性能(Pipeline Performance)

AutoML系列 | 01-自動化機器學習技術原理

注:該定義僅限於監督學習,非監督和強化學習可通過選擇適當的損失函數參照以上方式進行擴展。

AutoML系列 | 01-自動化機器學習技術原理

★ 給定機器學習任務的數據集、損失函數和具體的任務類型(如分類、迴歸),針對具體機器學習任務,機器學習管道的構建問題可以劃分為以下三個子任務:

▶▶▶ 如何確定管道的結構?需要選擇多少個數據清洗類、特徵工程類和模型類算法?算法之間如何連接?數據如何流轉?

▶▶▶ 每個結點選擇哪個具體的算法?

▶▶▶ 對於每個所選的算法,如何選擇其超參數?

是一個“黑盒優化”(blackbox optimization)問題。由於依賴於具體數據和任務,通常不可能預測損失函數的任何性質,甚至無法將其表達為封閉形式的表達式。

因此,無法使用凸優化或基於梯度的優化等求解方式。


2.2 AutoML框架基本組成

AutoML框架主要解決搜索空間、搜索策略、性能預估策略三個方面的問題。

1)搜索空間:搜索空間定義了原則上可以選擇的超參數的範圍。結合具體任務的先驗知識可以減小搜索空間並簡化搜索。但是,這也引入了人為偏見,這可能會阻止尋找超越當前SOTA效果的新穎超參數組合。2)搜索策略:搜索策略定義瞭如何探索搜索空間,使用怎樣的算法可以快速、準確找到最優的超參數配置。它包含了經典的探索-利用權衡(exploration-exploitationtrade-off)。因為,一方面,需要快速找到性能良好的超參數配置,另一方面,應避免過早收斂到次優區域。

3)性能預估策略:超參數優化的目標是為了找到能夠在待預測的新數據上實現高預測性能的超參數配置。性能預估最簡單的選擇是在數據集上進行標準的模型訓練和模型驗證,但計算成本很高,並且限制了可以探索的超參數組合的數量。因此,最近的許多研究都集中在開發降低這些性能評估成本的方法上。

AutoML系列 | 01-自動化機器學習技術原理


三、CASH算法回顧


首先對CASH問題進行定義,然後回顧CASH主要算法並對其進行對比,最後總結探討CASH算法的改進方向。

3.1 CASH定義

Combined Algorithm Selection andHyperparameter optimization

AutoML系列 | 01-自動化機器學習技術原理

可配置空間表達為樹狀結構,減少搜索空間。

超參類型:① 類別型;② 整數型;③ 實數型;④ 條件型。

AutoML系列 | 01-自動化機器學習技術原理


3.2 網絡搜索與隨機搜索算法

AutoML系列 | 01-自動化機器學習技術原理

★ Grid Search:將連續超參數離散化,構成的搜索空間為n個離散化的超參的笛卡爾積空間。

★ Contradicting Grid Search:首先在粗粒度網格進行搜索,然後在表現較好配置點上進行細粒度的搜索。

★ Random Search:適合於具有多個局部極小值、不可導函數的求解;較網格搜索快。

▶▶▶ 優點:易實現,易並行。

▶▶▶ 缺點:在高維空間容易遇到維度災難;沒有考慮層次超參數結構,存在冗餘超參配置。

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理


3.3 基於模型的序列優化算法

基於模型的序列優化方法框架,包含三個核心部分:代理模型的選擇、代理模型的更新和新超參組合的選取。

1)代理模型的選擇

選擇使用Gaussian Process, Random Forest,or TPE等方法捕獲超參數組合與模型性能之間的關係,構建概率模型,模擬模型訓練的結果,對目標函數進行預估評價。

2) 代理模型的更新

迭代式地採用貝葉斯方法對代理函數進行優化,即基於新的觀測更新代理模型進而增強代理模型能力,使其超參數組合的選擇越來越靠譜有效。

3) 新超參組合的選取

基於獲益函數(Acquisition Function)計算超參組合的優劣程度,從中挑選出k個組合進行下一輪迭代。注意探索和利用的權衡。

AutoML系列 | 01-自動化機器學習技術原理

序列迭代過程

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理

算法流程


3.4 遺傳進化類算法

遺傳算法是受大自然的啟發,模擬生物在自然環境中的遺傳和進化過程而形成的一種自適應、具有全局優化能力的隨機搜索算法。

基本思路:通過從給定一個初始群體出發,利用選擇算子、雜交算子以及變異算子來模擬自然進化,選擇較優的一部分,逐步改進種群,一步步逼近最優解,以達到求解最優化問題的目的。

★ 應用於CASH優化:每個個體代表具有相應超參數的算法,將連續超參離散化。

刪除:剔除某個超參數用默認值來代替;

插入:將某個未配置的超參數用某個值來代替;

變異:改變某個超參數的值;

交叉:選擇兩個個體的超參數子集進行合併。

▶▶▶ 優點:同一種群個體之間獨立,易並行處理。

▶▶▶ 缺點:相比於貝葉斯優化不夠高效,不太適合於算法選擇,因為兩個算法很難交叉。

AutoML系列 | 01-自動化機器學習技術原理

粒子群算法的思想源於對鳥/魚群捕食行為的研究,模擬鳥集群飛行覓食的行為,鳥之間通過集體的協作使群體達到最優目的。它沒有遺傳算法的“交叉”(Crossover) 和“變異”(Mutation) 操作,通過追隨當前搜索到的最優值來尋找全局最優。

① 在初始化範圍內,對粒子群進行隨機初始化,包括隨機位置和速度;

② 計算每個粒子的適應值;

③ 更新粒子個體的歷史最優位置;

④ 更新粒子群體的歷史最優位置;

⑤ 更新粒子的速度和位置;

⑥ 若未達到終止條件,則轉第2步;

AutoML系列 | 01-自動化機器學習技術原理

粒子群算法流程圖

每個尋優的問題解都被想像成一隻鳥,稱為“粒子”。所有粒子都在一個D維空間進行搜索。所有的粒子都由一個fitness function 確定適應值以判斷目前的位置好壞。每一個粒子必須賦予記憶功能,能記住所搜尋到的最佳位置。每一個粒子還有一個速度以決定飛行的距離和方向。這個速度根據它本身的飛行經驗以及同伴的飛行經驗進行動態調整。

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理


3.5 K-搖臂賭博機學習算法

基於一個概率來對探索和利用進行權衡。每次嘗試時,以ε的概率進行探索,即以均勻概率隨機選擇一個搖臂;以1-ε的概率進行利用,即選擇當前平均獎賞最高的搖臂(如有多個,則隨機選取一個)。

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理


3.6 基於梯度下降的算法

梯度下降(GD)是機器學習中較長使用的損失函數優化方法,隨機梯度下降和批量梯度下降是兩種迭代求解思路。

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理


3.7 CASH算法的改進方向

從多保真近似、早停、集成學習、元學習、水平擴展性幾個角度總結CASH算法的改進方向。

AutoML系列 | 01-自動化機器學習技術原理


3.8 CASH算法對比

AutoML系列 | 01-自動化機器學習技術原理


四、ML Pipeline合成方法回顧


4.1 兩類ML Pipeline合成方法

1)Pipeline of fixed shape合成方法,預設一個固定結構的pipeline模板

AutoML系列 | 01-自動化機器學習技術原理

▶▶▶ 優點:大大減少搜索空間

▶▶▶ 缺點:對於複雜數據,可能導致性能不佳

2)Pipeline of variable shape合成方法

AutoML系列 | 01-自動化機器學習技術原理

▶▶▶ 優點:可解決複雜問題

▶▶▶ 缺點:易過擬合,計算開銷大


4.2 Pipeline合成方法-AlphaD3M

利用了深度強化學習中self play的最新技術,結合蒙特卡洛樹搜索,高效鎖搜索高維空間。通過一個神經網絡來預測pipeline的性能和下一步action的概率。

AutoML系列 | 01-自動化機器學習技術原理


五、AutoML開源框架


重點介紹AutoSklearn和NNI兩個開源框架,對主要的AutoML框架進行多維度對比,並結合真實案例說明AutoML技術的實際效果。

5.1 AutoML開源框架介紹-AutoSklearn

基於Scikit-learn,採用SMAC優化算法,基於元學習進行初始化加速,利用Ensemble Selection方法對搜索的多個模型進行集成。

AutoML系列 | 01-自動化機器學習技術原理

▶▶▶ 優點:

① 基於元學習進行初始化加速;

② 對搜索的多個模型pipeline進行集成;

③ 採用的SMAC優化算法可處理結構化配置空間;

④ 可限制單個搜索實例的運行時間和佔用內存;

⑤ 禁用部分耗時較長的數據預處理組合;

⑥ 基於pSMAC進行多核並行處理或跨機器並行;

▶▶▶ 缺點:

① 缺少對多個優化算法加權利用的支持;

② 不兼容用戶自定義搜索空間,需改造;

③ 暫不支持NAS;

④ 與k8s的兼容問題;

⑤ GPU加速問題;


5.2 AutoML開源框架介紹-NNI

由微軟亞研院開源的自動機器學習工具。既支持神經網絡架構搜索,也支持超參數搜索。

AutoML系列 | 01-自動化機器學習技術原理

★ Configuration:指來自搜索空間的一個超參數組合實例,每個超參都會有一個特定的值。

★ Trial: 指一次嘗試,它使用某組配置(如一組超參值或者特定的神經網絡架構)。 Trial 基於提供的配置運行。

★ Tuner: 指一個自動機器學習算法,為下一個 Trial 生成新的配置。新的 Trial會使用這組配置來運行。

★ Assessor:通過分析 Trial 中間結果(如測試數據集上的精度),來確定 Trial 是否應該被提前終止。

★ Training Platform:指Trial 的執行環境。根據 Experiment的配置,可以是本機、或其它大規模訓練平臺(如K8S)。

AutoML系列 | 01-自動化機器學習技術原理

▶▶▶ 優點:

① 支持多種模型框架和基礎算法庫;

② 多種Tunner、Assessor可選,且支持自定義;

③ 可以local、remote、cluster多種模式執行;

④ 具有Web UI,提供了試驗管理和對比功能;

▶▶▶ 缺點:

① 不支持機器學習pipeline的自動創建;

② 需用戶配置搜索空間,無默認值;

③ 未利用元學習和搜索結果集成進一步優化;


5.3 AutoML開源框架對比

從對代碼的侵入性、超參數搜索算法範圍、NAS、早停策略、算法的擴展性、並行/分佈式、UI等維度進行對比。

AutoML系列 | 01-自動化機器學習技術原理


5.4 真實案例實踐

基於微軟NNI,對兩個真實模型進行超參數自動搜索,並與人工調參的效果進行對比。

(1)真實案例實踐一

AutoML系列 | 01-自動化機器學習技術原理

AutoML系列 | 01-自動化機器學習技術原理

某基於XGBoost的迴歸模型

驗證集RMSE提升:(3930337 – 3004705) / 3930337 =23.55%

(2)真實案例實踐二

AutoML系列 | 01-自動化機器學習技術原理

某基於DNN的多分類模型

驗證集AUC提升:(0.949353 - 0.946338) / 0.946338= 0.32%


六、AutoML開放性問題


從六個方面探討AutoML領域目前存在的開放性問題及未來研究方向。

★ OptimizationTechniques

(更智能優化算法的提出和創新,如基於梯度的方法改進)

★ CompleteAutoMLPipeline

(在避免過擬合和提高泛化能力的前提下,對完整MLPipeline的自動學習)

★ Reproducibility&Interpretability

(如何控制搜索結果的可復現性,約束搜索的結果不僅性能好,還具有可解釋性)

★ Efficiency&Scalability

(優化算法的效率問題,算法的並行化/分佈式改造)

★ LifelongLearn

(終身學習,持續迭代優化)

★ Benchmarks&Comparability

(統的比較基準和性能度量指標)


招納賢才

本文作者黃綠君,京東數科資深算法工程師。目前主要從事公司KuAI平臺建設。KuAI平臺是京東數科中臺建設的重要平臺之一,提供從模型開發、訓練到部署、監控的一站式服務,幫助用戶快速構建、部署模型,並實現AI工作流全生命週期管理。KuAI團隊廣納賢才,歡迎對AI平臺建設感興趣,具有AI平臺系統架構、K8S容器平臺開發或算法方面經驗同學加入。簡歷可發郵件至 [email protected](郵件標題註明:京東KuAI平臺)。


分享到:


相關文章: