自動(dòng)機(jī)器學(xué)習(xí)綜述
自從計(jì)算機(jī)時(shí)代開(kāi)始,科學(xué)家和工程師們就一直想知道如何像人類(lèi)一樣,給計(jì)算機(jī)注入學(xué)習(xí)的能力。艾倫·圖靈是第一批提出智能理論的科學(xué)家之一,該理論設(shè)想有一天計(jì)算機(jī)能夠達(dá)到與人類(lèi)同等的智能水平。從那時(shí)起,機(jī)器學(xué)習(xí)領(lǐng)域發(fā)生了一系列巨大的飛躍。我們已經(jīng)看到機(jī)器學(xué)習(xí)在許多情況下?lián)魯』蛑辽倨ヅ涮囟ǖ娜祟?lèi)認(rèn)知能力,例如在ResNet(一種深度殘留的網(wǎng)絡(luò)架構(gòu))的情況下超越了人類(lèi)在圖像識(shí)別方面的表現(xiàn),或者微軟的語(yǔ)音轉(zhuǎn)錄系統(tǒng)幾乎達(dá)到人類(lèi)水平的表現(xiàn)。
「機(jī)器學(xué)習(xí)優(yōu)點(diǎn)」:機(jī)器學(xué)習(xí)的最大好處之一是,它可以應(yīng)用于人類(lèi)今天面臨的幾乎任何問(wèn)題。然而,有了這些好處,也有一些挑戰(zhàn)。
「痛點(diǎn)」:機(jī)器學(xué)習(xí)算法需要針對(duì)每個(gè)不同的現(xiàn)實(shí)場(chǎng)景進(jìn)行配置和優(yōu)化。這使得人工操作非常密集,并且從監(jiān)督開(kāi)發(fā)的人員那里花費(fèi)了大量的時(shí)間。此手動(dòng)流程也容易出錯(cuò)、效率不高且難于管理。更不用說(shuō)配置和優(yōu)化不同類(lèi)型算法的專(zhuān)業(yè)知識(shí)的匱乏。 「自動(dòng)機(jī)器學(xué)習(xí)初衷」:如果配置、調(diào)優(yōu)和模型選擇是自動(dòng)化的,那么部署過(guò)程將更加高效,并且人們可以關(guān)注更重要的任務(wù),例如模型可解釋性、道德規(guī)范和業(yè)務(wù)結(jié)果。因此,機(jī)器學(xué)習(xí)模型構(gòu)建過(guò)程的自動(dòng)化具有重要的現(xiàn)實(shí)意義。 進(jìn)入自動(dòng)機(jī)器學(xué)習(xí): 注:在自動(dòng)機(jī)器學(xué)習(xí)的定義中,包括:
自動(dòng)化工程特點(diǎn)
自動(dòng)的模型選擇和超參數(shù)調(diào)優(yōu)
自動(dòng)神經(jīng)網(wǎng)絡(luò)架構(gòu)選擇(NAS)
自動(dòng)部署
這篇文章將探索目前可用于上述每個(gè)自動(dòng)化過(guò)程的框架,以幫助讀者了解今天在自動(dòng)化機(jī)器學(xué)習(xí)方面可能出現(xiàn)的情況。在探討每個(gè)過(guò)程之前,讓我們簡(jiǎn)要地討論端到端機(jī)器學(xué)習(xí)流程,并指出每個(gè)過(guò)程在該流程中發(fā)生的位置。 從上面的圖可以明顯看出,機(jī)器學(xué)習(xí)流程不僅僅包括建模階段。它還包括「問(wèn)題定義、數(shù)據(jù)收集和部署」。這篇博文的重點(diǎn)仍將放在“「建?!埂焙汀啊覆渴稹埂彪A段。這就是我們想從自動(dòng)化的角度來(lái)探索的。如果建模和部署階段可以自動(dòng)化,那么專(zhuān)家就可以更多地關(guān)注問(wèn)題定義、數(shù)據(jù)理解、遵守道德標(biāo)準(zhǔn),并確保部署的模型為業(yè)務(wù)生成有影響的見(jiàn)解,而不會(huì)引起任何道德問(wèn)題。 對(duì)于建模和部署階段的每個(gè)部分,我們將探索來(lái)自開(kāi)源社區(qū)、供應(yīng)商(如谷歌、Microsoft和Amazon)和其他參與者的框架。
自動(dòng)特征工程
通常情況下,機(jī)器學(xué)習(xí)算法的良好性能在很大程度上取決于模型使用的「特征的質(zhì)量」。對(duì)于數(shù)據(jù)科學(xué)家來(lái)說(shuō),特征工程是一項(xiàng)非常手工和勞動(dòng)密集型的任務(wù),它涉及大量的試驗(yàn)和錯(cuò)誤、深入的領(lǐng)域知識(shí),以及(目前)機(jī)器不擅長(zhǎng)的東西:直覺(jué)。自動(dòng)化特征工程的目的是「迭代地創(chuàng)建新的特征集」,直到ML模型達(dá)到令人滿意的準(zhǔn)確度分?jǐn)?shù)?,F(xiàn)在讓我們來(lái)框定我們?cè)噲D自動(dòng)化的過(guò)程。 功能工程流程通常是這樣的:收集數(shù)據(jù)集,例如,從電子商務(wù)網(wǎng)站收集關(guān)于客戶(hù)行為的數(shù)據(jù)集。作為一個(gè)數(shù)據(jù)科學(xué)家,你通常會(huì)喜歡創(chuàng)建新的功能,如果還沒(méi)有在數(shù)據(jù)中,如:
“客戶(hù)下單的頻率”
“上次購(gòu)買(mǎi)后的天數(shù)或小時(shí)數(shù)”
“顧客通常購(gòu)買(mǎi)的商品類(lèi)型”
其目的是創(chuàng)建一種算法,「自動(dòng)從數(shù)據(jù)生成或綜合這些類(lèi)型的特征」?,F(xiàn)在我們將列出并簡(jiǎn)要描述一些用于自動(dòng)化特性工程的框架。請(qǐng)注意,在一種稱(chēng)為深度學(xué)習(xí)的專(zhuān)門(mén)機(jī)器學(xué)習(xí)形式中,通過(guò)深度學(xué)習(xí)模型層中的多重矩陣轉(zhuǎn)換自動(dòng)從圖像、文本和視頻中提取特征是很典型的。我們?cè)谶@篇文章中討論的特性工程類(lèi)型主要涉及結(jié)構(gòu)化的事務(wù)和關(guān)系數(shù)據(jù)集,盡管我們也將簡(jiǎn)要地討論深度學(xué)習(xí)中的特性工程。
框架
「數(shù)據(jù)科學(xué)機(jī)器」是由麻省理工學(xué)院的Max Kanter和Kalyan Verramachaneni進(jìn)行的一個(gè)研究項(xiàng)目。他們的研究論文概述了深度特征合成算法的內(nèi)部工作原理,該算法使用原語(yǔ)的概念來(lái)為實(shí)體(數(shù)據(jù)中唯一的觀察)和實(shí)體之間的關(guān)系生成特征?;绢?lèi)型本質(zhì)上是應(yīng)用于數(shù)據(jù)的數(shù)學(xué)函數(shù)(sum、mean、max、min、average等),這些函數(shù)返回不區(qū)分大小寫(xiě)的數(shù)字結(jié)果,并且可以由人類(lèi)解釋為表示不同的東西。在我們的電子商務(wù)示例中,sum可用于計(jì)算針對(duì)特定客戶(hù)的所有訂單所花費(fèi)的美元金額。以飛機(jī)票務(wù)平臺(tái)為例,它可用于計(jì)算客戶(hù)已購(gòu)買(mǎi)的當(dāng)年機(jī)票的數(shù)量。不同的用例但是相同的數(shù)學(xué)原語(yǔ)。這是在Featuretools Python庫(kù)下開(kāi)源的,可以嘗試下載并試用它。Featuretools是由Feature Labs開(kāi)發(fā)的,它將數(shù)據(jù)科學(xué)機(jī)器研究論文中的工作進(jìn)行了操作化。Feature Labs是數(shù)據(jù)科學(xué)機(jī)器的創(chuàng)造者M(jìn)ax和Kalyan創(chuàng)建的一家公司。
DataRobot使用一個(gè)稱(chēng)為模型藍(lán)圖的概念來(lái)實(shí)現(xiàn)自動(dòng)化特征工程,該概念在機(jī)器學(xué)習(xí)管道中堆疊了不同的預(yù)處理步驟。特性工程部分不像在Featuretools中那樣利用原語(yǔ)的概念。然而,它確實(shí)對(duì)數(shù)據(jù)應(yīng)用了一些標(biāo)準(zhǔn)的預(yù)處理技術(shù)(基于所使用的ML算法,例如隨機(jī)森林、邏輯回歸等),如單熱編碼、輸入、類(lèi)別計(jì)數(shù)、在自由文本列中出現(xiàn)的n個(gè)字符標(biāo)記、比率等。
H2O的無(wú)人駕駛人工智能是一個(gè)自動(dòng)機(jī)器學(xué)習(xí)的平臺(tái)。它可以用于自動(dòng)化特性工程、模型驗(yàn)證、模型調(diào)優(yōu)、模型選擇和模型部署。在這一部分,我們將只討論無(wú)人駕駛AI的自動(dòng)特性工程部分。無(wú)人駕駛智能支持一系列的所謂的“transformers”,可以應(yīng)用于一個(gè)數(shù)據(jù)集。
tsfresh是一個(gè)用于從時(shí)間序列數(shù)據(jù)中計(jì)算和提取特征的Python庫(kù)。它提取了中位數(shù)、均值、樣本熵、分位數(shù)、偏度、方差、值計(jì)數(shù)、峰數(shù)等特征。它沒(méi)有泛化所有類(lèi)型的數(shù)據(jù)集。它更針對(duì)于時(shí)間序列數(shù)據(jù)。但是,它可以與上面提到的其他工具一起使用。
自動(dòng)化特性工程仍然是一項(xiàng)難以完成的任務(wù)。也有很多不支持自動(dòng)化特性工程的爭(zhēng)論,因?yàn)樗鼤?huì)產(chǎn)生不正確的結(jié)果,或者用不透明的方式使用錯(cuò)誤的標(biāo)簽對(duì)觀察結(jié)果進(jìn)行分類(lèi)。因此,自動(dòng)化特性工程需要謹(jǐn)慎對(duì)待,特別是在高度管制的環(huán)境中,比如金融服務(wù),在每個(gè)決策過(guò)程中,可解釋性和可說(shuō)明性都是至關(guān)重要的。
自動(dòng)選擇模型和超參數(shù)調(diào)整
一旦特征被預(yù)處理,你需要找到一個(gè)機(jī)器學(xué)習(xí)算法來(lái)訓(xùn)練這些特征,并能夠預(yù)測(cè)新觀察的目標(biāo)值。與功能工程不同,模型選擇具有豐富的選擇和選項(xiàng)。有「聚類(lèi)模型、分類(lèi)和回歸模型、基于神經(jīng)網(wǎng)絡(luò)的模型、基于關(guān)聯(lián)規(guī)則的模型」等等。每個(gè)算法適用于某個(gè)類(lèi)的問(wèn)題和自動(dòng)模型選擇這個(gè)模型我們可以過(guò)濾空間貫穿所有合適的模型為一個(gè)特定的任務(wù),選擇一個(gè)產(chǎn)生最高精度(如最低AIC)或最低誤碼率(例如RMSE)。 可以理解的是,沒(méi)有一種機(jī)器學(xué)習(xí)算法在所有數(shù)據(jù)集上都表現(xiàn)得最好(No Free Lunch theory),有些算法需要進(jìn)行超參數(shù)調(diào)優(yōu)。事實(shí)上,在選擇模型時(shí),我們傾向于嘗試不同的變量、不同的系數(shù)或不同的超參數(shù)。在回歸問(wèn)題中,存在一種方法,可以使用F-test、t-test、ajdusted R-squared等技術(shù)自動(dòng)選擇最終模型中使用的預(yù)測(cè)變量。這種方法稱(chēng)為逐步回歸。但是這種方法容易出錯(cuò)。 自動(dòng)選擇模型的框架:
auto-sklearn是由Mathias Feurer, Aaron Klein, Katharina Eggensperger等人創(chuàng)建的Python庫(kù)。這個(gè)庫(kù)主要處理機(jī)器學(xué)習(xí)中的兩個(gè)核心過(guò)程:從分類(lèi)和回歸算法的廣泛列表中選擇算法和超參數(shù)優(yōu)化。這個(gè)庫(kù)不執(zhí)行特性工程,因?yàn)閿?shù)據(jù)集特性是通過(guò)組合使用數(shù)學(xué)原語(yǔ)(如Featuretools)來(lái)創(chuàng)建新特性的。Auto-sklearn類(lèi)似于Auto-WEKA和Hyperopt-sklearn。下面是auto-sklearn可以從決策樹(shù)、高斯樸素貝葉斯、梯度增強(qiáng)、kNN、LDA、SVM、隨機(jī)森林和線性分類(lèi)器(SGD)中選擇的一些分類(lèi)器。在預(yù)處理步驟上,它支持以下幾個(gè)方面:內(nèi)核主成分分析,選擇百分位數(shù),選擇率,一熱編碼,歸位,平衡,縮放,特征聚集,等等。同樣,從通過(guò)組合現(xiàn)有特性來(lái)豐富數(shù)據(jù)集的角度來(lái)看,這些都不能理解為特性工程步驟。
有些算法會(huì)自動(dòng)地通過(guò)一系列不同的變量配置來(lái)優(yōu)化某些指標(biāo)。這類(lèi)似于尋找可變的重要性。通常,通過(guò)理解變量存在的上下文和域,人們可以很好地完成這項(xiàng)工作。例如:“夏季銷(xiāo)量增加”或“最昂貴的商品來(lái)自西倫敦居民”。這些變量可以由人類(lèi)領(lǐng)域?qū)<易匀坏匕凳境鰜?lái)。然而,還有另一種方法來(lái)理解一個(gè)變量的重要性,那就是看這個(gè)變量在統(tǒng)計(jì)上有多重要。這是由決策樹(shù)(使用所謂的基尼指數(shù)或信息增益)等算法自動(dòng)完成的。隨機(jī)森林也這樣做,但與決策樹(shù)不同,隨機(jī)森林運(yùn)行多個(gè)決策樹(shù),以創(chuàng)建引入了隨機(jī)性的多個(gè)模型。
對(duì)于時(shí)間序列數(shù)據(jù),我們傾向于討論汽車(chē)。R中的arima包使用AIC作為優(yōu)化指標(biāo)。自動(dòng)生成的算法。arima在后臺(tái)使用Hyndman-Khandakar來(lái)實(shí)現(xiàn)這一點(diǎn),在下面的OText書(shū)中有詳細(xì)的解釋。
如前所述,H2O無(wú)人駕駛AI可以用于自動(dòng)化特征工程。它還可以用來(lái)自動(dòng)訓(xùn)練多個(gè)算法在同一時(shí)間。這是由h2o實(shí)現(xiàn)的。automl包。它可以自動(dòng)訓(xùn)練您的數(shù)據(jù)使用多種不同的算法與不同的參數(shù),如GLM, Xgboost隨機(jī)森林,深度學(xué)習(xí),集成模型,等等。
DataRobot還可以用于同時(shí)自動(dòng)訓(xùn)練多個(gè)算法。這是通過(guò)使用經(jīng)DataRobot科學(xué)家調(diào)整過(guò)的模型實(shí)現(xiàn)的,因此能夠使用預(yù)先設(shè)置的超參數(shù)運(yùn)行幾十個(gè)模型。它最終會(huì)選擇一個(gè)準(zhǔn)確率最高的算法。它還允許數(shù)據(jù)科學(xué)家手動(dòng)干預(yù)和調(diào)整模型,以提高準(zhǔn)確性。
微軟在9月宣布了自己的自動(dòng)化機(jī)器學(xué)習(xí)工具包。事實(shí)上,該產(chǎn)品本身被稱(chēng)為automatic ML,屬于Azure機(jī)器學(xué)習(xí)產(chǎn)品。微軟的自動(dòng)ML利用協(xié)同過(guò)濾和貝葉斯優(yōu)化來(lái)搜索機(jī)器學(xué)習(xí)的空間。Microsoft指的是數(shù)據(jù)預(yù)處理步驟、學(xué)習(xí)算法和超參數(shù)配置的組合。在上面討論的許多模型選擇技術(shù)中,ML學(xué)習(xí)過(guò)程中自動(dòng)化的典型部分是超參數(shù)設(shè)置。微軟的研究人員發(fā)現(xiàn),只調(diào)優(yōu)超參數(shù)有時(shí)可以與隨機(jī)搜索相媲美,因此理想情況下,整個(gè)端到端流程應(yīng)該是自動(dòng)化的。
谷歌也在這個(gè)領(lǐng)域進(jìn)行了創(chuàng)新,推出了谷歌云自動(dòng)化。在Cloud AutoML谷歌中,通過(guò)只從用戶(hù)獲取標(biāo)記數(shù)據(jù)并自動(dòng)構(gòu)建和訓(xùn)練算法,數(shù)據(jù)科學(xué)家能夠訓(xùn)練計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和翻譯的模型。
Google CloudML
TPOT是用于自動(dòng)化機(jī)器學(xué)習(xí)的Python庫(kù),它利用遺傳編程優(yōu)化機(jī)器學(xué)習(xí)管道。ML管道包括數(shù)據(jù)清理、特征選擇、特征預(yù)處理、特征構(gòu)建、模型選擇和參數(shù)優(yōu)化。TPOT庫(kù)利用了scikit-learn中可用的機(jī)器學(xué)習(xí)庫(kù)。
TPOT Machine Learning Pipeline
Amazon Sage Maker提供了建模、培訓(xùn)和部署的能力。它可以自動(dòng)調(diào)整算法,為了做到這一點(diǎn),它使用了一種叫做貝葉斯優(yōu)化的技術(shù)
HyperDrive是微軟的產(chǎn)品,是為全面的超參數(shù)探索而建立的。超參數(shù)搜索空間可以用隨機(jī)搜索、網(wǎng)格搜索或貝葉斯優(yōu)化來(lái)覆蓋。它實(shí)現(xiàn)了一個(gè)調(diào)度器列表,您可以選擇通過(guò)聯(lián)合優(yōu)化質(zhì)量和成本來(lái)提前終止探索階段。
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇
在機(jī)器學(xué)習(xí)的世界中,最乏味的任務(wù)之一就是設(shè)計(jì)和構(gòu)建神經(jīng)網(wǎng)絡(luò)架構(gòu)。通常情況下,人們會(huì)花費(fèi)數(shù)小時(shí)或數(shù)天的時(shí)間嘗試使用不同的超參數(shù)迭代不同的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),以?xún)?yōu)化手頭任務(wù)的目標(biāo)函數(shù)。這非常耗時(shí),而且容易出錯(cuò)。「谷歌引入了利用進(jìn)化算法和強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)搜索的思想」,以設(shè)計(jì)和尋找最優(yōu)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。本質(zhì)上,這是在訓(xùn)練創(chuàng)建一個(gè)層,然后堆疊這些層來(lái)創(chuàng)建一個(gè)深層的神經(jīng)網(wǎng)絡(luò)架構(gòu)。近年來(lái),這一領(lǐng)域的研究引起了廣泛關(guān)注,并提出了許多研究論文。 以下是該領(lǐng)域所有研究論文的最新列表: http://www.ml4aad.org/automl/literat-on-neuralarchitecturesearch/。 值得注意的研究論文有:
NASNet-學(xué)習(xí)可擴(kuò)展的圖像識(shí)別的可轉(zhuǎn)移的體系結(jié)構(gòu)
The NASNet algorithm
AmoebaNet-基于AmoebaNet正則化演化的圖像分類(lèi)器體系結(jié)構(gòu)搜索
ENAS-高效的神經(jīng)結(jié)構(gòu)搜索
自動(dòng)部署
機(jī)器學(xué)習(xí)社區(qū)的很多關(guān)注都集中在學(xué)習(xí)算法的開(kāi)發(fā)上,而不是端到端機(jī)器學(xué)習(xí)流程中最重要的部分,那就是ML模型的部署和產(chǎn)品化。在將機(jī)器學(xué)習(xí)模型部署到生產(chǎn)環(huán)境中存在許多固有的挑戰(zhàn)。 有一些公司和開(kāi)源項(xiàng)目正在嘗試將這個(gè)過(guò)程自動(dòng)化,并盡可能減少數(shù)據(jù)科學(xué)家的痛苦,因?yàn)樗麄儾灰欢ň邆銬evOps技能。以下是在這個(gè)領(lǐng)域工作的框架和公司的列表:
Seldon-提供了一些方法來(lái)包裝用R、Python、Java和NodeJS構(gòu)建的模型,并將其部署到Kubernetes集群中。它提供與kubeflow、IBM用于深度學(xué)習(xí)的fabric、NVIDIA TensorRT、DL推理服務(wù)器、Tensorflow服務(wù)等的集成。
Redis-ML-是Redis(內(nèi)存中分布式鍵值數(shù)據(jù)庫(kù))中的一個(gè)模塊,它允許將模型部署到生產(chǎn)環(huán)境中。它目前只支持以下算法:隨機(jī)森林(分類(lèi)和回歸)、線性回歸和邏輯回歸。
Apache MXNet的模型服務(wù)器用于服務(wù)從MXNet或Open Neural Network Exchange (ONNX)導(dǎo)出的深度學(xué)習(xí)模型。
Microsoft機(jī)器學(xué)習(xí)服務(wù)允許您將模型作為web服務(wù)部署在可伸縮的Kubernetes集群上,并且可以將模型作為web服務(wù)調(diào)用。
可以使用Amazon SageMaker將模型部署到HTTPS端點(diǎn),應(yīng)用程序利用該端點(diǎn)對(duì)新數(shù)據(jù)觀察進(jìn)行推斷/預(yù)測(cè)。
谷歌云ML還支持模型部署和通過(guò)對(duì)托管模型的web服務(wù)的HTTP調(diào)用進(jìn)行推斷。默認(rèn)情況下,它將模型的大小限制為250 MB。
H2O通過(guò)利用Java mojo(優(yōu)化的模型對(duì)象)的概念來(lái)支持模型的部署。mojo支持自動(dòng)、深度學(xué)習(xí)、DRF、GBM、GLM、GLRM、K-Means、堆棧集成、支持向量機(jī)、Word2vec和XGBoost模型。它與Java類(lèi)型環(huán)境高度集成。對(duì)于非java編程模型(如R或Python),可以將模型保存為序列化對(duì)象,并在推斷時(shí)加載。
TensorFlow服務(wù)用于將TensorFlow模型部署到生產(chǎn)環(huán)境中。在幾行代碼中,您就可以將tensorflow模型用作預(yù)測(cè)的API。
如果您的模型已經(jīng)被訓(xùn)練并導(dǎo)出為PMML格式,那么Openscoring可以幫助您將這些PMML模型作為推斷的REST api提供服務(wù)。
創(chuàng)建GraphPipe的目的是將ML模型部署與框架特定的模型實(shí)現(xiàn)(例如Tensorflow、Caffe2、ONNX)解耦。
責(zé)任編輯:haq
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4762瀏覽量
100539 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7421瀏覽量
87715 -
AI
+關(guān)注
關(guān)注
87文章
30146瀏覽量
268413 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8377瀏覽量
132407
原文標(biāo)題:前沿技術(shù) | 自動(dòng)機(jī)器學(xué)習(xí)綜述
文章出處:【微信號(hào):gh_f39db674fbfd,微信公眾號(hào):尖刀視】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論