前沿技術 | 自動機器學習綜述

來源:小金博士公眾號 本文約5000字,建議閱讀10分鐘 本文將探索目前可用于自動化過程的框架,以幫助讀者了解在自動化機器學習方面可能出現(xiàn)的情況。
自動機器學習綜述
自動化工程特點 自動的模型選擇和超參數(shù)調優(yōu) 自動神經(jīng)網(wǎng)絡架構選擇(NAS) 自動部署

自動特征工程
“客戶下單的頻率” “上次購買后的天數(shù)或小時數(shù)” “顧客通常購買的商品類型”
框架
「數(shù)據(jù)科學機器」是由麻省理工學院的Max Kanter和Kalyan Verramachaneni進行的一個研究項目。他們的研究論文概述了深度特征合成算法的內部工作原理,該算法使用原語的概念來為實體(數(shù)據(jù)中唯一的觀察)和實體之間的關系生成特征。基本類型本質上是應用于數(shù)據(jù)的數(shù)學函數(shù)(sum、mean、max、min、average等),這些函數(shù)返回不區(qū)分大小寫的數(shù)字結果,并且可以由人類解釋為表示不同的東西。在我們的電子商務示例中,sum可用于計算針對特定客戶的所有訂單所花費的美元金額。以飛機票務平臺為例,它可用于計算客戶已購買的當年機票的數(shù)量。不同的用例但是相同的數(shù)學原語。這是在Featuretools Python庫下開源的,可以嘗試下載并試用它。Featuretools是由Feature Labs開發(fā)的,它將數(shù)據(jù)科學機器研究論文中的工作進行了操作化。Feature Labs是數(shù)據(jù)科學機器的創(chuàng)造者Max和Kalyan創(chuàng)建的一家公司。 DataRobot使用一個稱為模型藍圖的概念來實現(xiàn)自動化特征工程,該概念在機器學習管道中堆疊了不同的預處理步驟。特性工程部分不像在Featuretools中那樣利用原語的概念。然而,它確實對數(shù)據(jù)應用了一些標準的預處理技術(基于所使用的ML算法,例如隨機森林、邏輯回歸等),如單熱編碼、輸入、類別計數(shù)、在自由文本列中出現(xiàn)的n個字符標記、比率等。 H2O的無人駕駛人工智能是一個自動機器學習的平臺。它可以用于自動化特性工程、模型驗證、模型調優(yōu)、模型選擇和模型部署。在這一部分,我們將只討論無人駕駛AI的自動特性工程部分。無人駕駛智能支持一系列的所謂的“transformers”,可以應用于一個數(shù)據(jù)集。 tsfresh是一個用于從時間序列數(shù)據(jù)中計算和提取特征的Python庫。它提取了中位數(shù)、均值、樣本熵、分位數(shù)、偏度、方差、值計數(shù)、峰數(shù)等特征。它沒有泛化所有類型的數(shù)據(jù)集。它更針對于時間序列數(shù)據(jù)。但是,它可以與上面提到的其他工具一起使用。
自動選擇模型和超參數(shù)調整
auto-sklearn是由Mathias Feurer, Aaron Klein, Katharina Eggensperger等人創(chuàng)建的Python庫。這個庫主要處理機器學習中的兩個核心過程:從分類和回歸算法的廣泛列表中選擇算法和超參數(shù)優(yōu)化。這個庫不執(zhí)行特性工程,因為數(shù)據(jù)集特性是通過組合使用數(shù)學原語(如Featuretools)來創(chuàng)建新特性的。Auto-sklearn類似于Auto-WEKA和Hyperopt-sklearn。下面是auto-sklearn可以從決策樹、高斯樸素貝葉斯、梯度增強、kNN、LDA、SVM、隨機森林和線性分類器(SGD)中選擇的一些分類器。在預處理步驟上,它支持以下幾個方面:內核主成分分析,選擇百分位數(shù),選擇率,一熱編碼,歸位,平衡,縮放,特征聚集,等等。同樣,從通過組合現(xiàn)有特性來豐富數(shù)據(jù)集的角度來看,這些都不能理解為特性工程步驟。 有些算法會自動地通過一系列不同的變量配置來優(yōu)化某些指標。這類似于尋找可變的重要性。通常,通過理解變量存在的上下文和域,人們可以很好地完成這項工作。例如:“夏季銷量增加”或“最昂貴的商品來自西倫敦居民”。這些變量可以由人類領域專家自然地暗示出來。然而,還有另一種方法來理解一個變量的重要性,那就是看這個變量在統(tǒng)計上有多重要。這是由決策樹(使用所謂的基尼指數(shù)或信息增益)等算法自動完成的。隨機森林也這樣做,但與決策樹不同,隨機森林運行多個決策樹,以創(chuàng)建引入了隨機性的多個模型。 對于時間序列數(shù)據(jù),我們傾向于討論汽車。R中的arima包使用AIC作為優(yōu)化指標。自動生成的算法。arima在后臺使用Hyndman-Khandakar來實現(xiàn)這一點,在下面的OText書中有詳細的解釋。 如前所述,H2O無人駕駛AI可以用于自動化特征工程。它還可以用來自動訓練多個算法在同一時間。這是由h2o實現(xiàn)的。automl包。它可以自動訓練您的數(shù)據(jù)使用多種不同的算法與不同的參數(shù),如GLM, Xgboost隨機森林,深度學習,集成模型,等等。 DataRobot還可以用于同時自動訓練多個算法。這是通過使用經(jīng)DataRobot科學家調整過的模型實現(xiàn)的,因此能夠使用預先設置的超參數(shù)運行幾十個模型。它最終會選擇一個準確率最高的算法。它還允許數(shù)據(jù)科學家手動干預和調整模型,以提高準確性。 微軟在9月宣布了自己的自動化機器學習工具包。事實上,該產(chǎn)品本身被稱為automatic ML,屬于Azure機器學習產(chǎn)品。微軟的自動ML利用協(xié)同過濾和貝葉斯優(yōu)化來搜索機器學習的空間。Microsoft指的是數(shù)據(jù)預處理步驟、學習算法和超參數(shù)配置的組合。在上面討論的許多模型選擇技術中,ML學習過程中自動化的典型部分是超參數(shù)設置。微軟的研究人員發(fā)現(xiàn),只調優(yōu)超參數(shù)有時可以與隨機搜索相媲美,因此理想情況下,整個端到端流程應該是自動化的。

谷歌也在這個領域進行了創(chuàng)新,推出了谷歌云自動化。在Cloud AutoML谷歌中,通過只從用戶獲取標記數(shù)據(jù)并自動構建和訓練算法,數(shù)據(jù)科學家能夠訓練計算機視覺、自然語言處理和翻譯的模型。

TPOT是用于自動化機器學習的Python庫,它利用遺傳編程優(yōu)化機器學習管道。ML管道包括數(shù)據(jù)清理、特征選擇、特征預處理、特征構建、模型選擇和參數(shù)優(yōu)化。TPOT庫利用了scikit-learn中可用的機器學習庫。

Amazon Sage Maker提供了建模、培訓和部署的能力。它可以自動調整算法,為了做到這一點,它使用了一種叫做貝葉斯優(yōu)化的技術 HyperDrive是微軟的產(chǎn)品,是為全面的超參數(shù)探索而建立的。超參數(shù)搜索空間可以用隨機搜索、網(wǎng)格搜索或貝葉斯優(yōu)化來覆蓋。它實現(xiàn)了一個調度器列表,您可以選擇通過聯(lián)合優(yōu)化質量和成本來提前終止探索階段。
神經(jīng)網(wǎng)絡結構選擇
NASNet-學習可擴展的圖像識別的可轉移的體系結構

AmoebaNet-基于AmoebaNet正則化演化的圖像分類器體系結構搜索 ENAS-高效的神經(jīng)結構搜索
自動部署
Seldon-提供了一些方法來包裝用R、Python、Java和NodeJS構建的模型,并將其部署到Kubernetes集群中。它提供與kubeflow、IBM用于深度學習的fabric、NVIDIA TensorRT、DL推理服務器、Tensorflow服務等的集成。 Redis-ML-是Redis(內存中分布式鍵值數(shù)據(jù)庫)中的一個模塊,它允許將模型部署到生產(chǎn)環(huán)境中。它目前只支持以下算法:隨機森林(分類和回歸)、線性回歸和邏輯回歸。 Apache MXNet的模型服務器用于服務從MXNet或Open Neural Network Exchange (ONNX)導出的深度學習模型。 Microsoft機器學習服務允許您將模型作為web服務部署在可伸縮的Kubernetes集群上,并且可以將模型作為web服務調用。 可以使用Amazon SageMaker將模型部署到HTTPS端點,應用程序利用該端點對新數(shù)據(jù)觀察進行推斷/預測。 谷歌云ML還支持模型部署和通過對托管模型的web服務的HTTP調用進行推斷。默認情況下,它將模型的大小限制為250 MB。 H2O通過利用Java mojo(優(yōu)化的模型對象)的概念來支持模型的部署。mojo支持自動、深度學習、DRF、GBM、GLM、GLRM、K-Means、堆棧集成、支持向量機、Word2vec和XGBoost模型。它與Java類型環(huán)境高度集成。對于非java編程模型(如R或Python),可以將模型保存為序列化對象,并在推斷時加載。 TensorFlow服務用于將TensorFlow模型部署到生產(chǎn)環(huán)境中。在幾行代碼中,您就可以將tensorflow模型用作預測的API。 如果您的模型已經(jīng)被訓練并導出為PMML格式,那么Openscoring可以幫助您將這些PMML模型作為推斷的REST api提供服務。 創(chuàng)建GraphPipe的目的是將ML模型部署與框架特定的模型實現(xiàn)(例如Tensorflow、Caffe2、ONNX)解耦。
編輯:黃繼彥
評論
圖片
表情
