摘要:十三套框架助你玩轉(zhuǎn)機器學(xué)習(xí)技術(shù)在今天的文章中,我們將共同了解十三款機器學(xué)習(xí)框架,一部分去年剛剛發(fā)布另一部分則在不久前進行了全部升級。目前該項目正積極添加對的支持能力,不過此類項目一般更傾向于直接面向各承載機器學(xué)習(xí)任務(wù)的主流環(huán)境。
導(dǎo)讀
過去幾年以來,機器學(xué)習(xí)已經(jīng)開始以前所未有的方式步入主流層面。這種趨勢并非單純由低成本云環(huán)境乃至極為強大的GPU硬件所推動; 除此之外,面向機器學(xué)習(xí)的可用框架也迎來了爆發(fā)式增長。此類框架全部為開源成果,但更重要的是它們在設(shè)計方面將更為復(fù)雜的部分從機器學(xué)習(xí)中抽象了出來,從而保證相關(guān)技術(shù)方案能夠為更多開發(fā)人員服務(wù)。
在今天的文章中,我們將共同了解十三款機器學(xué)習(xí)框架,一部分去年剛剛發(fā)布、另一部分則在不久前進行了全部升級。而這些框架中最值得關(guān)注的特性,在于它們正致力于通過簡單而新穎的方式應(yīng)對與機器學(xué)習(xí)相關(guān)的種種挑戰(zhàn)。
Apache Spark MLlib
Apache Spark可能算得上當前Hadoop家族當中更為耀眼的成員,但這套內(nèi)存內(nèi)數(shù)據(jù)處理框架在誕生之初實際與Hadoop并無關(guān)系,且憑借著自身出色的特性在Hadoop生態(tài)系統(tǒng)之外闖出一片天地。Spark目前已經(jīng)成為一款即時可用的機器學(xué)習(xí)工具,這主要歸功于其能夠以高速將算法庫應(yīng)用至內(nèi)存內(nèi)數(shù)據(jù)當中。
Spark仍處于不斷發(fā)展當中,而Spark當中的可用算法亦在持續(xù)增加及改進。去年的1.5版本添加了眾多新算法,對現(xiàn)有算法做出改進,同時進一步通過持續(xù)流程恢復(fù)了MLlib中的Spark ML任務(wù)。
Apache Singa
這套“深層學(xué)習(xí)”框架能夠支持多種高強度機器學(xué)習(xí)功能,具體包括自然語言處理與圖像識別。Singa最近被納入Apache孵化器項目,這套開源框架致力于降低大規(guī)模數(shù)據(jù)的深層學(xué)習(xí)模型訓(xùn)練難度。
Singa提供一套簡單的編程模式,用于跨越一整套設(shè)備集群進行深層學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練,同時支持多種常規(guī)訓(xùn)練任務(wù)類型; 卷積神經(jīng)網(wǎng)絡(luò)、受限玻爾茲曼機與復(fù)發(fā)性神經(jīng)網(wǎng)絡(luò)。各模型能夠進行同步(一一)或者異步(并行)訓(xùn)練,具體取決于實際問題的具體需求。Singa還利用Apache Zookeeper對集群設(shè)置進行了簡化。
Caffe
深層學(xué)習(xí)框架Caffe是一套“立足于表達、速度與模塊化”的解決方案。其最初誕生于2013年,主要用于機器視覺項目。Caffe自出現(xiàn)之后就一直將多種其它應(yīng)用囊括入自身,包括語音與多媒體。
由于優(yōu)先考量速度需求,因此Caffe全部利用C++編寫而成,同時支持CUDA加速機制。不過它也能夠根據(jù)需要在CPU與GPU處理流程間往來切換。其發(fā)行版中包含一系列免費與開源參考模型,主要面向各類常規(guī)典型任務(wù); 目前Caffe用戶社區(qū)亦在積極開發(fā)其它模型。
微軟Azure ML Studio
根據(jù)機器學(xué)習(xí)任務(wù)的實際數(shù)據(jù)規(guī)模與計算性能需求,云往往能夠成為機器學(xué)習(xí)應(yīng)用的一大理想運行環(huán)境。微軟公司已經(jīng)立足于Azure發(fā)布了其按需計費機器學(xué)習(xí)服務(wù),即Azure ML Studio,其能夠提供按月、按小時以及免費等分層版本。(微軟公司的HowOldRobot項目亦利用這套系統(tǒng)創(chuàng)建而成。)
Azure ML Studio允許用戶創(chuàng)建并訓(xùn)練模型,而后將其轉(zhuǎn)化為能夠由其它服務(wù)消費的API。每個用戶賬戶能夠為模型數(shù)據(jù)提供較高10 GB存儲容量,不過大家也可以將自己的Azure存儲資源連接至服務(wù)當中以承載規(guī)模更大的模型。目前可用算法已經(jīng)相當可觀,其分別由微軟自身以及其它第三方所提供。大家甚至不需要賬戶即可體驗這項服務(wù); 用戶可以匿名登錄并最多使用八小時Azure ML Studio。
Amazon Machine Learning
Amazon的這套面向云服務(wù)的通用型方案遵循既定模式。其提供核心用戶更為關(guān)注的運行基礎(chǔ),幫助他們立足于此尋求自身最需要的機器學(xué)習(xí)方案并加以交付。
Amazon Machine Learning同時也是云巨頭首次嘗試推出機器學(xué)習(xí)即服務(wù)方案。它能夠接入被保存在Amazon S3、Redshift或者RDS當中的數(shù)據(jù),并能夠運行二進制分類、多類分類或者數(shù)據(jù)遞歸以創(chuàng)建模型。然而,該服務(wù)高度依賴于Amazon本身。除了要求數(shù)據(jù)必須被存儲于Amazon之內(nèi)之外,其結(jié)果模型也無法進行導(dǎo)入與導(dǎo)出,另外訓(xùn)練模型的數(shù)據(jù)庫集亦不可超過100 GB。當然,這只是Amazon Machine Learning的起步成效,其也足以證明機器學(xué)習(xí)完全具備可行性——而非技術(shù)巨頭的奢侈玩物。
微軟分布式機器學(xué)習(xí)工具包
我們用于解決機器學(xué)習(xí)難題的設(shè)備數(shù)量越多,實際效果就越好——但將大量設(shè)備匯聚起來并開發(fā)出能夠順利跨越各設(shè)備運行的機器學(xué)習(xí)應(yīng)用絕非易事。微軟的DMTK(即分布式機器學(xué)習(xí)工具包)框架則能夠輕松跨越一整套系統(tǒng)集群解決多種機器學(xué)習(xí)任務(wù)類型的分發(fā)難題。
DMTK的計費機制歸屬于框架而非完整的開箱即用解決方案,因此其中實際涉及的算法數(shù)量相對較小。不過DMTK在設(shè)計上允許用戶進行后續(xù)擴展,同時發(fā)揮現(xiàn)有集群之內(nèi)的有限資源。舉例來說,集群中的每個節(jié)點都擁有一套本地緩存,其能夠由中央服務(wù)器節(jié)點為當前任務(wù)提供參數(shù),從而降低實際流量規(guī)模。
谷歌TensorFlow
與微軟的DMTK類似,谷歌TensorFlow是一套專門面向多節(jié)點規(guī)模設(shè)計而成的機器學(xué)習(xí)框架。與谷歌的Kubernetes類似,TensorFlow最初也是為谷歌內(nèi)部需求所量身打造,但谷歌公司最終決定將其以開源產(chǎn)品進行發(fā)布。
TensorFlow能夠?qū)崿F(xiàn)所謂數(shù)據(jù)流圖譜,其中批量數(shù)據(jù)(即‘tensor’,意為張量)可通過一系列由圖譜描述的算法進行處理。系統(tǒng)之內(nèi)往來移動的數(shù)據(jù)被稱為“流”,可由CPU或者GPU負責處理。谷歌公司的長期規(guī)劃在于通過第三方貢獻者推動TensorFlow項目的后續(xù)發(fā)展。
微軟計算網(wǎng)絡(luò)工具包
趁著DMTK的推出良機,微軟公司還發(fā)布了另一套機器學(xué)習(xí)工具包,即計算網(wǎng)絡(luò)工具包——或者簡稱CNTK。
CNTK與谷歌TensorFlow非常類似,因為它允許用戶通過有向圖的方式建立神經(jīng)網(wǎng)絡(luò)。另外,微軟還將其視為可與Caffe、Theano以及Torch等項目相媲美的技術(shù)成果。它的主要亮點在于出色的速度表現(xiàn),特別是以并行方式利用多CPU與多GPU的能力。微軟公司宣稱,其利用CNTK與Azure之上的GPU集群共同將Cortana語音識別服務(wù)訓(xùn)練的速度提升到了新的數(shù)量級。
最初作為微軟語音識別項目組成部分開發(fā)而成的CNTK,最終于2015年4月以開源項目形式走向公眾視野——但其隨后以更為寬松的MIT類別許可在GitHub進行了重新發(fā)布。
Veles (三星)
Veles是一套面向深層學(xué)習(xí)應(yīng)用程序的分布式平臺,而且與TensorFlow與DMTK一樣,它也由C++編寫而成——不過它利用Python在不同節(jié)點之間執(zhí)行自動化與協(xié)作任務(wù)。相關(guān)數(shù)據(jù)集可在被供給至該集群之前經(jīng)過分析與自動標準化調(diào)整,另外其還具備REST API以允許將各已訓(xùn)練模型立即添加至生產(chǎn)環(huán)境當中(假設(shè)大家的硬件已經(jīng)準備就緒)。
Veles并非單純利用Python作為其粘合代碼。IPython(如今已被更名為Jupyter)數(shù)據(jù)可視化與分析工具能夠?qū)碜訴eles集群的結(jié)果進行可視化處理與發(fā)布。三星公司希望能夠?qū)⒃擁椖恳蚤_源形式發(fā)布,從而推進其進一步發(fā)展——例如面向Windows與Mac OS X。
BrainStorm
作為瑞士盧加諾博士生Klaus Greff于2015年開發(fā)的技術(shù)成果,Brainstorm項目的目標在于“幫助深層神經(jīng)網(wǎng)絡(luò)實現(xiàn)高速、靈活與趣味性?!蹦壳捌湟呀?jīng)包含有一系列常見神經(jīng)網(wǎng)絡(luò)模型,例如LSTM。
Brainstorm采用Python代碼以提供兩套“hander”,或者稱之為數(shù)據(jù)管理API——其一來自Numpy庫以實現(xiàn)CPU計算,其二通過CUDA使用GPU資源。大部分工作由Python腳本完成,所以各位沒辦法指望其提供豐富的GUI前端——大家需要自己動手接入相關(guān)界面。不過從長期規(guī)劃角度看,其能夠使用“源自多種早期開源項目的學(xué)習(xí)經(jīng)驗”,同時利用“能夠與多種平臺及計算后端相兼容的新的設(shè)計元素?!?/p>
mlpack 2
mlpack這套基于C++的機器學(xué)習(xí)庫最初誕生于2011年,其設(shè)計傾向為“可擴展性、速度性與易用性,”該庫構(gòu)建者們指出。用戶可以通過命令行可執(zhí)行緩存運行mlpack以實現(xiàn)快速運行、“黑盒”操作或者通過C++ API完成其它更為復(fù)雜的任務(wù)。
其2.0版本則擁有一系列重構(gòu)與新特性,其中包括多種新算法,并對現(xiàn)有算法加以修改以提升運行速度或者縮小其體積。舉例來說,它能夠?qū)oost庫的隨機數(shù)生成器指向C++ 11的原生隨機功能。
mlpack的固有劣勢在于其缺乏除C++之外的任何其它語言綁定能力,這意味著從R語言到Python語言的各類其他用戶都無法使用mlpack——除非其他開發(fā)者推出了自己的對應(yīng)語言軟件包。目前該項目正積極添加對MatLab的支持能力,不過此類項目一般更傾向于直接面向各承載機器學(xué)習(xí)任務(wù)的主流環(huán)境。
Marvin
作為另一套剛剛誕生的方案,Marvin神經(jīng)網(wǎng)絡(luò)框架為Princeton Vision集團的開發(fā)成果。它可謂“為hack而生”,因為項目開發(fā)者們在其說明文檔當中直接做出這樣的描述,且僅僅依賴于C++編寫的數(shù)個文件及CUDA GPU框架即可運行。盡管其代碼本身的體積非常小巧,但其中仍然存在相當一部分能夠復(fù)用的部分,并可以將pull請求作為項目自身代碼進行貢獻。
Neon
Nervana公司專門構(gòu)建自己的深層學(xué)習(xí)硬件與軟件平臺,其推出了一套名為Neon的深層學(xué)習(xí)框架,并將其作為開源項目。該項目利用可插拔模塊以支持高強度負載在CPU、GPU或者Nervana自有定制化硬件上運行。
Neon主要由Python語言編寫而成,C++為其編寫了多條代碼片段并帶來可觀的運行速度。這樣的特性讓Neon立即成為各Python開發(fā)之數(shù)據(jù)科學(xué)場景或者其它綁定Python之框架的理想解決方案。
軟件開發(fā)技術(shù)群
興趣范圍包括:Java,C/C++,Python,PHP,Ruby,shell等各種語言開發(fā)經(jīng)驗交流,各種框架使用,外包項目機會,學(xué)習(xí)、培訓(xùn)、跳槽等交流
QQ群:26931708
Hadoop源代碼研究群
興趣范圍包括:Hadoop源代碼解讀,改進,優(yōu)化,分布式系統(tǒng)場景定制,與Hadoop有關(guān)的各種開源項目,總之就是玩轉(zhuǎn)Hadoop
QQ群:288410967?
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/4346.html
摘要:前端日報精選解密一專題之如何判斷兩個對象相等在項目上,為什么我們分別選擇了音頻框架教程發(fā)布中文深入理解筆記解構(gòu)使數(shù)據(jù)訪問更便捷周二放送緩存知乎專欄個非常實用的小技巧風(fēng)雨過后見彩虹個你可能不知道的屬性眾成翻譯如何在模板驅(qū)動表單中自 2017-08-09 前端日報 精選 解密 Angular WebWorker Renderer (一)JavaScript專題之如何判斷兩個對象相等在項目上...
摘要:關(guān)于請點擊這里隨著谷歌新機器學(xué)習(xí)平臺的首次展示,等于在這片沙地上首次插入了這面旗幟,后續(xù)會有比如,的等等有著高級機器學(xué)習(xí)和云基礎(chǔ)設(shè)施的公司比如紛至沓來。 在NEXT2016會議上,Google的Eric Schmidt提到Google所占最大的優(yōu)勢之一就是站在云計算下一個十年的前沿。它不是基礎(chǔ)設(shè)施或者軟件,也不像純數(shù)據(jù)一樣簡單。 Crowdsourced 智能,是個進化,可以創(chuàng)建更加智...
閱讀 2745·2021-11-18 10:02
閱讀 3475·2021-09-28 09:35
閱讀 2707·2021-09-22 15:12
閱讀 811·2021-09-22 15:08
閱讀 3349·2021-09-07 09:58
閱讀 3529·2021-08-23 09:42
閱讀 790·2019-08-30 12:53
閱讀 2146·2019-08-29 13:51