研究綜述 | AI-自動化機器學習

關注並標星索信達

每天打卡閱讀

更快走進金融人工智能世界

━━━━━━

研究綜述 | AI-自動化機器學習

我們是索信達集團旗下的金融人工智能實驗室團隊,微信公眾號(datamargin)將不定期推送原創AI科學文章。我們的作品都是由實戰經驗豐富的AI科學技術人員或資深顧問精心準備,志在分享結合實際業務的理論應用和心得體會。

文 | 索 信 達 蘇 鈺

自動化機器學習研究綜述1. 介紹2. 研究意義3. 應用3.1 數據預處理3.2 特徵工程3.3 模型選擇3.4 算法選擇3.5 深度學習4. 技術4.1 調優器技術4.2 評估器技術4.3 經驗方法5. autoML庫6. 總結7. 引用

1. 介紹

近年來,機器學習在各個領域都有著巨大的貢獻,然而一個高效的機器學習算法往往依賴於人類指導,例如數據處理,特徵工程,算法選擇以及超參選定等。隨著機器學習算法越來越複雜,可選擇的算法及過程數量越來越多,為了節約時間及人力成本以及提高精度,自動化機器學習(autoML)孕育而生。本文將分別從以下四方面進行介紹。

為什麼需要自動化機器學習什麼是自動化機器學習如何實現自動化機器學習現今流行的自動化機器學習庫下圖為自動化機器學習的知識架構圖。

研究綜述 | AI-自動化機器學習

自動化機器學習本質是一個空間搜索優化問題,即從有限空間範圍內以最短時間尋找最優解的過程。具體來說,自動化機器學習對機器學習每個過程產生一個備選空間,通過從每個空間中通過最優搜索選出一個最佳選項,並將其連接成流程化管道的過程。通過上述方法,在保證了高精度的同時可以最小化時間及人力成本。

2. 研究意義

機器學習近些年已經進入到生活中的各個領域,包括科技,金融,醫療等等行業,然而雖然機器學習名字中是“機器”在學習,它卻依舊需要大量人工的指導,其中包括選擇合適的數據訓練,對數據及其中特徵進行處理,選擇合適的模型並進行超參調整等等。如此一個複雜的工作流程,需要大量的專業人員對其進行深入的學習,這無疑增大的機器學習的使用成本。更糟糕的是,隨著機器學習的不斷髮展,新的算法如雨後春筍,技術人員越難以掌握所有技術並能選擇最優的技術以解決特定的問題,這意味著技術人員往往難以探觸到模型的天花板。因此我們需要一個方法可以使得機器學習的使用更為

簡單快速效果好可拓展,以此可以有助於推動機器學習本身在各個行業中的推廣和發展。因此,自動化機器學習孕育而成。3. 應用

自動化機器學習可以用於數據預處理,特徵工程,模型選擇以及算法選擇之中,接下來我將分別介紹。3.1 數據預處理

傳統數據預處理包括數據清洗,數據採樣,數據處理,數據分割等等過程,其中每一步都有多種備選方法,選擇方法前,往往需要對數據進行先一步的數據分析,整個數據預處理過程往往重複而耗時,於是我們可以將該過程加入搜索空間中,由機器一併完成。3.2 特徵工程

特徵工程自動化具體可以分成從數據創造特徵和增強特徵區分能力兩個子問題,從數據創造特徵十分依賴人為的專業知識,較難自動化。所以我們重點介紹自動化特徵增強,特徵增強的方法主要包括降維,特徵生成和特徵編碼。此處降維與傳統特徵工程相同,不做過多解釋。特徵生成則是發現原特徵間的交互項,通過兩變量相乘和標準化的形式引入新變量。特徵編碼則是通過基於數據所得的字典重新解釋原始特徵,流行方法有離散編碼,局部線性編碼,以及核方法等。3.3 模型選擇

主要包括兩部分,分別是選擇模型和設置超參數。解決同一個問題可能有多個備選模型,且每個模型的超參數也是未知,傳統方法多是通過人力專業知識以及反覆測試得到“最優”結果,自動化機器學習則可以解決這個繁瑣的問題。其搜索空間由預選模型和他們的超參數組成,但是超參數的選擇需要優先確定模型。3.4 算法選擇

對於經典學習模型來說,優化並不困難,因為大多有凸損失函數,困難點在於如何優化效率。然而隨著模型的複雜度越來越高,調優的代價越來越高,以至於會對學習效果造成影響。所以算法選擇的目的是自動找到一個優化算法可以平衡其效率和表現。例如一些流行方法的目標是最小化平滑目標函數,需要在梯度下降,隨機梯度下降和L-BGFS算法中進行選擇。梯度下降法有少的超參數,但是收斂較慢 ,每個迭代複雜度高。L-BFGS消耗更高但是收斂更快,SGD每個迭代消耗很小但是需要的迭代次數較多。此時自動化機器學習就能夠在他們之中權衡效率和表現以選擇最優算法。3.5 深度學習

深度學習作為當今最熱門的算法之一,由於其存在著超參數較多,網絡結構難以優化的問題,深度學習的自動化調參往往不能使用傳統的搜索方法。深度學習的超參數主要可為兩類:一類是訓練參數(如learning rate,batch size,weight decay等);另一類是定義網絡結構的參數(比如有幾層,每層是什麼算子,卷積中的filter size等),它具有維度高,離散且相互依賴等特點。自動化機器學習可以很好的解決這個問題,對於第一類參數可以使用上述的傳統優化算法解決,而第二類參數的自動調優一般稱為網絡架構搜索(Neural Architecture Search,NAS),關於NAS的細節將會在下一章提及。

4. 技術

一般來說,自動化機器學習主要包括評估器和調優器兩部分。評估器負責測量學習工具在調優器提供的參數條件下的表現,之後將結果反饋給調優器。調優器則負責通過反饋信息為學習工具更新或生成配置信息。

研究綜述 | AI-自動化機器學習

由上述應用可以看出,自動化機器學習的最大難點在於其龐大的搜索空間,所以找到一種可以快速高效的搜索算法則是整個自動化機器學習研究的主要目標。

4.1 調優器技術

對於調優器技術來說,主要有三種方法,分別是簡單搜索方法,根據樣本優化方法和梯度下降方法。簡單搜索方法

搜索空間不需要假設,每個配置之間相互獨立。主要有網格搜索和隨機搜索兩種方法。簡單但是不高效。為了解決這個問題,後來推出了拉丁超立方算法能夠在減少取樣點的同時保證空間的大概率被探索。簡單搜索算法的主要問題在於,搜索方法不能自動化最優適應不同的問題場景。樣本優化法

根據先前的評估樣本設定新的配置。不需要特定的假設但是更加高效。主要有三類,分別是啟發式搜素,基於模型的非導優化和強化學習。啟發式搜索:取靈感於生物行為和現象,廣泛用於非凸,不平滑,不連續的調優問題。基礎思想是初始化一個群體,通過調優器和原種群獲得新群體,然後評估新種群,重複迭代上述過程。核心是如何更新群體。粒子群優化(particle swarm optimization):粒子群優化靈感取源於群體遷徙的過程。群體之間通過共享位置,每輪迭代向最優點靠近。優點是整個過程可並行執行。遺傳算法(evolutionary algorithm):遺傳算法靈感取源於基因雜交的過程。通過將各個個體進行雜交和變異,為了儘可能的保留優秀的基因組合,在接下來的雜交過程中,優秀基因的祖先越有可能被選中。

基於模型的非導優化:通過樣本構建模型,之後根據評估生成新的樣本,然後重複迭代上述過程,以達到有目標的空間搜素的目的,可以用於不可導的空間優化,其中主要包括貝葉斯優化,基於分類的優化,以及同步樂觀優化。

貝葉斯優化:通過構建一個概率模型(例如高斯過程,樹模型,深度網絡),之後基於概率模型定義一個採集函數(例如期望提升,上置信界限),每次迭代由採集函數獲得新樣本,用於更新概率函數。該方法是現今最主流的方法之一,貝葉斯優化有收斂速度快的優點,缺點在於當空間不平滑時效果不佳,基於分類的優化(Classification-based optimization):通過舊樣本訓練一個分類器,將搜索空間分為正負區域,正區域中的樣本更可能得到優秀結果。所以新樣本從正區域獲得,迭代上述步驟。該方法的優點是非常高效。同步樂觀優化(Simultaneous Optimistic optimization):是一種分支界限優化算法。在搜索空間內構造一個樹結構,每個葉子節點為一個小區域。SOO可以協調深度和廣度,找到全局最優點。但是會由於數據維度上升而使樹變得十分複雜。強化學習(reinforcement learning):RL是一種廣泛並強大的優化框架,通過延遲反饋解決問題,與其他優化方法的區別在於它存在延遲反饋,以給學習增加時序的概念。其中主要有兩個算法,分別是策略學習和Q-learning。策略學習(Policy Learning):通過把策略看作是函數,只有當前狀態一個輸入,根據事先的策略決定當前狀態下該執行的動作。但是要事先知道策略並不是件容易事,其中需要深入理解這個把狀態映射到目標的複雜函數。Q-Learning:另一個指導代理的方式是給定框架後讓代理根據當前環境獨自做出動作,而不是明確地告訴它在每個狀態下該執行的動作。與策略學習不同,Q-Learning算法有兩個輸入,分別是狀態和動作,併為每個狀態動作對返回對應值。當你面臨選擇時,這個算法會計算出該代理採取不同動作時對應的期望值,以選出最優結果。

梯度下降

由於自動化機器學習的問題很複雜,很多情況不可導,甚至不連續,所以梯度下降不是很流行。但是對於一些可導的損失函數,梯度下降更加高效。為了提高計算梯度的效率,有兩種可以使用的方法,其一是可以不計算準確梯度,而是計算非準確梯度,這樣超參可以在模型收斂之前更新,來使梯度下降法更為高效。另一種計算梯度的方法是通過自動化求導,通過鏈規則和向後傳播求導。神經架構搜索

在神經架構搜索中,除了可以使用上述介紹的幾種技術以外,由於深度學習本身獨特的搜索空間,只有支持離散變量優化的算法才可以使用,這導致許多常用的優化算法無法用於神經架構搜索中,為了解決這個問題,在NAS中,可以通過將離散的配置空間改為連續空間,使其可以使用更強大的其他優化技術。貪婪搜索

貪婪搜索方法,即每一步都會使用最優決定來解決問題,雖然貪婪搜索往往找不到全局最優,但是可以在較短的時間裡找到近似全局最優的局部最優。4.2 評估器技術

相對於調優器技術來說,評估器的整體消耗要大得多,而且評估器技術較少,現今的主要方法還是使用直接評估方法。直接評估:最簡單的方法,直接訓練模型後評估,雖然準確但是消耗較大。隨著數據量的增大和迭代次數的增多,直接評估無疑會給整個過程造成極大的負擔,為了改善直接評估,研究人員們設計了以下方法以輔助直接評估方法,來減少其消耗。子取樣法:使用原樣本或特徵子集進行評估,訓練數據越少,速度越快,噪音越多。提前終止:不同於傳統機器學習中,提前終止用於防止過擬合。這裡是當遇到沒有前途的配置信息,可以直接終止評估,免除不必要的浪費。缺點是可能會錯過起初表現不佳,但最終經過訓練後效果較好的配置。參數複用:對於差異不大的配置信息,可以使用先前的參數作為起始信息,這樣可以加快收斂速度,得到更好的表現。缺點在於,不同的起始點,可能造成不同的局部優化,為評估帶來偏斜。參數複用可以看做遷移學習的一種。代理評估

:假如配置信息可以被量化,可以通過構建代理模型來預測所給配置的表現,其中後文介紹的元學習便可使用該技術。4.3 經驗方法

上述介紹的方法都是不需要憑藉先前信息的方法,然而對於人來說,人往往不需要面對每個新問題都要重新進行一次學習,因為人們可以遷移之前的學習經驗,或者套用之前問題的方法來解決新問題,因此研究人員提出了關於經驗的機器學習算法。經驗學習主要有兩種方法,分別是元學習和遷移學習。由於經驗學習發展還在初始階段,兩種方法並沒有明確的界限,其中許多算法思想都是相通的,都是通過在配置生成和評估過程中減少消耗以提高自動化機器學習的效率。

元學習

元學習顧名思義,即通過提取元信息來指導學習。元學習首先要將學習問題和學習工具特徵化(例如數據的統計的特徵,學習工具的超參),然後從過去的經驗的中提取出來的元特徵,最後元學習器可以用元知識進行訓練。元學習在自動化機器學習中有著重要意義,一方面,通過特徵化學習問題和學習工具,可以發現重要的信息,比如數據中存在數據漂移(模型隨時間推移不再準確),其次,伴隨著特徵化,容易發現相似的問題,從而能夠知識可以在不同的問題間複用和轉移。另一方面,元學習器編碼過去的知識作為指導以解決未來的問題。元學習可以運用於評估器中,以降低評估過程中訓練所造成的的巨大消耗。通過把配置信息輸入先前訓練好的元學習器進行評估,以預測配置的表現或者適應度,最理想情況下,如果所有的配置已經被枚舉出來,元學習器可以直接選出最優配置。元學習也可以運用於調優器中,通過優化搜索空間,以減少調優過程的無意義消耗,在配置生成階段,通過先前經驗所得的元學習器,提取學習問題的特徵作為輸入來預測有前途的配置。同時可以應用於遷移學習,通過運用與之前任務元特徵空間最相近的配置作為初始化數據來進行配置生成熱啟動。除此之外,元學習還可以應用於動態配置自適應,通過數據和特徵的統計值,檢測是否有概念漂移出現,一旦發現概念漂移,則重新預測有前景的配置,以保證模型可用性。

遷移學習

遷移學習通過使用先前的經驗來指導學習,在機器學習中則是複用之前最優的訓練過的代理模型或者是搜索策略,來節約消耗。在調優過程中,可以進行代理模型遷移,在網絡結構問題中,由於網絡的可轉移性,遷移學習也廣泛運用在神經架構搜索中。遷移學習運用在評估器中,可以加快對於預選配置的評估。對於一般的優化問題,遷移學習可以遷移模型參數,通過使用訓練過的最優參數來進行初始化。另一種遷移學習的思路是通過功能保留轉換,例如Net2Net,通過要求和先前訓練模型相同的功能來初始化新的網絡,以加快網絡結構的訓練過程。5. autoML庫

5.1 Cloud AutoML

Cloud AutoML是由google開發的現今集成程度最高的自動化機器學習平臺,其中集合了包括自然語言處理,圖像處理,表格處理等當今幾乎所有機器學習領域。使用者幾乎不需要任何專業技能,只要將數據上傳後根據引導點擊一些設定,整個機器學習過程就可以高效完成。

研究綜述 | AI-自動化機器學習

然而缺點在於該平臺是閉源的,換句話說,Cloud AutoML更像是一個近似AWS的服務,因此它是收費的。更多使用細則見官方文檔https://cloud.google.com/automl/

5.2 MLBox

MLBox是一個強大的自動化機器學習庫,它包含了快速讀取和分佈式數據預處理,有穩定的特徵工程,並且能在高維情況下,準確自動化調參,庫中包含最新的預測模型,並能產生滿足模型解釋性的預測結果。

研究綜述 | AI-自動化機器學習

其在kaggle比賽中都有著較為出色的排名,更多的使用方法和官方文檔,可見https://mlbox.readthedocs.io/en/latest/

5.3 Auto-Sklearn

Auto-Sklearn是一個自動化機器學習工具組,它可以用於替代sklearn的評估器。scikit-learn作為最火的python機器學習包,已經得到了廣泛的運用。Auto-Sklearn讓使用者不再需要關心算法選擇和超參調整。其中運用了貝葉斯調優,元學習以及集成構造等方法,更多具體技術內容可見論文http://papers.nips.cc/paper/5872-efficient-and-robust-automated-machine-learning.pdf或者官方文檔https://automl.github.io/auto-sklearn/master/5.4 TPOT

研究綜述 | AI-自動化機器學習

TPOT是基於Scikit-Learn的一個自動化機器學習工具,不同於Auto-Sklearn的是,TPOT使用遺傳算法作為空間搜索算法,在特定任務下,可以得到比無導數優化方法更好的結果。更多信息可見官方文檔http://epistasislab.github.io/tpot/

5.5 AutoKeras

研究綜述 | AI-自動化機器學習

AutoKeras是一個開源的自動化機器學習庫,它不同於其他上述介紹的庫的點是它注重於解決深度學習的自動化問題,也就是說其中運用了神經架構搜索以簡化深度學習構建的困難。更多信息可見官網文檔,https://autokeras.com/6. 總結

本文主要總結了現階段自動化機器學習的發展情況,簡單介紹了自動化機器學習的應用和內部的技術,以及當今一些較為成熟的庫。現階段的自動化機器學習仍然存在許多的問題,一方面是,經驗學習方法包括元學習和遷移學習才剛剛起步,無論是理論還是實踐都有著很多的空白。另一方面,即使是較為成熟的傳統機器學習調參部分,也有著評估器效率低,調優器空間搜索迭代次數多等問題。這些方向都等待著研究人員的解決,因此,研究自動化機器學習是一個十分有前途的方向,在接下來的文章中,我將具體介紹自動化機器學習中的各個部分。

7. 引用

【1】Quanming Yao, Mengshuo Wang, Yuqiang Chen, Wenyuan Dai, Yi-Qi Hu, Yu-Feng Li, Wei-Wei Tu, Qiang Yang, Yang Yu(2019),Taking the Human out of Learning Applications: A Survey on Automated Machine Learning,arXiv:1810.13306 [cs.AI]【2】Gang Luo (2016). A review of automatic selection methods for machine learning algorithms and hyper-parameter values,Network Modeling Analysis in Health Informatics and Bioinformatics, 2016, Volume 5, Number 1, Page 1【3】Parul Pandey, AutoML: The Next Wave of Machine Learning, https://heartbeat.fritz.ai/automl-the-next-wave-of-machine-learning-5494baac615f


分享到:


相關文章: