AI世代基石:盤(pán)點(diǎn)四大機(jī)器學(xué)習(xí)開(kāi)源框架
來(lái)源:
奇酷教育 發(fā)表於:
1 Theano Theano 在深度學(xué)習(xí)框架中是祖師級(jí)的存在。它的開(kāi)發(fā)始於 2007,早期開(kāi)發(fā)者包括傳奇人物 Yoshua Bengio 和 Ian Goo
1. Theano
Theano 在深度學(xué)習(xí)框架中是祖師級(jí)的存在。它的開(kāi)發(fā)始於 2007,早期開(kāi)發(fā)者包括傳奇人物 Yoshua Bengio 和 Ian Goodfellow。
Theano 基於 Python,是一個(gè)擅長(zhǎng)處理多維數(shù)組的庫(kù)(這方面它類(lèi)似於 NumPy)。當(dāng)與其他深度學(xué)習(xí)庫(kù)結(jié)合起來(lái),它十分適合數(shù)據(jù)探索。它為執(zhí)行深度學(xué)習(xí)中大規(guī)模算法的運(yùn)算所設(shè)計(jì)。其實(shí),它可以被更好地理解為一個(gè)數(shù)學(xué)表達(dá)式的編譯器:用符號(hào)式語言定義你想要的結(jié)果,該框架會(huì)對(duì)你的程序進(jìn)行編譯,來(lái)高效運(yùn)行於 GPU 或 CPU。
它與後來(lái)出現(xiàn)的 Tensorflow 功能十分相似(或者應(yīng)該說(shuō),Tensorflow 類(lèi)似 Theano ),因而兩(liǎng)者常常被放在一起比較。它們本身都偏底層,同樣的,Theano 像是一個(gè)研究平臺(tái)多過(guò)是一個(gè)深度學(xué)習(xí)庫(kù)。你需要從底層開(kāi)始做許多工作,來(lái)創(chuàng)建你需要的模型。比方說(shuō),Theano 沒有神經(jīng)網(wǎng)絡(luò)的分級(jí)。
但隨著這些年的發(fā)展,大量基於 Theano 的開(kāi)源深度學(xué)習(xí)庫(kù)被開(kāi)發(fā)出來(lái),包括 Keras, Lasagne 和 Blocks。這些更高層級(jí)的 wrapper API,能大幅減少開(kāi)發(fā)時(shí)間以及過(guò)程中的麻煩。甚至,據(jù)調(diào)查統(tǒng)計(jì)所知,很少開(kāi)發(fā)者會(huì)使用“裸奔”的 Theano,多數(shù)人需要輔助的 API。順便說(shuō)一句,Theano 是一整套生態(tài)系統(tǒng),別只用它裸奔,然後抱怨不好用。
2. Caffe
這又是一個(gè)祖師級(jí)的深度學(xué)習(xí)框架,2013 年就已問(wèn)世。
它的全稱(chēng)是 “Convolution Architecture For Feature Extraction”,意為“用於特徵提取的卷積架構(gòu )”,很明白地體現(xiàn)了它的用途。Caffe 的創(chuàng)始人,是加州大學(xué)伯克利分校的中國(guó)籍博士生賈揚清。當(dāng)時(shí)賈在伯克利計(jì)算機(jī)視覺與學(xué)習(xí)中心做研究。博士畢業(yè)後,他先後在谷歌和 Facebook 工作。
在 AI 開(kāi)發(fā)者圈子中,Caffe 可以說(shuō)是無(wú)人不知、無(wú)人不曉。據(jù) GitHub 最新的機(jī)器學(xué)習(xí)項(xiàng)目熱度排名,Caffe 僅位列 Tensorflow 之後,雄踞第二。它是一個(gè)被廣(guǎng)泛使用的機(jī)器視覺庫(kù),把 Matlab 執(zhí)行快速卷積網(wǎng)絡(luò)的方式帶到 C 和 C++。雖然 Caffe 被部分開(kāi)發(fā)者看做是通用框架,但它的設(shè)計(jì)初衷是計(jì)算機(jī)視覺--並不適於其他深度學(xué)習(xí)應(yīng)用,比如文字、和處理時(shí)間序列數(shù)據(jù)。
Caffe 的主要用途:利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分類(lèi)。這方面它代表了業(yè)內(nèi)一流水平,是開(kāi)發(fā)者的首選。
說(shuō)到 Caffe,就不得不提 Model Zoo。後者是在 Caffe 基礎(chǔ)上開(kāi)發(fā)出的一系列模型的匯聚之地。因此,開(kāi)發(fā)者使用 Caffe 最大的好處是:能在 Model Zoo 海量的、事先訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)中,選擇貼近自己使用需求的直接下載,並立刻就能用。
業(yè)內(nèi)人士普遍認(rèn)為,Caffe 適合於以實(shí)現(xiàn)基礎(chǔ)算法為主要目的的工業(yè)應(yīng)用,有利於快速開(kāi)發(fā)。但對(duì)於處理較特殊的任務(wù),它存在靈活性不足的問(wèn)題--為模型做調(diào)整常常需要用 C++ 和 CUDA,雖然 Python 和 Matlab 也能做些小調(diào)整。
3. Torch
相比其他開(kāi)源框架,Torch 是一個(gè)非主流。
沒錯,說(shuō)的就是它的開(kāi)發(fā)語言:基於1990 年代誕生於巴西的 Lua,而非機(jī)器學(xué)習(xí)界廣(guǎng)泛採用的 Python。其實(shí) Lua 和Python 都屬於比較容易入門(mén)的語言。但後者明顯已經(jīng)統(tǒng)治了機(jī)器學(xué)習(xí)領(lǐng)域,尤其在學(xué)界。而企業(yè)界的軟體工程師最熟悉的是 Java,對(duì) Lua 也比較陌生。這導(dǎo )致了 Torch 推廣(guǎng)的困難。因此,雖然 Torch 功能強(qiáng)大,但並不是大眾開(kāi)發(fā)者的菜。
那麼它強(qiáng)大在哪裡?
首先,Torch 非常適用於卷積神經(jīng)網(wǎng)絡(luò)。它的開(kāi)發(fā)者認(rèn)為,Torch 的原生交互界面比其他框架用起來(lái)更自然、更得心應(yīng)手。
其次,第三方的擴展工具包提供了豐富的遞歸神經(jīng)網(wǎng)絡(luò)( RNN)模型。
因為這些強(qiáng)項(xiàng),許多網(wǎng)際網(wǎng)路巨頭開(kāi)發(fā)了定製版的 Torch,以助力他們的 AI 研究。這其中包括 Facebook、Twitter,和被谷歌招安前的 DeepMind。
與 Caffe 相比,在 Torch 裡定義一個(gè)新層級(jí)比它要容易,因為你不需要寫(xiě) C++ 代碼。和 TensorFlow 和 Theano 比起來(lái),Torch 的靈活度更高,因為它是命令式的;而前兩(liǎng)者是陳述式的(declarative),你必須 declare 一個(gè)計(jì)算圖。這使得在 Torch 上進(jìn)行束搜索(beam search)這樣的操作要比它們容易得多。
4. SciKit-learn
SciKit-learn 是老牌的開(kāi)源 Python 算法框架,始於 2007 年的 Google Summer of Code 項(xiàng)目,最初由 David Cournapeau 開(kāi)發(fā)。
它是一個(gè)簡(jiǎn)潔、高效的算法庫(kù),提供一系列的監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)的算法,以用於數(shù)據(jù)挖掘和數(shù)據(jù)分析。SciKit-learn 幾乎覆蓋了機(jī)器學(xué)習(xí)的所有主流算法,這為其在 Python 開(kāi)源世界中奠定了江湖地位。
它的算法庫(kù)建立在 SciPy (Scientific Python) 之上--你必須先安裝 SciPy 才能使用 SciKit-learn 。它的框架中一共包括了:
NumPy: 基礎(chǔ)的多維數(shù)組包
SciPy: 科學(xué)計(jì)算的基礎(chǔ)庫(kù)
Matplotlib: 全面的 2D/3D 測(cè)繪
IPython: 改進(jìn)的交互控制器
Sympy: 符號(hào)數(shù)學(xué)
Pandas:數(shù)據(jù)結(jié)構(gòu )和分析
它命名的由來(lái):SciPy 的擴展和模塊在傳統(tǒng)上被命名為 SciKits。而提供學(xué)習(xí)算法的模組就被命名為 scikit-learn。
它與 Python 世界另一大算法框架--TensorFlow 的主要區(qū)別是:TensorFlow 更底層。而 SciKit-learn 提供了執(zhí)行機(jī)器學(xué)習(xí)算法的模塊化方案,很多算法模型直接就能用。
從這份統(tǒng)計(jì)中不難看出,不少機(jī)器學(xué)習(xí)的框架都是基於Python架構(gòu )的,Python已逐漸成為人們公認(rèn)的最合適人工智慧開(kāi)發(fā)的語言,奇酷教育Python課程,除了講授Python基礎(chǔ)知識,還會(huì)將人工智慧、機(jī)器學(xué)習(xí)開(kāi)發(fā)插入其中,同時(shí)講解Python的最佳實(shí)踐,讓學(xué)員不僅僅學(xué)會(huì)編程的基本語法,還能學(xué)到資深工程師的編程經(jīng)驗(yàn),了解一線(xiàn )網(wǎng)際網(wǎng)路公司用到的Python工具和開(kāi)源項(xiàng)目,熟悉Python高手的編程風(fēng)格。在這裡,你不光能夠學(xué)會(huì)如何編寫(xiě)程序,還能夠學(xué)會(huì)如何編寫(xiě)高質(zhì)量的程序,一躍成為專(zhuān)業(yè)的工程師,更會(huì)成為最早接觸人工智慧的從業(yè)人員,一舉站在前沿科技浪尖,前程無(wú)限!