AutoML取人代之?四個(gè)工程師兩個(gè)數(shù)據(jù)集將之干翻!
過去幾年,越來越多科技巨頭推出了自己的 AutoML 服務(wù),市場對于此類服務(wù)的關(guān)注度與認(rèn)可度也一直在不斷提升。數(shù)據(jù)科學(xué)家們一直面臨著靈魂拷問:AutoML 會(huì)取代我們嗎? 本文,四位數(shù)據(jù)科學(xué)家兩兩一組通過兩個(gè)數(shù)據(jù)集與 AutoML 服務(wù)正面較量,最終證明:AutoML 取代工程師,緩緩吧!
目前存在哪些 AutoML 平臺?
要了解 AutoML,我們先得談?wù)剻C(jī)器學(xué)習(xí)項(xiàng)目的生命周期,具體涵蓋數(shù)據(jù)清潔、特征選擇 / 工程、模型選擇、參數(shù)優(yōu)化以及最終模型驗(yàn)證。盡管技術(shù)快速發(fā)展,傳統(tǒng)數(shù)據(jù)科學(xué)項(xiàng)目當(dāng)中仍然包含大量既耗時(shí)又重復(fù)的手動(dòng)操作流程。
圖片來源:R. Olson 等(2016 年),《在自動(dòng)化數(shù)據(jù)科學(xué)場景下,對 TPOT(基于樹形結(jié)構(gòu)的流水線優(yōu)化工具)的評估》
AutoML 能夠自動(dòng)完成從數(shù)據(jù)清潔到參數(shù)優(yōu)化的整個(gè)流程,憑借著出色的時(shí)間與性能改進(jìn)效果,為各類機(jī)器學(xué)習(xí)項(xiàng)目帶來巨大價(jià)值。
1. Google Cloud AutoML
誕生于 2018 年的 Google Cloud AutoML 憑借其友好的用戶界面與極高的性能表現(xiàn),很快在市場上得以普及。下圖所示,為 Google 與其他 AutoML 平臺之間的性能比較(藍(lán)色柱形為 Google AutoML)。
片來源:《在結(jié)構(gòu)化數(shù)據(jù)上利用 AutoML 解決高價(jià)值業(yè)務(wù)問題》,2019 年 Cloud Next 大會(huì)
2. 微軟 Azure AutoML
同樣誕生于 2018 年的 Azure AutoML,為不熟悉編程知識的用戶們帶來高透明度模型選擇流程。
3. H2o.ai
“H2O 已經(jīng)成為大規(guī)模模型構(gòu)建領(lǐng)域的重要驅(qū)動(dòng)力。面對數(shù)十億級別的參數(shù)規(guī)模,任何現(xiàn)成的標(biāo)準(zhǔn)開源技術(shù)都顯得無能為力。” — H2o.ai
H2o 誕生于 2012 年,同時(shí)提供開源軟件與商業(yè) AutoML 服務(wù)(Driverless AI)兩種選項(xiàng)。自面世以來,H2O 已經(jīng)在金融服務(wù)與零售等行業(yè)得到廣泛應(yīng)用。
4. TPOT
TPOT(基于樹形結(jié)構(gòu)的流水線優(yōu)化工具)由賓夕法尼亞大學(xué)開發(fā)完成,是一款可免費(fèi)使用的 Python 軟件包。該軟件雖然完全免費(fèi),但功能方面不打一點(diǎn)折扣,而且在各類數(shù)據(jù)集上均擁有出色性能表現(xiàn):Iris 數(shù)據(jù)集準(zhǔn)確率約為 97%,MNIS 數(shù)字識別數(shù)據(jù)集準(zhǔn)確率 98%,波士頓房屋價(jià)格預(yù)測為 10 MSE。
AutoML 對陣數(shù)據(jù)科學(xué)家
現(xiàn)在,我們已經(jīng)了解了 AutoML 的基本定義及其可用選項(xiàng)。下面來看核心問題:這些平臺會(huì)全面取代人類數(shù)據(jù)科學(xué)家嗎?
為了找到令人信服的答案,我們將通過一場黑客馬拉松,客觀評估 AutoML 與人類之間的分析能力差異。
成本比較
根據(jù) Indeed.com 網(wǎng)站的統(tǒng)計(jì),美國數(shù)據(jù)科學(xué)家的平均年薪為 12 萬 1585 美元。而 如果一家企業(yè)全年持續(xù)使用 AutoML(每周 40 小時(shí),每年 52 周),則費(fèi)用每年在 4160 美元到 41600 美元之間,具體視實(shí)際平臺選項(xiàng)而定。
誠然,這樣的直接比較并不合理,因?yàn)槲覀兌贾罃?shù)據(jù)科學(xué)家在模型操作之外還有其他工作需要處理。但在另一方面,這種快速簡單的方法,仍能在一定程度上體現(xiàn)數(shù)據(jù)科學(xué)家與 AutoML 的成本差異。
數(shù)據(jù)科學(xué)家與 AutoML 之間的成本比較
性能比較:黑客馬拉松
下面,我們將組織一場涵蓋兩套數(shù)據(jù)集的黑客馬拉松,進(jìn)一步比較人類數(shù)據(jù)科學(xué)家與 AutoML 平臺之間的性能差異。每套數(shù)據(jù)集,對應(yīng)一支人類數(shù)據(jù)科學(xué)家小組以及多個(gè) AutoML 平臺。雙方將同步進(jìn)行數(shù)據(jù)處理、特征選擇 / 工程、模型選擇以及參數(shù)調(diào)整,并最終努力給出符合預(yù)定性能指標(biāo)的最佳預(yù)測結(jié)果。
黑客馬拉松數(shù)據(jù)集 1:快速分類
黑客馬拉松數(shù)據(jù)集 2:ASHRAE(回歸)
數(shù)據(jù)集 1:快速分類數(shù)據(jù)集
數(shù)據(jù)集概述
該數(shù)據(jù)集收集自參與實(shí)驗(yàn)性快速約會(huì)活動(dòng)的人群。在這些活動(dòng)中,參與者會(huì)填寫一份調(diào)查表,其中包括個(gè)人信息以及他們理想中的伴侶所應(yīng)具備的特征。例如,他們會(huì)以從 1 到 10 幾個(gè)等級評論自己、自己從事的工作,以及希望伴侶表現(xiàn)出哪些特質(zhì)。這套數(shù)據(jù)集的目標(biāo),在于根據(jù)個(gè)人喜好預(yù)測其能否找到適合自己的匹配對象。這是一個(gè)典型的分類問題,我們將“match”變量作為因變量。
數(shù)據(jù)科學(xué)家的數(shù)據(jù)預(yù)處理與特征工程
為了獲得優(yōu)于 AutoML 平臺的結(jié)果,人類數(shù)據(jù)科學(xué)家需要對數(shù)據(jù)集進(jìn)行特征設(shè)計(jì)、處理類失衡問題、處理缺失值,并對分類變更執(zhí)行獨(dú)熱編碼。由于數(shù)據(jù)收集自調(diào)查問卷,因此必須存在嚴(yán)重的值缺少問題——這是因?yàn)槿绻稍L者不愿意回答某個(gè)問題,則可直接留空。這些缺失值只能通過適當(dāng)估算均值、中位數(shù)或者眾數(shù)等方式解決。由于數(shù)據(jù)在某些自變量之間具有共線性,因此某些變量會(huì)被刪除。在所有標(biāo)簽當(dāng)中,只有 29% 的二進(jìn)制值為 1,其他部分的二進(jìn)制值則為 0。為了解決這個(gè)問題,我們采用 SMOTE(合成少數(shù)過采樣技術(shù))。SMOTE 能夠從少數(shù)類當(dāng)中創(chuàng)建合成樣本,而非簡單復(fù)制數(shù)據(jù)。獨(dú)熱編碼在谷歌平臺上往往難于實(shí)現(xiàn),這是因?yàn)樵撈脚_無法以有意義的方式對提取到的信息進(jìn)行分組。
現(xiàn)在,我們將利用原始與特征工程處理后的數(shù)據(jù),對 Azure 及谷歌的 AutoML 平臺進(jìn)行整體有效性分析。
數(shù)據(jù)科學(xué)家對陣 AutoML 平臺
數(shù)據(jù)科學(xué)家: 我們嘗試了多種不同模型,而后發(fā)現(xiàn) XGBoost 與神經(jīng)網(wǎng)絡(luò)模型的性能最好。我們在其中主要關(guān)注 AUC ROC 評分,以便將模型結(jié)果與 AutoML 平臺創(chuàng)建的模型進(jìn)行比較。XGBoost 模型的 AUC ROC 得分為 0.77,神經(jīng)網(wǎng)絡(luò)模型的 AUC ROC 得分則為 0.74。
使用原始數(shù)據(jù)的 AutoML 平臺: 同樣采用 XGBoost,谷歌的性能水平要比 Azure 了一些。谷歌的 AUC ROC 得分為 0.881,Azure 則為 0.865。由于相關(guān)信息被劃定為專有信息,因此我們無法得知谷歌平臺到底選擇了哪種模型。另一方面,Azure 則會(huì)準(zhǔn)確告知其運(yùn)行了多少個(gè)模型,每個(gè)模型的得分是多少,以及訓(xùn)練各個(gè)模型所花費(fèi)的時(shí)間。
使用處理后數(shù)據(jù)的 AutoML 平臺: 現(xiàn)在,我們希望測量經(jīng)過特征工程處理的數(shù)據(jù)集又將在 AutoML 上擁有怎樣的性能表現(xiàn)。我們注意到:谷歌的性能有所下降,Azure 性能則得以改善。如前所述,谷歌 AutoML 在處理獨(dú)熱編碼方面存在問題,其設(shè)計(jì)思路在于自主進(jìn)行特征工程。因此,以獨(dú)熱碼變量的形式提供特征工程數(shù)據(jù),反而會(huì)導(dǎo)致其整體性能下滑。在這輪測試中,Azure 的性能由 0.865 提升到了 0.885。
下圖所示,為 Azure 在數(shù)據(jù)集上運(yùn)行的各套模型:
我們也可以看到谷歌與 Azure 平臺上的 Precison-Recall 圖、ROC 圖、混淆矩陣以及特征重要度圖:
快速(約會(huì))分類數(shù)據(jù)集測試結(jié)論:
- 數(shù)據(jù)科學(xué)家能夠向 AutoML 平臺提供特征工程數(shù)據(jù)集,從而提高該平臺的性能水平。
- Azure 在具體使用模型方面更為透明;谷歌平臺則拒絕公開模型創(chuàng)建與選擇信息。
- 谷歌無法很好地處理獨(dú)熱碼變量。
數(shù)據(jù)集 2: ASHRAE
數(shù)據(jù)集概述
這套數(shù)據(jù)集來自 ASHRAE Energy Prediction Kaggle 競賽,要求參賽者們開發(fā)出一套面向 1449 處建筑物內(nèi)熱水、冷水、蒸汽以及儀表計(jì)數(shù)的預(yù)測模型。這些數(shù)據(jù)源自建筑物的一系列相關(guān)元數(shù)據(jù),包括占地面積、建成時(shí)間以及樓層總數(shù);儀表類型與時(shí)間戳讀數(shù);帶有時(shí)間戳的天氣數(shù)據(jù),包括氣溫、云量、降水量、風(fēng)速、風(fēng)向以及海平面壓力等。天氣數(shù)據(jù)由建筑物所在地附近的氣象站提供。
數(shù)據(jù)科學(xué)家的數(shù)據(jù)預(yù)處理與特征工程
天氣數(shù)據(jù)集當(dāng)中同樣存在著嚴(yán)重的值缺失問題,可以看到云量與降水量這兩項(xiàng)特征分別存在 50% 與 35% 的缺失比例。部分氣象站甚至壓根不提供云量與降水量數(shù)據(jù)。為了克服這一障礙,數(shù)據(jù)科學(xué)家們嘗試對氣溫、露水溫度、風(fēng)速以及海平面壓力等特征進(jìn)行整理,借此為缺失部分建立插值,并利用這些插值為云量與降水量建立預(yù)測模型。
我們利用 10 倍交叉驗(yàn)證為各項(xiàng)特征選定插值方法,并將其應(yīng)用于訓(xùn)練與測試數(shù)據(jù)。我們運(yùn)行了一系列模型以預(yù)測云量與降水量,但始終未能找到可準(zhǔn)確生成缺失值的理想模型。風(fēng)向測量存在間隔,因此我們將每組數(shù)據(jù)重構(gòu)為一組分類變量;由于存在明顯的右偏分布,我們對風(fēng)速結(jié)果進(jìn)行了對數(shù)轉(zhuǎn)換。此外,我們還構(gòu)建起其他一些特征,包括假期和周末,同時(shí)引入了影響滯后因素。總而言之,我們額外構(gòu)建起 19 項(xiàng)特征,再加上 13 項(xiàng)原始特征,總計(jì) 32 個(gè)變量。
最后,我們刪除了一條由氣象站收集到的異常天氣數(shù)據(jù),而后利用正向、反向與逐步回歸找出最佳預(yù)報(bào)特征,因此預(yù)測中實(shí)際使用的變量為 13 個(gè)。
數(shù)據(jù)科學(xué)家對陣 AutoML 平臺
數(shù)據(jù)科學(xué)家: 我們并沒有為所有建筑物構(gòu)建通用模型,而是為數(shù)據(jù)集內(nèi)的每棟建筑物構(gòu)建起對立的光梯度增強(qiáng)模型,確保訓(xùn)練與測試集內(nèi)包含相同建筑物的信息。通過這種方法,我們獲得了 0.773 RMSLE。
使用原始數(shù)據(jù)的 AutoML 平臺: 經(jīng)過一個(gè)小時(shí)的訓(xùn)練,谷歌云獲得了 1.017 RMSLE;再訓(xùn)練三個(gè)小時(shí),RMSLE 又進(jìn)一步提升了 0.011。在這輪測試中,谷歌輕松超越 Azure,后者的 RMSLE 為 2.22。當(dāng)然,這一比較并不算完全公平,因?yàn)槲覀円?Azure 強(qiáng)制使用隨機(jī)森林以返回 RMSLE 結(jié)果。
使用處理后數(shù)據(jù)的 AutoML 平臺: 我們通過谷歌云運(yùn)行處理后的數(shù)據(jù)。在經(jīng)過四個(gè)小時(shí)的訓(xùn)練后,谷歌云的 RMSLE 為 1.7,這讓我們相當(dāng)驚訝。經(jīng)過進(jìn)一步調(diào)查,我們發(fā)現(xiàn)自己的特征選擇方法限制了 AutoML 的性能,因?yàn)?AutoML 平臺希望執(zhí)行自己的特征選擇。我們再次通過兩套平臺運(yùn)行處理后的數(shù)據(jù),且使用全部 32 個(gè)變量——而非之前提到的 13 個(gè)。這一次,兩套平臺的性能都得到了改善。經(jīng)過一個(gè)小時(shí)的訓(xùn)練,谷歌云的 RMSLE 為 0.755,四小時(shí)訓(xùn)練后的 RMSLE 進(jìn)一步達(dá)到 0.656——這遠(yuǎn)遠(yuǎn)超過了數(shù)據(jù)科學(xué)家們拿出的結(jié)果!經(jīng)過一個(gè)小時(shí)的訓(xùn)練,Azure 的 RMSLE 為 3.826,四小時(shí)訓(xùn)練后的結(jié)果則為 3.653。
ASHRAE 數(shù)據(jù)集測試結(jié)論:
盡管 AutoML 是一款強(qiáng)大的預(yù)測工具,但仍無法像人類那樣有效進(jìn)行數(shù)據(jù)預(yù)處理。
將訓(xùn)練周期延長幾個(gè)小時(shí),可以大大提高 AutoML 平臺的性能表現(xiàn)。
必須允許 AutoML 平臺自行選擇特征,否則可能會(huì)嚴(yán)重影響其性能表現(xiàn)。
將數(shù)據(jù)科學(xué)家在業(yè)務(wù)問題上的專業(yè)知識,同 AutoML 強(qiáng)大的特征選擇、特征預(yù)處理、模型選擇以及超參數(shù)調(diào)優(yōu)功能相結(jié)合,將迸發(fā)出強(qiáng)大的能量,為我們帶來寶貴的洞察見解與理想的預(yù)測結(jié)果。
結(jié)論
最后,我們用三個(gè)問題來結(jié)束此番討論。
AutoML 能替代數(shù)據(jù)科學(xué)家嗎?
答案是否定的。
雖然 AutoML 確實(shí)擅長構(gòu)建模型,但仍然無法勝任大部分?jǐn)?shù)據(jù)科學(xué)家所熟悉的工作內(nèi)容。我們需要仰仗數(shù)據(jù)科學(xué)家來定義業(yè)務(wù)問題,需要他們運(yùn)用自己的專業(yè)知識構(gòu)建更多具有實(shí)際意義的特征。如今,AutoML 還只能處理有限幾種問題類型,例如分類與回歸問題;換言之,它們還無法建立推薦與排名模型。更重要的是,我們?nèi)匀恍枰蓴?shù)據(jù)科學(xué)家從數(shù)據(jù)當(dāng)中整理出可行洞察,這是單憑 AutoML 所無法做到的。
但是,AutoML 仍能幫助數(shù)據(jù)科學(xué)家為利益相關(guān)方創(chuàng)造出巨大的價(jià)值。因此,接下來要回答的問題是:我們何時(shí)該使用 AutoML?又該如何使用?
數(shù)據(jù)科學(xué)家該如何充分利用 AutoML 平臺?
在這里,我們可以參考以下幾個(gè)潛在用例。
性能比可解釋性更重要時(shí):
有時(shí)候,利益相關(guān)方可能只關(guān)注模型精度,而不要求模型必須擁有明確的可解釋性。根據(jù)我們的實(shí)驗(yàn),保證 AutoML 具有合理的特征工程發(fā)揮空間似乎有助于性能提升。但在示例當(dāng)中,兩套平臺只在特征重要度方面體現(xiàn)出一點(diǎn)點(diǎn)可解釋性。換句話說,如果只了解特征重要度就夠了,那么 AutoML 可能會(huì)成為實(shí)現(xiàn)更高分析精度的理想選項(xiàng)。
生產(chǎn)速度非常重要時(shí):
谷歌與 Azure 都提供將模型部署至生產(chǎn)環(huán)境中的便捷方法。例如,谷歌云允許用戶通過幾次點(diǎn)擊快速實(shí)現(xiàn)批量與在線預(yù)測。它還允許用戶通過 API 將模型部署至自有網(wǎng)站。這些功能,將使得數(shù)據(jù)科學(xué)家顯著加快生產(chǎn)速度并減少實(shí)際工作量。
時(shí)間較為緊迫時(shí):
數(shù)據(jù)科學(xué)家肩上的擔(dān)子可不輕,所以時(shí)間對他們來說無比寶貴。在日常工作中,數(shù)據(jù)科學(xué)家需要沒完沒了地參加由產(chǎn)品經(jīng)理、業(yè)務(wù)負(fù)責(zé)人、員工以及客戶組織的會(huì)議,維護(hù)現(xiàn)有模型、進(jìn)行數(shù)據(jù)收集 / 清潔、為下一次會(huì)議做準(zhǔn)備等等等等。因此,AutoML 將成為節(jié)約時(shí)間的重要工具,幾次點(diǎn)擊再幾塊小錢,就讓幫助我們訓(xùn)練出具備一定性能的模型。如此一來,大家就能專注于處理那些最具價(jià)值回報(bào)的關(guān)鍵任務(wù)(有時(shí)候,把 PPT 做得漂亮一點(diǎn),可能要比把模型精度提升 1% 重要得多)。