9款GitHub最流行的開源機(jī)器學(xué)習(xí)項(xiàng)目

學(xué)號(hào):1600030024 姓名:王冠雄

【嵌牛導(dǎo)讀】:現(xiàn)在機(jī)器學(xué)習(xí)逐漸成為行業(yè)熱門扯键,經(jīng)過二十幾年的發(fā)展颂龙,機(jī)器學(xué)習(xí)目前也有了十分廣泛的應(yīng)用瓜富,如:數(shù)據(jù)挖掘鳍咱、計(jì)算機(jī)視覺、自然語言處理与柑、生物特征識(shí)別谤辜、搜索引擎蓄坏、醫(yī)學(xué)診斷、DNA序列測(cè)序丑念、語音和手寫識(shí)別涡戳、戰(zhàn)略游戲和機(jī)器人等方面。

【嵌牛鼻子】:開源脯倚,機(jī)器學(xué)習(xí)渔彰,用法簡(jiǎn)介

【嵌牛提問】:GitHub上最流行的機(jī)器學(xué)習(xí)項(xiàng)目?項(xiàng)目簡(jiǎn)介推正?

【嵌牛正文】:


1. TensorFlow

TensorFlow 是谷歌發(fā)布的第二代機(jī)器學(xué)習(xí)系統(tǒng)恍涂。據(jù)谷歌宣稱,在部分基準(zhǔn)測(cè)試中植榕,TensorFlow的處理速度比第一代的DistBelief加快了2倍之多再沧。

具體的講,TensorFlow是一個(gè)利用數(shù)據(jù)流圖(Data Flow Graphs)進(jìn)行數(shù)值計(jì)算的開源軟件庫:圖中的節(jié)點(diǎn)(Nodes)代表數(shù)學(xué)運(yùn)算操作尊残,同時(shí)圖中的邊(Edges)表示節(jié)點(diǎn)之間相互流通的多維數(shù)組炒瘸,即張量(Tensors)。這種靈活的架構(gòu)可以讓使用者在多樣化的將計(jì)算部署在臺(tái)式機(jī)寝衫、服務(wù)器或者移動(dòng)設(shè)備的一個(gè)或多個(gè)CPU上顷扩,而且無需重寫代碼;同時(shí)任一基于梯度的機(jī)器學(xué)習(xí)算法均可夠借鑒TensorFlow的自動(dòng)分化(Auto-differentiation);此外通過靈活的Python接口,要在TensorFlow中表達(dá)想法也變得更為簡(jiǎn)單竞端。

TensorFlow最初由Google Brain小組(該小組隸屬于Google’s Machine Intelligence研究機(jī)構(gòu))的研究員和工程師開發(fā)出來的,開發(fā)目的是用于進(jìn)行機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)的研究庙睡。但該系統(tǒng)的通用性足以使其廣泛用于其他計(jì)算領(lǐng)域事富。

目前Google 內(nèi)部已在大量使用 AI 技術(shù),包括 Google App 的語音識(shí)別乘陪、Gmail 的自動(dòng)回復(fù)功能统台、Google Photos 的圖片搜索等都在使用 TensorFlow 。

開發(fā)語言:C++

許可協(xié)議:Apache License 2.0

GitHub項(xiàng)目地址:https://github.com/tensorflow/tensorflow

2. Scikit-Learn

Scikit-Learn是用于機(jī)器學(xué)習(xí)的Python 模塊啡邑,它建立在SciPy之上贱勃。該項(xiàng)目由David Cournapeau 于2007年創(chuàng)立,當(dāng)時(shí)項(xiàng)目名為Google Summer of Code谤逼,自此之后贵扰,眾多志愿者都為此做出了貢獻(xiàn)。

主要特點(diǎn):

操作簡(jiǎn)單流部、高效的數(shù)據(jù)挖掘和數(shù)據(jù)分析

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

建立在NumPy、SciPy 和 matplotlib基礎(chǔ)上

Scikit-Learn的基本功能主要被分為六個(gè)部分:分類枝冀、回歸舞丛、聚類耘子、數(shù)據(jù)降維、模型選擇球切、數(shù)據(jù)預(yù)處理谷誓,具體可以參考官方網(wǎng)站上的文檔。經(jīng)過測(cè)試吨凑,Scikit-Learn可在 Python 2.6捍歪、Python 2.7 和 Python 3.5上運(yùn)行。除此之外怀骤,它也應(yīng)該可在Python 3.3和Python 3.4上運(yùn)行费封。

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

開發(fā)語言:Python

許可協(xié)議:3-Clause BSD license

GitHub項(xiàng)目地址:https://github.com/scikit-learn/scikit-learn

3. Caffe

Caffe 是由神經(jīng)網(wǎng)絡(luò)中的表達(dá)式蒋伦、速度弓摘、及模塊化產(chǎn)生的深度學(xué)習(xí)框架。后來它通過伯克利視覺與學(xué)習(xí)中心(BVLC)和社區(qū)參與者的貢獻(xiàn)痕届,得以發(fā)展形成了以一個(gè)伯克利主導(dǎo)韧献,然后加之Github和Caffe-users郵件所組成的一個(gè)比較松散和自由的社區(qū)。

Caffe是一個(gè)基于C++/CUDA架構(gòu)框架研叫,開發(fā)者能夠利用它自由的組織網(wǎng)絡(luò)锤窑,目前支持卷積神經(jīng)網(wǎng)絡(luò)和全連接神經(jīng)網(wǎng)絡(luò)(人工神經(jīng)網(wǎng)絡(luò))。在Linux上嚷炉,C++可以通過命令行來操作接口渊啰,對(duì)于MATLAB、Python也有專門的接口申屹,運(yùn)算上支持CPU和GPU直接無縫切換绘证。

Caffe的特點(diǎn):

易用性:Caffe的模型與相應(yīng)優(yōu)化都是以文本形式而非代碼形式給出, Caffe給出了模型的定義哗讥、最優(yōu)化設(shè)置以及預(yù)訓(xùn)練的權(quán)重嚷那,方便快速使用;

速度快:能夠運(yùn)行最棒的模型與海量的數(shù)據(jù);

Caffe可與cuDNN結(jié)合使用,可用于測(cè)試AlexNet模型杆煞,在K40上處理一張圖片只需要1.17ms;

模塊化:便于擴(kuò)展到新的任務(wù)和設(shè)置上;

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

目前Caffe應(yīng)用實(shí)踐主要有數(shù)據(jù)整理魏宽、設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練結(jié)果决乎、基于現(xiàn)有訓(xùn)練模型队询,使用Caffe直接識(shí)別。

開發(fā)語言:C++

許可協(xié)議: BSD 2-Clause license

GitHub項(xiàng)目地址:https://github.com/BVLC/caffe

4. PredictionIO

PredictionIO 是面向開發(fā)人員和數(shù)據(jù)科學(xué)家的開源機(jī)器學(xué)習(xí)服務(wù)器构诚。它支持事件采集娘摔、算法調(diào)度、評(píng)估唤反,以及經(jīng)由REST APIs的預(yù)測(cè)結(jié)果查詢凳寺。使用者可以通過PredictionIO做一些預(yù)測(cè)鸭津,比如個(gè)性化推薦、發(fā)現(xiàn)內(nèi)容等肠缨。PredictionIO 提供20個(gè)預(yù)設(shè)算法逆趋,開發(fā)者可以直接將它們運(yùn)行于自己的數(shù)據(jù)上。幾乎任何應(yīng)用與PredictionIO集成都可以變得更“聰明”晒奕。其主要特點(diǎn)如下所示:

基于已有數(shù)據(jù)可預(yù)測(cè)用戶行為;

使用者可選擇你自己的機(jī)器學(xué)習(xí)算法;

無需擔(dān)心可擴(kuò)展性氏捞,擴(kuò)展性好流强。

PredictionIO 基于 REST API(應(yīng)用程序接口)標(biāo)準(zhǔn)句旱,不過它還包含 Ruby争占、Python、Scala闷袒、Java 等編程語言的 SDK(軟件開發(fā)工具包)坑律。其開發(fā)語言是Scala語言,數(shù)據(jù)庫方面使用的是MongoDB數(shù)據(jù)庫囊骤,計(jì)算系統(tǒng)采用Hadoop系統(tǒng)架構(gòu)晃择。

開發(fā)語言:Scala

許可協(xié)議: Apache License 2.0

GitHub項(xiàng)目地址:https://github.com/PredictionIO/PredictionIO

5. Brain

Brain是 JavaScript 中的 神經(jīng)網(wǎng)絡(luò)庫。以下例子說明使用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]

當(dāng) brain 用于節(jié)點(diǎn)中也物,可使用npm安裝:

npm install brain

當(dāng) brain 用于瀏覽器宫屠,下載最新的 brain.js 文件。訓(xùn)練計(jì)算代價(jià)比較昂貴滑蚯,所以應(yīng)該離線訓(xùn)練網(wǎng)絡(luò)(或者在 Worker 上)浪蹂,并使用 toFunction() 或者 toJSON()選項(xiàng),以便將預(yù)訓(xùn)練網(wǎng)絡(luò)插入到網(wǎng)站中告材。

開發(fā)語言:JavaScript

GitHub項(xiàng)目地址:https://github.com/harthur/brain

6. Keras

Keras是極其精簡(jiǎn)并高度模塊化的神經(jīng)網(wǎng)絡(luò)庫坤次,在TensorFlow 或 Theano 上都能夠運(yùn)行,是一個(gè)高度模塊化的神經(jīng)網(wǎng)絡(luò)庫创葡,支持GPU和CPU運(yùn)算浙踢。Keras可以說是Python版的Torch7绢慢,對(duì)于快速構(gòu)建CNN模型非常方便灿渴,同時(shí)也包含了一些最新文獻(xiàn)的算法,比如Batch Noramlize胰舆,文檔教程也很全骚露,在官網(wǎng)上作者都是直接給例子淺顯易懂。Keras也支持保存訓(xùn)練好的參數(shù)缚窿,然后加載已經(jīng)訓(xùn)練好的參數(shù)棘幸,進(jìn)行繼續(xù)訓(xùn)練。

Keras側(cè)重于開發(fā)快速實(shí)驗(yàn)倦零,用可能最少延遲實(shí)現(xiàn)從理念到結(jié)果的轉(zhuǎn)變误续,即為做好一項(xiàng)研究的關(guān)鍵吨悍。

當(dāng)需要如下要求的深度學(xué)習(xí)的庫時(shí),就可以考慮使用Keras:

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

同時(shí)支持卷積網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)育瓜,以及兩者之間的組合;

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

可在CPU 和 GPU 上無縫運(yùn)行。

Keras目前支持 Python 2.7-3.5栽烂。

開發(fā)語言:Python

GitHub項(xiàng)目地址:https://github.com/fchollet/keras

7. CNTK

CNTK(Computational Network Toolkit )是一個(gè)統(tǒng)一的深度學(xué)習(xí)工具包躏仇,該工具包通過一個(gè)有向圖將神經(jīng)網(wǎng)絡(luò)描述為一系列計(jì)算步驟。在有向圖中腺办,葉節(jié)點(diǎn)表示輸入值或網(wǎng)絡(luò)參數(shù)焰手,其他節(jié)點(diǎn)表示該節(jié)點(diǎn)輸入之上的矩陣運(yùn)算。

CNTK 使得實(shí)現(xiàn)和組合如前饋型神經(jīng)網(wǎng)絡(luò)DNN怀喉、卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs/LSTMs)等流行模式變得非常容易书妻。同時(shí)它實(shí)現(xiàn)了跨多GPU 和服務(wù)器自動(dòng)分化和并行化的隨機(jī)梯度下降(SGD,誤差反向傳播)學(xué)習(xí)磺送。

下圖將CNTK的處理速度(每秒處理的幀數(shù))和其他四個(gè)知名的工具包做了比較了驻子。配置采用的是四層全連接的神經(jīng)網(wǎng)絡(luò)(參見基準(zhǔn)測(cè)試腳本)和一個(gè)大小是8192 的高效mini batch。在相同的硬件和相應(yīng)的最新公共軟件版本(2015.12.3前的版本)的基礎(chǔ)上得到如下結(jié)果:

CNTK自2015年四月就已開源估灿。

開發(fā)語言:C++

GitHub項(xiàng)目地址:https://github.com/Microsoft/CNTK

8. Convnetjs

ConvNetJS是利用Javascript實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)崇呵,同時(shí)還具有非常不錯(cuò)的基于瀏覽器的Demo。它最重要的用途是幫助深度學(xué)習(xí)初學(xué)者更快馅袁、更直觀的理解算法域慷。

它目前支持:

常見的神經(jīng)網(wǎng)絡(luò)模塊(全連接層,非線性);

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

指定和訓(xùn)練圖像處理的卷積網(wǎng)絡(luò);

基于Deep Q Learning的實(shí)驗(yàn)強(qiáng)化學(xué)習(xí)模型汗销。

一些在線示例:

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

其他:

開發(fā)語言:Javascript

許可協(xié)議:MIT License

GitHub項(xiàng)目地址:https://github.com/karpathy/convnetjs

9. Pattern

Pattern是Python的一個(gè)Web挖掘模塊犹褒。擁有以下工具:

數(shù)據(jù)挖掘:網(wǎng)絡(luò)服務(wù)(Google、Twitter弛针、Wikipedia)叠骑、網(wǎng)絡(luò)爬蟲、HTML DOM解析;

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

機(jī)器學(xué)習(xí):向量空間模型茧跋、聚類慰丛、分類(KNN、SVM瘾杭、 Perceptron);

網(wǎng)絡(luò)分析:圖形中心性和可視化诅病。

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

開發(fā)語言:Python

許可協(xié)議:BSD license

GitHub項(xiàng)目地址:https://github.com/clips/pattern

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芥永,一起剝皮案震驚了整個(gè)濱河市银萍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌恤左,老刑警劉巖贴唇,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異飞袋,居然都是意外死亡戳气,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門巧鸭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓶您,“玉大人,你說我怎么就攤上這事纲仍⊙礁ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵郑叠,是天一觀的道長(zhǎng)夜赵。 經(jīng)常有香客問我,道長(zhǎng)乡革,這世上最難降的妖魔是什么寇僧? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮沸版,結(jié)果婚禮上嘁傀,老公的妹妹穿的比我還像新娘。我一直安慰自己视粮,他們只是感情好细办,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蕾殴,像睡著了一般笑撞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上区宇,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天娃殖,我揣著相機(jī)與錄音值戳,去河邊找鬼议谷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛堕虹,可吹牛的內(nèi)容都是我干的卧晓。 我是一名探鬼主播芬首,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼逼裆!你這毒婦竟也來了郁稍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤胜宇,失蹤者是張志新(化名)和其女友劉穎耀怜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桐愉,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡财破,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了从诲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片左痢。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖系洛,靈堂內(nèi)的尸體忽然破棺而出俊性,到底是詐尸還是另有隱情,我是刑警寧澤描扯,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布定页,位于F島的核電站,受9級(jí)特大地震影響绽诚,放射性物質(zhì)發(fā)生泄漏拯勉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一憔购、第九天 我趴在偏房一處隱蔽的房頂上張望宫峦。 院中可真熱鬧,春花似錦玫鸟、人聲如沸导绷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽妥曲。三九已至,卻和暖如春钦购,著一層夾襖步出監(jiān)牢的瞬間檐盟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工押桃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留葵萎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像羡忘,于是被迫代替她去往敵國(guó)和親谎痢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容