21個必知的機(jī)器學(xué)習(xí)開源工具,涵蓋5大領(lǐng)域
- 本文將介紹21個你可能沒使用過的機(jī)器學(xué)習(xí)開源工具。
- 每個開源工具都為數(shù)據(jù)科學(xué)家處理數(shù)據(jù)庫提供了不同角度。
- 本文將重點(diǎn)介紹五種機(jī)器學(xué)習(xí)的工具——面向非程序員的工具(Ludwig、Orange、KNIME)、模型部署(CoreML、Tensorflow.js)、大數(shù)據(jù)(Hadoop、Spark)、計算機(jī)視覺(SimpleCV)、NLP(StanfordNLP)、音頻和強(qiáng)化學(xué)習(xí)(OpenAI Gym)。
你肯定已經(jīng)知道一些知名的開源工具,如R、Python、Jupyter筆記本等。但除此之外,還有一個世界——一個在雷達(dá)下機(jī)器學(xué)習(xí)工具存在的世界。它們雖沒有那些知名的開源工具出色,但卻可以幫助用戶解決許多機(jī)器學(xué)習(xí)的任務(wù)。
開源機(jī)器學(xué)習(xí)工具可分為以下5類:
1. 面向非程序員的開源機(jī)器學(xué)習(xí)工具
對于沒有編程背景和技術(shù)背景的人來說,機(jī)器學(xué)習(xí)似乎很復(fù)雜。這是一個廣闊的領(lǐng)域,可以想象,初次接觸機(jī)器學(xué)習(xí)有多令人害怕。一個沒有編程經(jīng)驗的人能在機(jī)器學(xué)習(xí)領(lǐng)域獲得成功嗎?
事實證明,能獲得成功!以下三種工具可以幫助非程序員跨越技術(shù)鴻溝,進(jìn)入聲名鵲起的機(jī)器學(xué)習(xí)世界:
- Uber Ludwig:Uber’s Ludwig是一個建立在TensorFlow上的工具箱。Ludwig允許用戶訓(xùn)練和測試深度學(xué)習(xí)模型,而不需要編寫代碼。用戶需要提供的只是一個包含數(shù)據(jù)的CSV文件,一個用作輸入的列表,以及一個用作輸出的列表——而剩下工作將由Ludwig來完成。它對實驗非常有用,因為用戶只需耗費(fèi)很少的時間和精力,就能構(gòu)建復(fù)雜的模型。并且用戶可以對其進(jìn)行調(diào)整和處理之后再決定是否要將其運(yùn)用在代碼中。
- KNIME:KNIME可供用戶使用拖放界面創(chuàng)建整個數(shù)據(jù)科學(xué)工作流。用戶可以基本實現(xiàn)從功能工程到功能選擇的所有功能,甚至可以通過這種方式將預(yù)測機(jī)器學(xué)習(xí)模型納入工作流程中。這種可視化執(zhí)行整個模型工作流的方法非常直觀,并且在處理復(fù)雜的問題時非常有用。
- Orange:用戶不必知道如何編寫代碼以使用orange來挖掘數(shù)據(jù)、處理數(shù)字以及由此得出自己的見解。相反,用戶可執(zhí)行基本可視化、數(shù)據(jù)操作、轉(zhuǎn)換和數(shù)據(jù)挖掘等任務(wù)。由于Orange的易用性及其添加多個附加組件以補(bǔ)充其功能的能力,該工具最近在學(xué)生和教師中十分流行。
還有許多更有趣、免費(fèi)的開源軟件可以提供很好的機(jī)器學(xué)習(xí)功能,而無需編寫(大量)代碼。
此外,一些付費(fèi)服務(wù)也可以考慮,如Google AutoML、 Azure Studio、 Deep Cognition和 Data Robot.
2. 旨在部署模型的開源機(jī)器學(xué)習(xí)工具
部署機(jī)器學(xué)習(xí)模型是一個十分重要但最容易被忽視的任務(wù),用戶應(yīng)該加以注意。它肯定會出現(xiàn)在面試中,所以用戶需很好地了解這個話題。
以下四種工具可以使用戶更易將其項目運(yùn)用到現(xiàn)實設(shè)備上。
- MLFlow: MLFlow旨在與機(jī)器學(xué)習(xí)庫或算法配合使用,并管理包括實驗、再驗和機(jī)器學(xué)習(xí)模型部署在內(nèi)的整個生命周期。目前,MLFlow在Alpha中有3個部分——跟蹤、項目和模型。
- Apple’s CoreML: CoreMLl是一個十分受歡迎的工具,它可將機(jī)器學(xué)習(xí)模型內(nèi)置到用戶的iOS/Apple Watch/Apple TV/MacOS的應(yīng)用程序中。CoreML的閃光點(diǎn)在于用戶無需對神經(jīng)網(wǎng)絡(luò)或機(jī)器學(xué)習(xí)有廣泛的了解,最終達(dá)到雙贏的結(jié)果!
- TensorFlow Lite: TensorFlow Lite是一套幫助開發(fā)人員在移動設(shè)備(Android和iOS)和物聯(lián)網(wǎng)設(shè)備上運(yùn)行TensorFlow模型的工具,旨在方便開發(fā)人員在網(wǎng)絡(luò)“邊緣”的設(shè)備上進(jìn)行機(jī)器學(xué)習(xí),而不是從服務(wù)器來回發(fā)送數(shù)據(jù)。
- TensorFlow.js :TensorFlow.js是用戶在網(wǎng)上部署機(jī)器學(xué)習(xí)模型的首選。這是一個開放源碼庫,供用戶在瀏覽器中構(gòu)建和處理機(jī)器學(xué)習(xí)模型。它可為GPU加速,還自動支持WebGL。用戶可以導(dǎo)入現(xiàn)有的預(yù)培訓(xùn)模型,也可以在瀏覽器上重新處理整個現(xiàn)有機(jī)器學(xué)習(xí)模型!
3. 大數(shù)據(jù)開源機(jī)器學(xué)習(xí)工具
大數(shù)據(jù)是一個研究如何進(jìn)行分析、如何系統(tǒng)地從數(shù)據(jù)集中提取信息或以其他方式處理傳統(tǒng)數(shù)據(jù)處理軟件無法處理的太大或太復(fù)雜的數(shù)據(jù)集的領(lǐng)域。想象一下,每天處理數(shù)百萬條推特進(jìn)行情緒分析。這感覺像是一項艱巨的任務(wù),不是嗎?
放寬心!以下三種工具可以幫助用戶處理大數(shù)據(jù)。
- Hadoop: Hadoop是處理大數(shù)據(jù)最杰出也是最相關(guān)的工具之一。Hadoop允許用戶使用簡單的編程模型在計算機(jī)集群之間對大型數(shù)據(jù)集進(jìn)行分布式處理。它旨在對單個服務(wù)器到數(shù)千臺機(jī)器,每臺機(jī)器都提供本地計算和存儲。
- Spark: Apache spark被認(rèn)為在大數(shù)據(jù)應(yīng)用程序方面是Hadoop的進(jìn)階版。Apache spark的關(guān)鍵在于填補(bǔ)了Apache Hadoop在數(shù)據(jù)處理方面的空白。有趣的是,Spark可以同時處理批量數(shù)據(jù)和實時數(shù)據(jù)。
- Neo4j: 在處理大數(shù)據(jù)相關(guān)問題方面,Hadoop可能不是絕佳的選擇。例如,用戶需要處理大量的網(wǎng)絡(luò)數(shù)據(jù)或圖形相關(guān)問題(如社交網(wǎng)絡(luò)或人口統(tǒng)計模式等)時。而圖形數(shù)據(jù)庫(Neo4j)則是最佳選擇。
4. 用于計算機(jī)視覺、自然語言處理和音頻的開源機(jī)器學(xué)習(xí)工具
- SimpleCV: 參與任何計算機(jī)視覺項目都必須使用OpenCV。但你有沒有考慮過SimpleCV?SimpleCV可供用戶訪問幾個高性能的計算機(jī)視覺庫,如OpenCV——而不必首先了解位深度、文件格式、顏色空間、緩沖區(qū)管理、特征值以及矩陣與位圖存儲。計算機(jī)視覺讓項目變得更容易上手。
- Tesseract OCR: 你是否曾使用過一些有創(chuàng)意的應(yīng)用程序,可以使用智能手機(jī)的攝像頭掃描文件或購物賬單,或者只需拍張支票就可以將錢存入銀行賬戶?所有這些應(yīng)用程序使用的都是OCR,即光學(xué)字符識別軟件。Tesseract就是這樣的OCR引擎,可以識別100多種語言,也可以加以訓(xùn)練識別其他語言。
- Detectron: Detectron是Facebook旗下人工智能研究公司的軟件系統(tǒng),它采用了包括Mask R-CNN在內(nèi)最先進(jìn)的目標(biāo)檢測算法。Detectron由Python語言編寫完成,由Caffe2深度學(xué)習(xí)框架提供支持。
- StanfordNLP: StanfordNLP是Python的自然語言分析包。它的閃光點(diǎn)在于其支持70多種人類語言!StanfordNLP還包含可以在以下程序步驟中使用的工具:
—將包含人類語言文本的字符串轉(zhuǎn)換為句子和單詞列表
—生成單詞的基本形式、詞類和形態(tài)特征
—邏輯句法結(jié)構(gòu)依賴分析
- BERT as a Service: 所有的自然語言處理愛好者都應(yīng)該聽說過谷歌的開創(chuàng)性自然語言處理架構(gòu)——BERT,但可能還沒有用過。Bert-as-a-service將BERT作為句子編碼器,并通過ZeroMQ將其作為服務(wù)器,從而使用戶能夠僅用兩行代碼將句子映射為固定長度的表示形式。
- Google Magenta: Google Magenta提供了處理源數(shù)據(jù)(主要是音樂和圖像)的實用程序,該數(shù)據(jù)庫使用這些源數(shù)據(jù)處理機(jī)器學(xué)習(xí)模型,并最終從這些模型中生成新內(nèi)容。
- LibROSA: LibROSA是用于音樂和音頻分析的Python語言包。它提供了構(gòu)建音樂信息檢索系統(tǒng)所必需的構(gòu)建塊。當(dāng)用戶在處理諸如語音到文本深度學(xué)習(xí)等的應(yīng)用時, LibROSA廣泛應(yīng)用于在音頻信號預(yù)處理程序環(huán)節(jié)。
5. 旨在進(jìn)行強(qiáng)化學(xué)習(xí)的開源工具
強(qiáng)化學(xué)習(xí)(RL) 是機(jī)器學(xué)習(xí)的新話題,其目標(biāo)是培養(yǎng)能夠與環(huán)境互動并解決復(fù)雜任務(wù)的智能經(jīng)紀(jì)人,實現(xiàn)機(jī)器人、自動駕駛汽車等的實際應(yīng)用。
強(qiáng)化學(xué)習(xí)領(lǐng)域的快速發(fā)展得益于讓智能經(jīng)紀(jì)人玩一些游戲,如經(jīng)典的Atari console games、傳統(tǒng)的圍棋游戲,或者讓智能經(jīng)紀(jì)人玩電子游戲,如Dota 2 或 Starcraft 2,所有這些游戲都為智能經(jīng)紀(jì)人提供了具有挑戰(zhàn)性的環(huán)境。在這個環(huán)境中,新的算法可以安全、可重復(fù)的方式測試想法。以下列舉了4個最有利于強(qiáng)化學(xué)習(xí)的培養(yǎng)環(huán)境:
- Google Research Football: Google Research Football Environment是一個全新的強(qiáng)化學(xué)習(xí)環(huán)境,其中,智能經(jīng)紀(jì)人旨在掌握世界上最流行的足球運(yùn)動。這種環(huán)境能讓用戶更好地訓(xùn)練強(qiáng)化學(xué)習(xí)智能經(jīng)紀(jì)人。
- OpenAI Gym: Gym是開發(fā)和比較強(qiáng)化學(xué)習(xí)算法的工具包,可支持教學(xué)經(jīng)紀(jì)人從走路到玩乒乓球或彈球之類的游戲。從以下動圖中可以看到一個正在學(xué)習(xí)走路的教學(xué)經(jīng)紀(jì)人。
- Unity ML Agents: The Unity Machine Learning Agents Toolkit(ML-Agents)是開源設(shè)備的插件,使游戲和模擬游戲能為智能經(jīng)紀(jì)人訓(xùn)練提供有效環(huán)境。通過簡單易用的Python API,用戶可以使用強(qiáng)化學(xué)習(xí)、模仿學(xué)習(xí)、神經(jīng)進(jìn)化或其他機(jī)器學(xué)習(xí)方法來訓(xùn)練智能經(jīng)紀(jì)人。
- Project Malmo: Malmo平臺是一個建立在Minecraft之上的復(fù)雜人工智能實驗平臺,旨在支持人工智能領(lǐng)域的基礎(chǔ)研究,由微軟開發(fā)。
當(dāng)用戶進(jìn)行數(shù)據(jù)科學(xué)和人工智能相關(guān)項目時,開放源碼是一種可行的方法。本文只是介紹了冰山一角,仍有許多工具可用于處理各種各樣的任務(wù),使數(shù)據(jù)科學(xué)家的項目生活更為簡便。數(shù)據(jù)科學(xué)家只需知道何處尋找開放源碼即可。