日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

助你玩轉(zhuǎn)機(jī)器學(xué)習(xí)技術(shù)的十三套框架

 picojames 2016-02-16

  過(guò)去幾年以來(lái),機(jī)器學(xué)習(xí)已經(jīng)開(kāi)始以前所未有的方式步入主流層面。這種趨勢(shì)并非單純由低成本云環(huán)境乃至極為強(qiáng)大的GPU硬件所推動(dòng); 除此之外,面向機(jī)器學(xué)習(xí)的可用框架也迎來(lái)了爆發(fā)式增長(zhǎng)。此類框架全部為開(kāi)源成果,但更重要的是它們?cè)谠O(shè)計(jì)方面將最為復(fù)雜的部分從機(jī)器學(xué)習(xí)中抽象了出來(lái),從而保證相關(guān)技術(shù)方案能夠?yàn)楦嚅_(kāi)發(fā)人員服務(wù)。


  在今天的文章中,我們將共同了解十三款機(jī)器學(xué)習(xí)框架,一部分去年剛剛發(fā)布、另一部分則在不久前進(jìn)行了全部升級(jí)。而這些框架中最值得關(guān)注的特性,在于它們正致力于通過(guò)簡(jiǎn)單而新穎的方式應(yīng)對(duì)與機(jī)器學(xué)習(xí)相關(guān)的種種挑戰(zhàn)。


Apache Spark MLlib


  Apache Spark可能算得上當(dāng)前Hadoop家族當(dāng)中最為耀眼的成員,但這套內(nèi)存內(nèi)數(shù)據(jù)處理框架在誕生之初實(shí)際與Hadoop并無(wú)關(guān)系,且憑借著自身出色的特性在Hadoop生態(tài)系統(tǒng)之外闖出一片天地。Spark目前已經(jīng)成為一款即時(shí)可用的機(jī)器學(xué)習(xí)工具,這主要?dú)w功于其能夠以高速將算法庫(kù)應(yīng)用至內(nèi)存內(nèi)數(shù)據(jù)當(dāng)中。


  Spark仍處于不斷發(fā)展當(dāng)中,而Spark當(dāng)中的可用算法亦在持續(xù)增加及改進(jìn)。去年的1.5版本添加了眾多新算法,對(duì)現(xiàn)有算法做出改進(jìn),同時(shí)進(jìn)一步通過(guò)持續(xù)流程恢復(fù)了MLlib中的Spark ML任務(wù)。


Apache Singa


  這套“深層學(xué)習(xí)”框架能夠支持多種高強(qiáng)度機(jī)器學(xué)習(xí)功能,具體包括自然語(yǔ)言處理與圖像識(shí)別。Singa最近被納入Apache孵化器項(xiàng)目,這套開(kāi)源框架致力于降低大規(guī)模數(shù)據(jù)的深層學(xué)習(xí)模型訓(xùn)練難度。


  Singa提供一套簡(jiǎn)單的編程模式,用于跨越一整套設(shè)備集群進(jìn)行深層學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練,同時(shí)支持多種常規(guī)訓(xùn)練任務(wù)類型; 卷積神經(jīng)網(wǎng)絡(luò)、受限玻爾茲曼機(jī)與復(fù)發(fā)性神經(jīng)網(wǎng)絡(luò)。各模型能夠進(jìn)行同步(一一)或者異步(并行)訓(xùn)練,具體取決于實(shí)際問(wèn)題的具體需求。Singa還利用Apache Zookeeper對(duì)集群設(shè)置進(jìn)行了簡(jiǎn)化。


Caffe


  深層學(xué)習(xí)框架Caffe是一套“立足于表達(dá)、速度與模塊化”的解決方案。其最初誕生于2013年,主要用于機(jī)器視覺(jué)項(xiàng)目。Caffe自出現(xiàn)之后就一直將多種其它應(yīng)用囊括入自身,包括語(yǔ)音與多媒體。


  由于優(yōu)先考量速度需求,因此Caffe全部利用C++編寫而成,同時(shí)支持CUDA加速機(jī)制。不過(guò)它也能夠根據(jù)需要在CPU與GPU處理流程間往來(lái)切換。其發(fā)行版中包含一系列免費(fèi)與開(kāi)源參考模型,主要面向各類常規(guī)典型任務(wù); 目前Caffe用戶社區(qū)亦在積極開(kāi)發(fā)其它模型。


微軟Azure ML Studio


  根據(jù)機(jī)器學(xué)習(xí)任務(wù)的實(shí)際數(shù)據(jù)規(guī)模與計(jì)算性能需求,云往往能夠成為機(jī)器學(xué)習(xí)應(yīng)用的一大理想運(yùn)行環(huán)境。微軟公司已經(jīng)立足于Azure發(fā)布了其按需計(jì)費(fèi)機(jī)器學(xué)習(xí)服務(wù),即Azure ML Studio,其能夠提供按月、按小時(shí)以及免費(fèi)等分層版本。(微軟公司的HowOldRobot項(xiàng)目亦利用這套系統(tǒng)創(chuàng)建而成。)


  Azure ML Studio允許用戶創(chuàng)建并訓(xùn)練模型,而后將其轉(zhuǎn)化為能夠由其它服務(wù)消費(fèi)的API。每個(gè)用戶賬戶能夠?yàn)槟P蛿?shù)據(jù)提供最高10 GB存儲(chǔ)容量,不過(guò)大家也可以將自己的Azure存儲(chǔ)資源連接至服務(wù)當(dāng)中以承載規(guī)模更大的模型。目前可用算法已經(jīng)相當(dāng)可觀,其分別由微軟自身以及其它第三方所提供。大家甚至不需要賬戶即可體驗(yàn)這項(xiàng)服務(wù); 用戶可以匿名登錄并最多使用八小時(shí)Azure ML Studio。


Amazon Machine Learning


  Amazon的這套面向云服務(wù)的通用型方案遵循既定模式。其提供核心用戶最為關(guān)注的運(yùn)行基礎(chǔ),幫助他們立足于此尋求自身最需要的機(jī)器學(xué)習(xí)方案并加以交付。


  Amazon Machine Learning同時(shí)也是云巨頭首次嘗試推出機(jī)器學(xué)習(xí)即服務(wù)方案。它能夠接入被保存在Amazon S3、Redshift或者RDS當(dāng)中的數(shù)據(jù),并能夠運(yùn)行二進(jìn)制分類、多類分類或者數(shù)據(jù)遞歸以創(chuàng)建模型。然而,該服務(wù)高度依賴于Amazon本身。除了要求數(shù)據(jù)必須被存儲(chǔ)于Amazon之內(nèi)之外,其結(jié)果模型也無(wú)法進(jìn)行導(dǎo)入與導(dǎo)出,另外訓(xùn)練模型的數(shù)據(jù)庫(kù)集亦不可超過(guò)100 GB。當(dāng)然,這只是Amazon Machine Learning的起步成效,其也足以證明機(jī)器學(xué)習(xí)完全具備可行性——而非技術(shù)巨頭的奢侈玩物。


微軟分布式機(jī)器學(xué)習(xí)工具包


  我們用于解決機(jī)器學(xué)習(xí)難題的設(shè)備數(shù)量越多,實(shí)際效果就越好——但將大量設(shè)備匯聚起來(lái)并開(kāi)發(fā)出能夠順利跨越各設(shè)備運(yùn)行的機(jī)器學(xué)習(xí)應(yīng)用絕非易事。微軟的DMTK(即分布式機(jī)器學(xué)習(xí)工具包)框架則能夠輕松跨越一整套系統(tǒng)集群解決多種機(jī)器學(xué)習(xí)任務(wù)類型的分發(fā)難題。


  DMTK的計(jì)費(fèi)機(jī)制歸屬于框架而非完整的開(kāi)箱即用解決方案,因此其中實(shí)際涉及的算法數(shù)量相對(duì)較小。不過(guò)DMTK在設(shè)計(jì)上允許用戶進(jìn)行后續(xù)擴(kuò)展,同時(shí)發(fā)揮現(xiàn)有集群之內(nèi)的有限資源。舉例來(lái)說(shuō),集群中的每個(gè)節(jié)點(diǎn)都擁有一套本地緩存,其能夠由中央服務(wù)器節(jié)點(diǎn)為當(dāng)前任務(wù)提供參數(shù),從而降低實(shí)際流量規(guī)模。


谷歌TensorFlow


  與微軟的DMTK類似,谷歌TensorFlow是一套專門面向多節(jié)點(diǎn)規(guī)模設(shè)計(jì)而成的機(jī)器學(xué)習(xí)框架。與谷歌的Kubernetes類似,TensorFlow最初也是為谷歌內(nèi)部需求所量身打造,但谷歌公司最終決定將其以開(kāi)源產(chǎn)品進(jìn)行發(fā)布。


  TensorFlow能夠?qū)崿F(xiàn)所謂數(shù)據(jù)流圖譜,其中批量數(shù)據(jù)(即‘tensor’,意為張量)可通過(guò)一系列由圖譜描述的算法進(jìn)行處理。系統(tǒng)之內(nèi)往來(lái)移動(dòng)的數(shù)據(jù)被稱為“流”,可由CPU或者GPU負(fù)責(zé)處理。谷歌公司的長(zhǎng)期規(guī)劃在于通過(guò)第三方貢獻(xiàn)者推動(dòng)TensorFlow項(xiàng)目的后續(xù)發(fā)展。


微軟計(jì)算網(wǎng)絡(luò)工具包


  趁著DMTK的推出良機(jī),微軟公司還發(fā)布了另一套機(jī)器學(xué)習(xí)工具包,即計(jì)算網(wǎng)絡(luò)工具包——或者簡(jiǎn)稱CNTK。


  CNTK與谷歌TensorFlow非常類似,因?yàn)樗试S用戶通過(guò)有向圖的方式建立神經(jīng)網(wǎng)絡(luò)。另外,微軟還將其視為可與Caffe、Theano以及Torch等項(xiàng)目相媲美的技術(shù)成果。它的主要亮點(diǎn)在于出色的速度表現(xiàn),特別是以并行方式利用多CPU與多GPU的能力。微軟公司宣稱,其利用CNTK與Azure之上的GPU集群共同將Cortana語(yǔ)音識(shí)別服務(wù)訓(xùn)練的速度提升到了新的數(shù)量級(jí)。


  最初作為微軟語(yǔ)音識(shí)別項(xiàng)目組成部分開(kāi)發(fā)而成的CNTK,最終于2015年4月以開(kāi)源項(xiàng)目形式走向公眾視野——但其隨后以更為寬松的MIT類別許可在GitHub進(jìn)行了重新發(fā)布。


Veles (三星)


  Veles是一套面向深層學(xué)習(xí)應(yīng)用程序的分布式平臺(tái),而且與TensorFlow與DMTK一樣,它也由C++編寫而成——不過(guò)它利用Python在不同節(jié)點(diǎn)之間執(zhí)行自動(dòng)化與協(xié)作任務(wù)。相關(guān)數(shù)據(jù)集可在被供給至該集群之前經(jīng)過(guò)分析與自動(dòng)標(biāo)準(zhǔn)化調(diào)整,另外其還具備REST API以允許將各已訓(xùn)練模型立即添加至生產(chǎn)環(huán)境當(dāng)中(假設(shè)大家的硬件已經(jīng)準(zhǔn)備就緒)。


  Veles并非單純利用Python作為其粘合代碼。IPython(如今已被更名為Jupyter)數(shù)據(jù)可視化與分析工具能夠?qū)?lái)自Veles集群的結(jié)果進(jìn)行可視化處理與發(fā)布。三星公司希望能夠?qū)⒃擁?xiàng)目以開(kāi)源形式發(fā)布,從而推進(jìn)其進(jìn)一步發(fā)展——例如面向Windows與Mac OS X。


Brainstorm


  作為瑞士盧加諾博士生Klaus Greff于2015年開(kāi)發(fā)的技術(shù)成果,Brainstorm項(xiàng)目的目標(biāo)在于“幫助深層神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)高速、靈活與趣味性?!蹦壳捌湟呀?jīng)包含有一系列常見(jiàn)神經(jīng)網(wǎng)絡(luò)模型,例如LSTM。


  Brainstorm采用Python代碼以提供兩套“hander”,或者稱之為數(shù)據(jù)管理API——其一來(lái)自Numpy庫(kù)以實(shí)現(xiàn)CPU計(jì)算,其二通過(guò)CUDA使用GPU資源。大部分工作由Python腳本完成,所以各位沒(méi)辦法指望其提供豐富的GUI前端——大家需要自己動(dòng)手接入相關(guān)界面。不過(guò)從長(zhǎng)期規(guī)劃角度看,其能夠使用“源自多種早期開(kāi)源項(xiàng)目的學(xué)習(xí)經(jīng)驗(yàn)”,同時(shí)利用“能夠與多種平臺(tái)及計(jì)算后端相兼容的新的設(shè)計(jì)元素?!?/span>


mlpack 2


  mlpack這套基于C++的機(jī)器學(xué)習(xí)庫(kù)最初誕生于2011年,其設(shè)計(jì)傾向?yàn)椤翱蓴U(kuò)展性、速度性與易用性,”該庫(kù)構(gòu)建者們指出。用戶可以通過(guò)命令行可執(zhí)行緩存運(yùn)行mlpack以實(shí)現(xiàn)快速運(yùn)行、“黑盒”操作或者通過(guò)C++ API完成其它更為復(fù)雜的任務(wù)。


  其2.0版本則擁有一系列重構(gòu)與新特性,其中包括多種新算法,并對(duì)現(xiàn)有算法加以修改以提升運(yùn)行速度或者縮小其體積。舉例來(lái)說(shuō),它能夠?qū)oost庫(kù)的隨機(jī)數(shù)生成器指向C++ 11的原生隨機(jī)功能。


  mlpack的固有劣勢(shì)在于其缺乏除C++之外的任何其它語(yǔ)言綁定能力,這意味著從R語(yǔ)言到Python語(yǔ)言的各類其他用戶都無(wú)法使用mlpack——除非其他開(kāi)發(fā)者推出了自己的對(duì)應(yīng)語(yǔ)言軟件包。目前該項(xiàng)目正積極添加對(duì)MatLab的支持能力,不過(guò)此類項(xiàng)目一般更傾向于直接面向各承載機(jī)器學(xué)習(xí)任務(wù)的主流環(huán)境。


Marvin


  作為另一套剛剛誕生的方案,Marvin神經(jīng)網(wǎng)絡(luò)框架為Princeton Vision集團(tuán)的開(kāi)發(fā)成果。它可謂“為hack而生”,因?yàn)轫?xiàng)目開(kāi)發(fā)者們?cè)谄湔f(shuō)明文檔當(dāng)中直接做出這樣的描述,且僅僅依賴于C++編寫的數(shù)個(gè)文件及CUDA GPU框架即可運(yùn)行。盡管其代碼本身的體積非常小巧,但其中仍然存在相當(dāng)一部分能夠復(fù)用的部分,并可以將pull請(qǐng)求作為項(xiàng)目自身代碼進(jìn)行貢獻(xiàn)。


Neon


  Nervana公司專門構(gòu)建自己的深層學(xué)習(xí)硬件與軟件平臺(tái),其推出了一套名為Neon的深層學(xué)習(xí)框架,并將其作為開(kāi)源項(xiàng)目。該項(xiàng)目利用可插拔模塊以支持高強(qiáng)度負(fù)載在CPU、GPU或者Nervana自有定制化硬件上運(yùn)行。


  Neon主要由Python語(yǔ)言編寫而成,C++為其編寫了多條代碼片段并帶來(lái)可觀的運(yùn)行速度。這樣的特性讓Neon立即成為各Python開(kāi)發(fā)之?dāng)?shù)據(jù)科學(xué)場(chǎng)景或者其它綁定Python之框架的理想解決方案。


  原文標(biāo)題:


  13 frameworks for mastering machine learning

 

  【51CTO.com獨(dú)家譯文,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明來(lái)源】


點(diǎn)擊下方“閱讀原文”查看更多關(guān)于環(huán)境云的動(dòng)態(tài)!
↓↓↓

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多