大公司開源機器學習框架

jopen 8年前發布 | 39K 次閱讀 機器學習

機器學習毫無疑問是當今最熱的話題,它已經滲透到生活的方方面面,在移動互聯網中混不懂點機器學習都不好意思,說幾個能看的到的,經常用郵箱吧,是不是感覺垃圾郵件比N年前變少了,無聊了和siri聊過天不,想坐一下無人駕駛汽車嗎,手累了用臉解個鎖,智能化產品推薦是不是讓你更懶了。看不到的就更多了:信用卡欺詐監測保證你的交易安全,股票交易/量化投資(知道你的高收益理財怎么來的嗎?),手勢識別(用過海豚瀏覽器的手勢嗎),還有醫學分析等等,巨頭們為了在未來占領先機,前仆后繼的開源他們的機器學習框架,加速了人類進入智能時代的步伐(說什么,機器人?)

非死book:用于Torch的模塊庫fbcunn (2015-01-17 開源)
fbcunn可以替代Torch的默認模塊,它們構建在Nvidia的cuFFT庫(一個基于CUDA的庫,用于深度神經網絡)之上,可以在更短的時間內訓練更大規模的神經網絡模型,它對NVIDIA的GPU進行了優化。一部分可以用來訓練大型計算機視覺系統。部分模塊也可以用來訓練處理不同類型數據的模型。既可以進行文本識別、圖像識別,也能用于語言模型的訓練。部分模塊將大型卷積神經網絡模型的訓練速度提升了23.5倍。
fbcunn基于Fast Training of Convolutional Networks through FFTs這篇論文中的想法構建了這些模塊,FAIR(非死book人工智能實驗室)的主任Yann LeCun是論文的合著者之一。與cuDNN相比,在卷積核較小的情況下(3x3),fbcunn的速度提升可達1.84倍;而在卷積核較大的情況下(5x5),速度提升可達23.5倍。
Torch和fbcunn的最早的用途之一:圖片分類,它分類過ImageNet的120萬張圖片,可以參考這個地址:https://github.com/soumith/imagenet-multiGPU.torch

參考:
http://torch.ch
https://github.com/torch/
https://github.com/非死book/fbcunn
https://research.非死book.com/blog/879898285375829/fair-open-sources-deep-learning-modules-for-torch/

微軟:DMTK(2015-11-16 開源)
DMTK由參數服務器和客戶端SDK兩部分構成。參數服務器支持存儲混合數據結構模型、接受并聚合工作節點服務器的數據模型更新、控制模型同步邏輯;客戶端SDK負責維護節點模型緩存(與全局模型服務器同步)、本地訓練和模型通訊之間的流水線控制以及片狀調度大模型訓練。它包含DMTK框架、LightLDA和分布式詞向量(Word Embedding)三個組件。
DMTK采用了傳統的客戶端/服務器架構,有多個服務器實例運行在多臺機器上負責維護全局模型參數,而訓練例程(routines)則使用客戶端API訪問并更新這些參數。為了適應不同的集群環境,DMTK框架支持兩種進程間的通信機制:MPI和ZMQ。應用程序端不需要修改任何代碼就能夠在這兩種方式之間切換。DMTK支持Windows和Linux兩種操作系統。
DMTK則是使用C++編寫的,提供了一個客戶端API和SDK。 DMTK的官網 對DMTK框架、LightLDA、分布式詞向量的應用場景、下載、安裝、配置、運行以及性能等方面都做了詳盡的介紹(見參考部分)。
DMTK主要用于自然語言處理方面,比如:文本分類與聚類、話題識別以及情感分析等

參考:
http://www.dmtk.io
https://github.com/Microsoft/DMTK

Google:TensorFlow(2015-11-10 開源)
TensorFlow 是一個用來編寫和執行機器學習算法的工具。計算在數據流圖中完成,圖中的節點進行數學運算,邊界是在各個節點中交換的張量(Tensors--多維數組)。TensorFlow負責在不同的設備、內核以及線程上異步地執行代碼,目前支持CNN、RNN和LSTM等圖像、語音和自然語言處理(NLP)領域最流行的深度神經網絡模型。
Google已將TensorFlow用于GMail(SmartReply)、搜索(RankBrain)、圖片(生成圖像分類模型--Inception Image Classification Model)、翻譯器(字符識別)等產品。
TensorFlow能夠在臺式機、服務器或者移動設備的CPU和GPU上運行,也可以使用Docker容器部署到云環境中。在處理圖像識別、語音識別和語言翻譯等任務時,TensorFlow依賴于配備圖像處理單元(GPU)的機器和被用于渲染游戲圖像的芯片,它對這些芯片依賴度比想象中的高。當前開源的版本能夠運行在單機上,暫不支持集群。操作系統方面,TensorFlow能夠運行在Linux和MacOS上。
TensorFlow的核心是使用C++編寫的,有完整的Python API和C++接口,同時還有一個基于C的客戶端API。
參考:

https://www.tensorflow.org
https://github.com/tensorflow/tensorflow

IBM:SystemML (2015-06 開源)
SystemML是靈活的,可伸縮機器學習(ML) 語言,使用Java編寫。可實現 可定制算法(述性分析、分類、聚類、回歸、矩陣分解及生存分析等), 多個執行模式(單獨運行、Hadoop 和 Spark ), 自動優化。它由 IBM 的 Almaden 實驗室花了近 10年開發而成的機器學習技術。
SystemML語言,聲明式機器學習 (DML)。SystemML 包含線性代數原語,統計功能和 ML 指定結構,可以更容易也更原生的表達 ML 算法。算法通過 R 類型或者 Python 類型的語法進行表達。DML 通過提供靈活的定制分析表達和獨立于底層輸入格式和物理數據表示的數據顯著提升數據科學的生產力。
SystemML 運行環境支持 Windows、Linux 及 MacOS,可支持單機和分布式部署。單機部署顯然有利于本地開發的工作,而分布式部署則可以真正發揮機器學習的威力,支持的框架包括 Hadoop 和 Spark
眾所周知的IBM AIWaston融入了不少SystemML技術(不了解的同學可以看下《Jeopardy!》節目,來領教到沃森的威力)
參考:
http://systemml.apache.org
https://github.com/apache/incubator-systemml

三星:VELES
VELES 是分布式深度學習應用系統,號稱:用戶只需要提供參數,剩下的我來搞,VELES使用 Python 編寫,使用OpenCL 或者 CUDA,利用基于Flow 的編程方式。
參考:
https://velesnet.ml
https://github.com/Samsung/veles

百度:期待ING。。。

巨頭之所以開源自己耗時多年打造的機器學習框架,是希望能夠加速在人工智能方面的部署,在人工智能日益重要的未來搶占更多的主導權。而對于機器人創業公司來說,當這么多巨頭將機器學習平臺開源后,還有什么理由做不好機器人。

來自: http://www.jianshu.com/p/06567707c066

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!