9款GitHub最流行的開源機器學習項目

學號:1600030024 姓名:王冠雄

【嵌牛導讀】:現在機器學習逐漸成為行業熱門,經過二十幾年的發展,機器學習目前也有了十分廣泛的應用,如:數據挖掘、計算機視覺、自然語言處理、生物特征識別、搜索引擎、醫學診斷、DNA序列測序、語音和手寫識別、戰略游戲和機器人等方面。

【嵌牛鼻子】:開源,機器學習,用法簡介

【嵌牛提問】:GitHub上最流行的機器學習項目?項目簡介?

【嵌牛正文】:


1. TensorFlow

TensorFlow 是谷歌發布的第二代機器學習系統。據谷歌宣稱,在部分基準測試中,TensorFlow的處理速度比第一代的DistBelief加快了2倍之多。

具體的講,TensorFlow是一個利用數據流圖(Data Flow Graphs)進行數值計算的開源軟件庫:圖中的節點(Nodes)代表數學運算操作,同時圖中的邊(Edges)表示節點之間相互流通的多維數組,即張量(Tensors)。這種靈活的架構可以讓使用者在多樣化的將計算部署在臺式機、服務器或者移動設備的一個或多個CPU上,而且無需重寫代碼;同時任一基于梯度的機器學習算法均可夠借鑒TensorFlow的自動分化(Auto-differentiation);此外通過靈活的Python接口,要在TensorFlow中表達想法也變得更為簡單。

TensorFlow最初由Google Brain小組(該小組隸屬于Google’s Machine Intelligence研究機構)的研究員和工程師開發出來的,開發目的是用于進行機器學習和深度神經網絡的研究。但該系統的通用性足以使其廣泛用于其他計算領域。

目前Google 內部已在大量使用 AI 技術,包括 Google App 的語音識別、Gmail 的自動回復功能、Google Photos 的圖片搜索等都在使用 TensorFlow 。

開發語言:C++

許可協議:Apache License 2.0

GitHub項目地址:https://github.com/tensorflow/tensorflow

2. Scikit-Learn

Scikit-Learn是用于機器學習的Python 模塊,它建立在SciPy之上。該項目由David Cournapeau 于2007年創立,當時項目名為Google Summer of Code,自此之后,眾多志愿者都為此做出了貢獻。

主要特點:

操作簡單、高效的數據挖掘和數據分析

無訪問限制,在任何情況下可重新使用

建立在NumPy、SciPy 和 matplotlib基礎上

Scikit-Learn的基本功能主要被分為六個部分:分類、回歸、聚類、數據降維、模型選擇、數據預處理,具體可以參考官方網站上的文檔。經過測試,Scikit-Learn可在 Python 2.6、Python 2.7 和 Python 3.5上運行。除此之外,它也應該可在Python 3.3和Python 3.4上運行。

注:Scikit-Learn以前被稱為Scikits.Learn。

開發語言:Python

許可協議:3-Clause BSD license

GitHub項目地址:https://github.com/scikit-learn/scikit-learn

3. Caffe

Caffe 是由神經網絡中的表達式、速度、及模塊化產生的深度學習框架。后來它通過伯克利視覺與學習中心(BVLC)和社區參與者的貢獻,得以發展形成了以一個伯克利主導,然后加之Github和Caffe-users郵件所組成的一個比較松散和自由的社區。

Caffe是一個基于C++/CUDA架構框架,開發者能夠利用它自由的組織網絡,目前支持卷積神經網絡和全連接神經網絡(人工神經網絡)。在Linux上,C++可以通過命令行來操作接口,對于MATLAB、Python也有專門的接口,運算上支持CPU和GPU直接無縫切換。

Caffe的特點:

易用性:Caffe的模型與相應優化都是以文本形式而非代碼形式給出, Caffe給出了模型的定義、最優化設置以及預訓練的權重,方便快速使用;

速度快:能夠運行最棒的模型與海量的數據;

Caffe可與cuDNN結合使用,可用于測試AlexNet模型,在K40上處理一張圖片只需要1.17ms;

模塊化:便于擴展到新的任務和設置上;

使用者可通過Caffe提供的各層類型來定義自己的模型;

目前Caffe應用實踐主要有數據整理、設計網絡結構、訓練結果、基于現有訓練模型,使用Caffe直接識別。

開發語言:C++

許可協議: BSD 2-Clause license

GitHub項目地址:https://github.com/BVLC/caffe

4. PredictionIO

PredictionIO 是面向開發人員和數據科學家的開源機器學習服務器。它支持事件采集、算法調度、評估,以及經由REST APIs的預測結果查詢。使用者可以通過PredictionIO做一些預測,比如個性化推薦、發現內容等。PredictionIO 提供20個預設算法,開發者可以直接將它們運行于自己的數據上。幾乎任何應用與PredictionIO集成都可以變得更“聰明”。其主要特點如下所示:

基于已有數據可預測用戶行為;

使用者可選擇你自己的機器學習算法;

無需擔心可擴展性,擴展性好。

PredictionIO 基于 REST API(應用程序接口)標準,不過它還包含 Ruby、Python、Scala、Java 等編程語言的 SDK(軟件開發工具包)。其開發語言是Scala語言,數據庫方面使用的是MongoDB數據庫,計算系統采用Hadoop系統架構。

開發語言:Scala

許可協議: Apache License 2.0

GitHub項目地址:https://github.com/PredictionIO/PredictionIO

5. Brain

Brain是 JavaScript 中的 神經網絡庫。以下例子說明使用Brain來近似 XOR 功能:

var net = new brain.NeuralNetwork();

net.train([{input: [0, 0], output: [0]},

{input: [0, 1], output: [1]},

{input: [1, 0], output: [1]},

{input: [1, 1], output: [0]}]);

var output = net.run([1, 0]); // [0.987]

當 brain 用于節點中,可使用npm安裝:

npm install brain

當 brain 用于瀏覽器,下載最新的 brain.js 文件。訓練計算代價比較昂貴,所以應該離線訓練網絡(或者在 Worker 上),并使用 toFunction() 或者 toJSON()選項,以便將預訓練網絡插入到網站中。

開發語言:JavaScript

GitHub項目地址:https://github.com/harthur/brain

6. Keras

Keras是極其精簡并高度模塊化的神經網絡庫,在TensorFlow 或 Theano 上都能夠運行,是一個高度模塊化的神經網絡庫,支持GPU和CPU運算。Keras可以說是Python版的Torch7,對于快速構建CNN模型非常方便,同時也包含了一些最新文獻的算法,比如Batch Noramlize,文檔教程也很全,在官網上作者都是直接給例子淺顯易懂。Keras也支持保存訓練好的參數,然后加載已經訓練好的參數,進行繼續訓練。

Keras側重于開發快速實驗,用可能最少延遲實現從理念到結果的轉變,即為做好一項研究的關鍵。

當需要如下要求的深度學習的庫時,就可以考慮使用Keras:

考慮到簡單快速的原型法(通過總體模塊性、精簡性以及可擴展性);

同時支持卷積網絡和遞歸網絡,以及兩者之間的組合;

支持任意連接方案(包括多輸入多輸出訓練);

可在CPU 和 GPU 上無縫運行。

Keras目前支持 Python 2.7-3.5。

開發語言:Python

GitHub項目地址:https://github.com/fchollet/keras

7. CNTK

CNTK(Computational Network Toolkit )是一個統一的深度學習工具包,該工具包通過一個有向圖將神經網絡描述為一系列計算步驟。在有向圖中,葉節點表示輸入值或網絡參數,其他節點表示該節點輸入之上的矩陣運算。

CNTK 使得實現和組合如前饋型神經網絡DNN、卷積神經網絡(CNN)和循環神經網絡(RNNs/LSTMs)等流行模式變得非常容易。同時它實現了跨多GPU 和服務器自動分化和并行化的隨機梯度下降(SGD,誤差反向傳播)學習。

下圖將CNTK的處理速度(每秒處理的幀數)和其他四個知名的工具包做了比較了。配置采用的是四層全連接的神經網絡(參見基準測試腳本)和一個大小是8192 的高效mini batch。在相同的硬件和相應的最新公共軟件版本(2015.12.3前的版本)的基礎上得到如下結果:

CNTK自2015年四月就已開源。

開發語言:C++

GitHub項目地址:https://github.com/Microsoft/CNTK

8. Convnetjs

ConvNetJS是利用Javascript實現的神經網絡,同時還具有非常不錯的基于瀏覽器的Demo。它最重要的用途是幫助深度學習初學者更快、更直觀的理解算法。

它目前支持:

常見的神經網絡模塊(全連接層,非線性);

分類(SVM/ SOFTMAX)和回歸(L2)的成本函數;

指定和訓練圖像處理的卷積網絡;

基于Deep Q Learning的實驗強化學習模型。

一些在線示例:

Convolutional Neural Network on MNIST digits

Convolutional Neural Network on CIFAR-10

Toy 2D data

Toy 1D regression

Training an Autoencoder on MNIST digits

Deep Q Learning Reinforcement Learning demo + Image Regression (“Painting”) + Comparison of SGD/Adagrad/Adadelta on MNIST

其他:

開發語言:Javascript

許可協議:MIT License

GitHub項目地址:https://github.com/karpathy/convnetjs

9. Pattern

Pattern是Python的一個Web挖掘模塊。擁有以下工具:

數據挖掘:網絡服務(Google、Twitter、Wikipedia)、網絡爬蟲、HTML DOM解析;

自然語言處理:詞性標注工具(Part-Of-Speech Tagger)、N元搜索(n-gram search)、情感分析(sentiment analysis)、WordNet;

機器學習:向量空間模型、聚類、分類(KNN、SVM、 Perceptron);

網絡分析:圖形中心性和可視化。

其文檔完善,目前擁有50多個案例和350多個單元測試。 Pattern目前只支持Python 2.5+(尚不支持Python 3),該模塊除了在Pattern.vector模塊中使用LSA外沒有其他任何外部要求,因此只需安裝 NumPy (僅在Mac OS X上默認安裝)。

開發語言:Python

許可協議:BSD license

GitHub項目地址:https://github.com/clips/pattern

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容