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