機(jī)器學(xué)習(xí)毫無(wú)疑問是當(dāng)今最熱的話題谒养,它已經(jīng)滲透到生活的方方面面,在移動(dòng)互聯(lián)網(wǎng)中混不懂點(diǎn)機(jī)器學(xué)習(xí)都不好意思明郭,說幾個(gè)能看的到的买窟,經(jīng)常用郵箱吧,是不是感覺垃圾郵件比N年前變少了达址,無(wú)聊了和siri聊過天不蔑祟,想坐一下無(wú)人駕駛汽車嗎,手累了用臉解個(gè)鎖沉唠,智能化產(chǎn)品推薦是不是讓你更懶了】涟埽看不到的就更多了:信用卡欺詐監(jiān)測(cè)保證你的交易安全满葛,股票交易/量化投資(知道你的高收益理財(cái)怎么來(lái)的嗎径簿?),手勢(shì)識(shí)別(用過海豚瀏覽器的手勢(shì)嗎)嘀韧,還有醫(yī)學(xué)分析等等篇亭,巨頭們?yōu)榱嗽谖磥?lái)占領(lǐng)先機(jī),前仆后繼的開源他們的機(jī)器學(xué)習(xí)框架锄贷,加速了人類進(jìn)入智能時(shí)代的步伐(說什么译蒂,機(jī)器人?)
Facebook:用于Torch的模塊庫(kù)fbcunn (2015-01-17 開源)
fbcunn可以替代Torch的默認(rèn)模塊谊却,它們構(gòu)建在Nvidia的cuFFT庫(kù)(一個(gè)基于CUDA的庫(kù)柔昼,用于深度神經(jīng)網(wǎng)絡(luò))之上,可以在更短的時(shí)間內(nèi)訓(xùn)練更大規(guī)模的神經(jīng)網(wǎng)絡(luò)模型炎辨,它對(duì)NVIDIA的GPU進(jìn)行了優(yōu)化捕透。一部分可以用來(lái)訓(xùn)練大型計(jì)算機(jī)視覺系統(tǒng)。部分模塊也可以用來(lái)訓(xùn)練處理不同類型數(shù)據(jù)的模型碴萧。既可以進(jìn)行文本識(shí)別乙嘀、圖像識(shí)別,也能用于語(yǔ)言模型的訓(xùn)練破喻。部分模塊將大型卷積神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練速度提升了23.5倍虎谢。
fbcunn基于Fast Training of Convolutional Networks through FFTs這篇論文中的想法構(gòu)建了這些模塊,F(xiàn)AIR(Facebook人工智能實(shí)驗(yàn)室)的主任Yann LeCun是論文的合著者之一曹质。與cuDNN相比嘉冒,在卷積核較小的情況下(3x3),fbcunn的速度提升可達(dá)1.84倍咆繁;而在卷積核較大的情況下(5x5)讳推,速度提升可達(dá)23.5倍。
Torch和fbcunn的最早的用途之一:圖片分類玩般,它分類過ImageNet的120萬(wàn)張圖片银觅,可以參考這個(gè)地址:https://github.com/soumith/imagenet-multiGPU.torch
參考:
http://torch.ch
https://github.com/torch/
https://github.com/facebook/fbcunn
https://research.facebook.com/blog/879898285375829/fair-open-sources-deep-learning-modules-for-torch/
微軟:DMTK(2015-11-16 開源)
DMTK由參數(shù)服務(wù)器和客戶端SDK兩部分構(gòu)成。參數(shù)服務(wù)器支持存儲(chǔ)混合數(shù)據(jù)結(jié)構(gòu)模型坏为、接受并聚合工作節(jié)點(diǎn)服務(wù)器的數(shù)據(jù)模型更新究驴、控制模型同步邏輯;客戶端SDK負(fù)責(zé)維護(hù)節(jié)點(diǎn)模型緩存(與全局模型服務(wù)器同步)匀伏、本地訓(xùn)練和模型通訊之間的流水線控制以及片狀調(diào)度大模型訓(xùn)練洒忧。它包含DMTK框架、LightLDA和分布式詞向量(Word Embedding)三個(gè)組件够颠。
DMTK采用了傳統(tǒng)的客戶端/服務(wù)器架構(gòu)熙侍,有多個(gè)服務(wù)器實(shí)例運(yùn)行在多臺(tái)機(jī)器上負(fù)責(zé)維護(hù)全局模型參數(shù),而訓(xùn)練例程(routines)則使用客戶端API訪問并更新這些參數(shù)。為了適應(yīng)不同的集群環(huán)境蛉抓,DMTK框架支持兩種進(jìn)程間的通信機(jī)制:MPI和ZMQ庆尘。應(yīng)用程序端不需要修改任何代碼就能夠在這兩種方式之間切換。DMTK支持Windows和Linux兩種操作系統(tǒng)巷送。
DMTK則是使用C++編寫的驶忌,提供了一個(gè)客戶端API和SDK。 DMTK的官網(wǎng) 對(duì)DMTK框架笑跛、LightLDA付魔、分布式詞向量的應(yīng)用場(chǎng)景、下載飞蹂、安裝几苍、配置、運(yùn)行以及性能等方面都做了詳盡的介紹(見參考部分)晤柄。
DMTK主要用于自然語(yǔ)言處理方面擦剑,比如:文本分類與聚類、話題識(shí)別以及情感分析等
參考:
http://www.dmtk.io
https://github.com/Microsoft/DMTK
Google:TensorFlow(2015-11-10 開源)
TensorFlow 是一個(gè)用來(lái)編寫和執(zhí)行機(jī)器學(xué)習(xí)算法的工具芥颈。計(jì)算在數(shù)據(jù)流圖中完成惠勒,圖中的節(jié)點(diǎn)進(jìn)行數(shù)學(xué)運(yùn)算,邊界是在各個(gè)節(jié)點(diǎn)中交換的張量(Tensors--多維數(shù)組)爬坑。TensorFlow負(fù)責(zé)在不同的設(shè)備纠屋、內(nèi)核以及線程上異步地執(zhí)行代碼,目前支持CNN盾计、RNN和LSTM等圖像售担、語(yǔ)音和自然語(yǔ)言處理(NLP)領(lǐng)域最流行的深度神經(jīng)網(wǎng)絡(luò)模型。
Google已將TensorFlow用于GMail(SmartReply)署辉、搜索(RankBrain)族铆、圖片(生成圖像分類模型--Inception Image Classification Model)、翻譯器(字符識(shí)別)等產(chǎn)品哭尝。
TensorFlow能夠在臺(tái)式機(jī)哥攘、服務(wù)器或者移動(dòng)設(shè)備的CPU和GPU上運(yùn)行,也可以使用Docker容器部署到云環(huán)境中材鹦。在處理圖像識(shí)別逝淹、語(yǔ)音識(shí)別和語(yǔ)言翻譯等任務(wù)時(shí),TensorFlow依賴于配備圖像處理單元(GPU)的機(jī)器和被用于渲染游戲圖像的芯片桶唐,它對(duì)這些芯片依賴度比想象中的高栅葡。當(dāng)前開源的版本能夠運(yùn)行在單機(jī)上,暫不支持集群尤泽。操作系統(tǒng)方面欣簇,TensorFlow能夠運(yùn)行在Linux和MacOS上规脸。
TensorFlow的核心是使用C++編寫的,有完整的Python API和C++接口醉蚁,同時(shí)還有一個(gè)基于C的客戶端API燃辖。
參考:
https://www.tensorflow.org
https://github.com/tensorflow/tensorflow
IBM:SystemML (2015-06 開源)
SystemML是靈活的鬼店,可伸縮機(jī)器學(xué)習(xí)(ML) 語(yǔ)言网棍,使用Java編寫「局牵可實(shí)現(xiàn) 可定制算法(述性分析滥玷、分類、聚類巍棱、回歸惑畴、矩陣分解及生存分析等), 多個(gè)執(zhí)行模式(單獨(dú)運(yùn)行航徙、Hadoop 和 Spark )如贷, 自動(dòng)優(yōu)化。它由 IBM 的 Almaden 實(shí)驗(yàn)室花了近 10年開發(fā)而成的機(jī)器學(xué)習(xí)技術(shù)到踏。
SystemML語(yǔ)言杠袱,聲明式機(jī)器學(xué)習(xí) (DML)。SystemML 包含線性代數(shù)原語(yǔ)窝稿,統(tǒng)計(jì)功能和 ML 指定結(jié)構(gòu)楣富,可以更容易也更原生的表達(dá) ML 算法。算法通過 R 類型或者 Python 類型的語(yǔ)法進(jìn)行表達(dá)伴榔。DML 通過提供靈活的定制分析表達(dá)和獨(dú)立于底層輸入格式和物理數(shù)據(jù)表示的數(shù)據(jù)顯著提升數(shù)據(jù)科學(xué)的生產(chǎn)力纹蝴。
SystemML 運(yùn)行環(huán)境支持 Windows、Linux 及 MacOS踪少,可支持單機(jī)和分布式部署塘安。單機(jī)部署顯然有利于本地開發(fā)的工作,而分布式部署則可以真正發(fā)揮機(jī)器學(xué)習(xí)的威力援奢,支持的框架包括 Hadoop 和 Spark
眾所周知的IBM AIWaston融入了不少SystemML技術(shù)(不了解的同學(xué)可以看下《Jeopardy!》節(jié)目兼犯,來(lái)領(lǐng)教到沃森的威力)
參考:
http://systemml.apache.org
https://github.com/apache/incubator-systemml
三星:VELES
VELES 是分布式深度學(xué)習(xí)應(yīng)用系統(tǒng),號(hào)稱:用戶只需要提供參數(shù)萝究,剩下的我來(lái)搞免都,VELES使用 Python 編寫,使用OpenCL 或者 CUDA帆竹,利用基于Flow 的編程方式绕娘。
參考:
https://velesnet.ml
https://github.com/Samsung/veles
百度:期待ING。栽连。险领。
巨頭之所以開源自己耗時(shí)多年打造的機(jī)器學(xué)習(xí)框架侨舆,是希望能夠加速在人工智能方面的部署,在人工智能日益重要的未來(lái)?yè)屨几嗟闹鲗?dǎo)權(quán)绢陌。而對(duì)于機(jī)器人創(chuàng)業(yè)公司來(lái)說挨下,當(dāng)這么多巨頭將機(jī)器學(xué)習(xí)平臺(tái)開源后,還有什么理由做不好機(jī)器人脐湾。