十個(gè)用于 AutoML 的 GitHub 存儲庫
人工智能和機(jī)器學(xué)習(xí)的突破是過去二十年中最激動(dòng)人心的兩個(gè)話題。機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)工程師需要廣泛的研究和努力工作才能有效地理解和運(yùn)行他們的模型。
雖然它們可能因人而異,但傳統(tǒng)的機(jī)器學(xué)習(xí)步驟包括:
- 數(shù)據(jù)采集
- 數(shù)據(jù)探索
- 數(shù)據(jù)準(zhǔn)備
- 特征工程
- 選型
- 模型訓(xùn)練
- 超參數(shù)調(diào)整
- 預(yù)測
雖然 8 個(gè)步驟在構(gòu)建機(jī)器學(xué)習(xí)模型時(shí)可能看起來并不多,但從上面的步驟開始需要相當(dāng)長的時(shí)間才能完善!
當(dāng)非專業(yè)的機(jī)器學(xué)習(xí)從業(yè)者第一次經(jīng)歷這些步驟時(shí),問題會更加嚴(yán)重;該過程通常需要更多時(shí)間和資源才能完成,即使如此,最終結(jié)果也可能與預(yù)期不符。
AutoML 通過為專家和非專家等人自動(dòng)執(zhí)行大部分模型創(chuàng)建過程而派上用場。
什么是自動(dòng)機(jī)器學(xué)習(xí) (AutoML)?
自動(dòng)化機(jī)器學(xué)習(xí),通常稱為 AutoML,使機(jī)器學(xué)習(xí)變得更容易。AutoML 使用由給定框架完成的自動(dòng)處理,使非機(jī)器學(xué)習(xí)專家更容易使用機(jī)器學(xué)習(xí)。
它專注于加速人工智能的研究和提高機(jī)器學(xué)習(xí)模型的效率。
傳統(tǒng)的機(jī)器學(xué)習(xí)過程側(cè)重于前面提到的所有 8 個(gè)步驟,而 AutoML 涵蓋兩個(gè)步驟:
- 數(shù)據(jù)采集是在將數(shù)據(jù)存儲到數(shù)據(jù)倉庫之前收集、過濾和清理所用數(shù)據(jù)的過程。
- 預(yù)測是指給定模型返回的實(shí)際輸出,訓(xùn)練有素的模型很可能會返回準(zhǔn)確的最終預(yù)測。
數(shù)據(jù)探索、 數(shù)據(jù)準(zhǔn)備、特征工程、模型選擇、模型訓(xùn)練和 最終模型調(diào)整的框架將涵蓋其他 6 個(gè)步驟。
AutoML 的優(yōu)勢
- 提高工作效率
- 更好的最終結(jié)果
- 最小化錯(cuò)誤
- 擴(kuò)展機(jī)器學(xué)習(xí)
AutoML 流行框架
既然我們已經(jīng)討論了什么是 AutoML 并了解了它的一些優(yōu)勢,我們將介紹 10 大 AutoML 框架、在哪里可以找到它們以及它們提供的功能。
1. 谷歌自動(dòng)機(jī)器學(xué)習(xí)
Google AutoML是最著名的可用框架之一,在我們的列表中排名第一。谷歌已經(jīng)推出了許多 AutoML 框架,例如 Google AutoML vision、Google AutoML Natural Language 等。
2. 自動(dòng) SKLearn
之前接觸過機(jī)器學(xué)習(xí)的用戶可能對 SKlearn 這個(gè)名字并不陌生。作為流行的sci-kit-learn 庫的附加組件,Auto SKLearn 是一個(gè)開源機(jī)器學(xué)習(xí)框架,可處理機(jī)器學(xué)習(xí)任務(wù)的自動(dòng)化。
Auto Sklearn 框架能夠執(zhí)行其模型選擇、超參數(shù)調(diào)整和表征,這是 Auto SKlearn 框架的一個(gè)獨(dú)特功能。
通過執(zhí)行模型選擇,Auto SKlearn 將自動(dòng)搜索能夠處理用戶給定問題的最佳算法。
轉(zhuǎn)到 Auto SKlearn 的第二個(gè)功能,我們有超參數(shù)調(diào)整。作為任何機(jī)器或深度學(xué)習(xí)模型的最后步驟之一,用戶應(yīng)該找到最佳模型參數(shù)來優(yōu)化結(jié)果。此任務(wù)需要大量時(shí)間,并且可以通過此類框架輕松實(shí)現(xiàn)自動(dòng)化。
使用 Auto SKlearn 的獨(dú)特和最終好處是它能夠執(zhí)行自動(dòng)表征。表征是將原始數(shù)據(jù)轉(zhuǎn)換為可用信息的過程。
3.TPot
TPOT,也稱為 Tree Pipeline Optimization Tool,是最早的 python 開源 autoML 軟件包之一。它專注于使用遺傳編程優(yōu)化機(jī)器學(xué)習(xí)管道。
TPOT 的主要目標(biāo)是通過將管道的靈活表達(dá)式樹表示與遺傳編程等隨機(jī)搜索算法相結(jié)合來自動(dòng)構(gòu)建 ML 管道。
請注意,TPOT 在sci-kit-learn library之上工作,必須先安裝它。
4.AutoKeras
AutoKeras是一個(gè)為 AutoML 和深度學(xué)習(xí)模型構(gòu)建的開源庫,最初由 DATA 實(shí)驗(yàn)室開發(fā)。
Auto Keras 幫助非專家機(jī)器和深度學(xué)習(xí)愛好者以最小的努力運(yùn)行和訓(xùn)練他們的模型。Auto Keras 的目標(biāo)是讓每個(gè)人都可以學(xué)習(xí)機(jī)器學(xué)習(xí),它是初學(xué)者的絕佳工具
5.路德維希
Ludwig是一個(gè)開源 autoML 框架,主要側(cè)重于使用簡單的配置文件系統(tǒng)組裝和訓(xùn)練深度學(xué)習(xí)模型。
通過讓用戶提供一個(gè)配置文件來定義給定模型的輸入和輸出及其各自的數(shù)據(jù)類型,Ludwig 框架將利用這些數(shù)據(jù)基于前面提到的屬性構(gòu)建其深度學(xué)習(xí)模型。
6. MLBOX
MLBOX正在崛起,并迅速成為頂級自動(dòng)化機(jī)器學(xué)習(xí)框架工具之一。
根據(jù)MLBOX 官方文檔,它提供了以下好處:
- 快速讀取和分布式數(shù)據(jù)預(yù)處理/清理/格式化。
- 高度穩(wěn)健的特征選擇和泄漏檢測。
- 高維空間中的精確超參數(shù)優(yōu)化。
- 最先進(jìn)的分類和回歸預(yù)測模型(深度學(xué)習(xí)、堆疊、LightGBM 等)。
- 使用模型解釋進(jìn)行預(yù)測。
7. 自動(dòng)關(guān)機(jī)
AutoGloun面向?qū)<液头菍<覚C(jī)器學(xué)習(xí)從業(yè)者,專注于自動(dòng)化堆棧集成、深度學(xué)習(xí)和跨越圖像、文本和表格數(shù)據(jù)的真實(shí)世界應(yīng)用程序。
根據(jù)AutoGloun 在線文檔,AutoGLoun 使用戶能夠:
- 僅需幾行代碼即可為原始數(shù)據(jù)快速構(gòu)建深度學(xué)習(xí)和經(jīng)典 ML 解決方案的原型。
- 在沒有專業(yè)知識的情況下自動(dòng)利用最先進(jìn)的技術(shù)(在適當(dāng)?shù)那闆r下)。
- 利用自動(dòng)超參數(shù)調(diào)整、模型選擇/集成、架構(gòu)搜索和數(shù)據(jù)處理。
- 輕松改進(jìn)/調(diào)整定制模型和數(shù)據(jù)管道,或?yàn)樘囟ㄓ美ㄖ?AutoGluon。
8.微軟神經(jīng)網(wǎng)絡(luò)智能(NNI)
Microsoft Neural Network Intelligence,也稱為 NNI,是一個(gè)工具包,旨在為深度學(xué)習(xí)自動(dòng)化特征工程、神經(jīng)架構(gòu)搜索、超參數(shù)調(diào)整和模型壓縮。
NNI 工具支持 PyTorch、TensorFlow、Scikit-learn、XGBoost、LightGBM 等框架。使用 Microsoft Neural Network 的主要好處是神經(jīng)架構(gòu)搜索,NNI 工具支持 Multi-trail(網(wǎng)格搜索、正則化進(jìn)化、基于策略的 IRL 等)和 One-shot(DARTS、ENAS FBNet 等)神經(jīng)架構(gòu)搜索。
該工具提供了多種超參數(shù)調(diào)整算法,例如貝葉斯優(yōu)化、窮舉搜索和啟發(fā)式搜索。查看 Github 上 NNI 的自述文件,了解有關(guān)此工具提供的其他內(nèi)容的更多信息。
9. 變形怪
TransmogrifAI旨在幫助開發(fā)人員提高機(jī)器學(xué)習(xí)生產(chǎn)力。TransmogrifAI 在 Apache Spark 之上運(yùn)行。
正如 Transmogrif 上的 Github 自述文件中簡要提到的那樣,“通過自動(dòng)化,它可以達(dá)到接近手動(dòng)調(diào)整模型的精度,并且時(shí)間減少了近 100 倍?!?/em>
與提到的其他 autoML 框架一樣,TransmogrifAI 工具能夠?yàn)橛脩暨x擇的數(shù)據(jù)集選擇最佳算法。
10. H2O 自動(dòng)機(jī)器學(xué)習(xí)
H2O autoML是 H2O 創(chuàng)建的開源框架工具,同時(shí)支持 R 和 Python 編程。
它還支持最廣泛使用的統(tǒng)計(jì)和機(jī)器學(xué)習(xí)算法,包括梯度提升機(jī)器、廣義線性模型和深度學(xué)習(xí)。
H2O autoML 接口通過要求盡可能少的參數(shù)來適應(yīng)新的機(jī)器學(xué)習(xí)用戶。用戶在使用 H2O 工具時(shí)的主要任務(wù)是提供數(shù)據(jù)集。
其他有用的 AutoML 工具
1.過度緊張
Hypertunity是一種輕量級工具,旨在使用輕量級包優(yōu)化模型的給定超參數(shù)。它們模塊化簡單,可擴(kuò)展以允許無縫調(diào)度實(shí)現(xiàn)。
Hypertunity 支持使用 GPyOpt、Slurm 兼容調(diào)度程序的貝葉斯優(yōu)化,以及使用 Tensorboard 的實(shí)時(shí)可視化(通過 HParams 插件)。
2. 蜻蜓
Dragonfly是一種開源 autoML 工具,專為可擴(kuò)展的貝葉斯優(yōu)化而設(shè)計(jì)。
貝葉斯優(yōu)化用于評估超出普通優(yōu)化的非常昂貴的黑盒函數(shù)。
Dragonfly 允許新用戶用最少的知識解決可擴(kuò)展的貝葉斯優(yōu)化錯(cuò)誤。
3.雷音
作為我們的第二個(gè)超參數(shù)優(yōu)化工具,Ray Tune是一個(gè)用于擴(kuò)展 AI 和 Python 應(yīng)用程序的統(tǒng)一框架。
它通過分布式數(shù)據(jù)處理、分布式訓(xùn)練、可擴(kuò)展的超參數(shù)調(diào)整、可擴(kuò)展的強(qiáng)化學(xué)習(xí)和可擴(kuò)展的可編程服務(wù)來實(shí)現(xiàn)簡單的 AI 工作負(fù)載擴(kuò)展。
4.自動(dòng)圖學(xué)習(xí)
Auto Graph Learning是一個(gè)獨(dú)特的 autoML 框架,它專注于圖形數(shù)據(jù)集的機(jī)器學(xué)習(xí),非常容易和簡單。
他們使用數(shù)據(jù)集來維護(hù)基于 Pytorch Geometric 或 Deep Graph Library 中的 Datasets 的基于圖的機(jī)器學(xué)習(xí)的數(shù)據(jù)集。
用于自動(dòng)機(jī)器學(xué)習(xí)的 GitHub 存儲庫
隨著機(jī)器和深度學(xué)習(xí)領(lǐng)域的進(jìn)步,對機(jī)器學(xué)習(xí)專家的需求大幅增加卻沒有得到解決。
這就是機(jī)器學(xué)習(xí)工具和技術(shù)的自動(dòng)化派上用場的地方,它允許新用戶比以往任何時(shí)候都更輕松地構(gòu)建功能齊全且高度優(yōu)化的模型。
簡而言之,在尋找完美的自動(dòng)化機(jī)器學(xué)習(xí)工具時(shí),您應(yīng)該關(guān)注您嘗試使用給定模型實(shí)現(xiàn)的目標(biāo)以及您希望自動(dòng)化的機(jī)器學(xué)習(xí)過程中的確切部分。我們建議您自己嘗試上述幾個(gè) autoML 工具,然后只使用您認(rèn)為高效且易于使用的幾個(gè)。