21個必知的機器學習開源工具,涵蓋5大領域

做者 | 張璐瑤、李林虹
來源 | 讀芯術

本文將介紹21個你可能沒使用過的機器學習開源工具。程序員

· 每一個開源工具都爲數據科學家處理數據庫提供了不一樣角度。面試

· 本文將重點介紹五種機器學習的工具——面向非程序員的工具(Ludwig、Orange、KNIME)、模型部署(CoreML、Tensorflow.js)、大數據(Hadoop、Spark)、計算機視覺(SimpleCV)、NLP(StanfordNLP)、音頻和強化學習(OpenAI Gym)。算法

你確定已經知道一些知名的開源工具,如R、Python、Jupyter筆記本等。但除此以外,還有一個世界——一個在雷達下機器學習工具存在的世界。它們雖沒有那些知名的開源工具出色,但卻能夠幫助用戶解決許多機器學習的任務。數據庫

開源機器學習工具可分爲如下5類:

1. 面向非程序員的開源機器學習工具編程

對於沒有編程背景和技術背景的人來講,機器學習彷佛很複雜。這是一個廣闊的領域,能夠想象,初次接觸機器學習有多使人懼怕。一個沒有編程經驗的人能在機器學習領域得到成功嗎?瀏覽器

事實證實,能得到成功!如下三種工具能夠幫助非程序員跨越技術鴻溝,進入聲名鵲起的機器學習世界:安全

· Uber Ludwig:Uber’s Ludwig是一個創建在TensorFlow上的工具箱。Ludwig容許用戶訓練和測試深度學習模型,而不須要編寫代碼。用戶須要提供的只是一個包含數據的CSV文件,一個用做輸入的列表,以及一個用做輸出的列表——而剩下工做將由Ludwig來完成。它對實驗很是有用,由於用戶只需耗費不多的時間和精力,就能構建複雜的模型。而且用戶能夠對其進行調整和處理以後再決定是否要將其運用在代碼中。服務器

· KNIME:KNIME可供用戶使用拖放界面建立整個數據科學工做流。用戶能夠基本實現從功能工程到功能選擇的全部功能,甚至能夠經過這種方式將預測機器學習模型歸入工做流程中。這種可視化執行整個模型工做流的方法很是直觀,而且在處理複雜的問題時很是有用。網絡

· Orange:用戶沒必要知道如何編寫代碼以使用orange來挖掘數據、處理數字以及由此得出本身的看法。相反,用戶可執行基本可視化、數據操做、轉換和數據挖掘等任務。因爲Orange的易用性及其添加多個附加組件以補充其功能的能力,該工具最近在學生和教師中十分流行。架構

還有許多更有趣、免費的開源軟件能夠提供很好的機器學習功能,而無需編寫(大量)代碼。

此外,一些付費服務也能夠考慮,如Google AutoML、 Azure Studio、 Deep Cognition和 Data Robot.

2. 在部署模型的開源機器學習工具

部署機器學習模型是一個十分重要但最容易被忽視的任務,用戶應該加以注意。它確定會出如今面試中,因此用戶需很好地瞭解這個話題。

如下四種工具可使用戶更易將其項目運用到現實設備上。

· MLFlow: MLFlow旨在與機器學習庫或算法配合使用,並管理包括實驗、再驗和機器學習模型部署在內的整個生命週期。目前,MLFlow在Alpha中有3個部分——跟蹤、項目和模型。

· Apple’s CoreML: CoreMLl是一個十分受歡迎的工具,它可將機器學習模型內置到用戶的iOS/Apple Watch/Apple TV/MacOS的應用程序中。CoreML的閃光點在於用戶無需對神經網絡或機器學習有普遍的瞭解,最終達到共贏的結果!

· TensorFlow Lite: TensorFlow Lite是一套幫助開發人員在移動設備(Android和iOS)和物聯網設備上運行TensorFlow模型的工具,旨在方便開發人員在網絡「邊緣」的設備上進行機器學習,而不是從服務器來回發送數據。

· TensorFlow.js:TensorFlow.js是用戶在網上部署機器學習模型的首選。這是一個開放源碼庫,供用戶在瀏覽器中構建和處理機器學習模型。它可爲GPU加速,還自動支持WebGL。用戶能夠導入現有的預培訓模型,也能夠在瀏覽器上從新處理整個現有機器學習模型!

3. 大數據開源機器學習工具

大數據是一個研究如何進行分析、如何系統地從數據集中提取信息或以其餘方式處理傳統數據處理軟件沒法處理的太大或太複雜的數據集的領域。想象一下,天天處理數百萬條推特進行情緒分析。這感受像是一項艱鉅的任務,不是嗎?

放寬心!如下三種工具能夠幫助用戶處理大數據。

· Hadoop: Hadoop是處理大數據最傑出也是最相關的工具之一。Hadoop容許用戶使用簡單的編程模型在計算機集羣之間對大型數據集進行分佈式處理。它旨在對單個服務器到數千臺機器,每臺機器都提供本地計算和存儲。

· Spark: Apache spark被認爲在大數據應用程序方面是Hadoop的進階版。Apache spark的關鍵在於填補了Apache Hadoop在數據處理方面的空白。有趣的是,Spark能夠同時處理批量數據和實時數據。

· Neo4j: 在處理大數據相關問題方面,Hadoop可能不是絕佳的選擇。例如,用戶須要處理大量的網絡數據或圖形相關問題(如社交網絡或人口統計模式等)時。而圖形數據庫(Neo4j)則是最佳選擇。

4. 用於計算機視覺、天然語言處理和音頻的開源機器學習工具

· SimpleCV: 參與任何計算機視覺項目都必須使用OpenCV。但你有沒有考慮過SimpleCV?SimpleCV可供用戶訪問幾個高性能的計算機視覺庫,如OpenCV——而沒必要首先了解位深度、文件格式、顏色空間、緩衝區管理、特徵值以及矩陣與位圖存儲。計算機視覺讓項目變得更容易上手。

· Tesseract OCR: 你是否曾使用過一些有創意的應用程序,可使用智能手機的攝像頭掃描文件或購物帳單,或者只需拍張支票就能夠將錢存入銀行帳戶?全部這些應用程序使用的都是OCR,即光學字符識別軟件。Tesseract就是這樣的OCR引擎,能夠識別100多種語言,也能夠加以訓練識別其餘語言。

· Detectron: Detectron是Facebook旗下人工智能研究公司的軟件系統,它採用了包括Mask R-CNN在內最早進的目標檢測算法。Detectron由Python語言編寫完成,由Caffe2深度學習框架提供支持。

· StanfordNLP: StanfordNLP是Python的天然語言分析包。它的閃光點在於其支持70多種人類語言!StanfordNLP還包含能夠在如下程序步驟中使用的工具:

—將包含人類語言文本的字符串轉換爲句子和單詞列表

—生成單詞的基本形式、詞類和形態特徵

—邏輯句法結構依賴分析

· BERT as a Service: 全部的天然語言處理愛好者都應該據說過谷歌的開創性天然語言處理架構——BERT,但可能尚未用過。Bert-as-a-service將BERT做爲句子編碼器,並經過ZeroMQ將其做爲服務器,從而使用戶可以僅用兩行代碼將句子映射爲固定長度的表示形式。

· Google Magenta: Google Magenta提供了處理源數據(主要是音樂和圖像)的實用程序,該數據庫使用這些源數據處理機器學習模型,並最終從這些模型中生成新內容。

· LibROSA: LibROSA是用於音樂和音頻分析的Python語言包。它提供了構建音樂信息檢索系統所必需的構建塊。當用戶在處理諸如語音到文本深度學習等的應用時, LibROSA普遍應用於在音頻信號預處理程序環節。

5. 旨在進行強化學習的開源工具

強化學習(RL) 是機器學習的新話題,其目標是培養可以與環境互動並解決複雜任務的智能經紀人,實現機器人、自動駕駛汽車等的實際應用。

強化學習領域的快速發展得益於讓智能經紀人玩一些遊戲,如經典的Atari console games、傳統的圍棋遊戲,或者讓智能經紀人玩電子遊戲,如Dota 2 或 Starcraft 2,全部這些遊戲都爲智能經紀人提供了具備挑戰性的環境。在這個環境中,新的算法能夠安全、可重複的方式測試想法。如下列舉了4個最有利於強化學習的培養環境:

· Google Research Football: Google Research Football Environment是一個全新的強化學習環境,其中,智能經紀人旨在掌握世界上最流行的足球運動。這種環境能讓用戶更好地訓練強化學習智能經紀人。觀看如下視頻瞭解更多信息:

· OpenAI Gym: Gym是開發和比較強化學習算法的工具包,可支持教學經紀人從走路到玩乒乓球或彈球之類的遊戲。從如下動圖中能夠看到一個正在學習走路的教學經紀人。

· Unity ML Agents: The Unity Machine Learning Agents Toolkit(ML-Agents)是開源設備的插件,使遊戲和模擬遊戲能爲智能經紀人訓練提供有效環境。經過簡單易用的Python API,用戶可使用強化學習、模仿學習、神經進化或其餘機器學習方法來訓練智能經紀人。

· Project Malmo: Malmo平臺是一個創建在Minecraft之上的複雜人工智能實驗平臺,旨在支持人工智能領域的基礎研究,由微軟開發。

當用戶進行數據科學和人工智能相關項目時,開放源碼是一種可行的方法。本文只是介紹了冰山一角,仍有許多工具可用於處理各類各樣的任務,使數據科學家的項目生活更爲簡便。數據科學家只需知道何處尋找開放源碼便可。

相關文章
相關標籤/搜索