人工智能已經(jīng)存在很長(zhǎng)時(shí)間了。然而,由于這一領(lǐng)域的巨大進(jìn)步,近年來(lái)它已成為一個(gè)流行語(yǔ)。人工智能曾經(jīng)被稱為是屬于書呆子和天才的領(lǐng)域,但由于各種庫(kù)和框架的發(fā)展,它已經(jīng)成為一個(gè)相對(duì)“友好”的IT領(lǐng)域,并且已經(jīng)有很多人參與其中。
在這篇文章中,我們將研究用于人工智能的優(yōu)質(zhì)庫(kù),它們的優(yōu)缺點(diǎn)以及一些特征。讓我們潛入并探索這些人工智能庫(kù)的世界!
1. TensorFlow
“使用數(shù)據(jù)流圖計(jì)算可伸縮機(jī)器學(xué)習(xí)”。
語(yǔ)言:C ++或Python。
當(dāng)初步接觸AI時(shí),你可能會(huì)聽(tīng)到的第一個(gè)框架就是Google的TensorFlow。
TensorFlow是一個(gè)使用數(shù)據(jù)流圖進(jìn)行數(shù)值計(jì)算的開(kāi)源軟件。這個(gè)框架以擁有允許在任何CPU或GPU上進(jìn)行計(jì)算的架構(gòu)而聞名,無(wú)論是臺(tái)式機(jī)、服務(wù)器還是移動(dòng)設(shè)備。這個(gè)框架在Python編程語(yǔ)言中是可用的。
TensorFlow通過(guò)稱為節(jié)點(diǎn)的數(shù)據(jù)層進(jìn)行排序,并根據(jù)所獲得的信息做出決定。
優(yōu)點(diǎn):
·使用易于學(xué)習(xí)的語(yǔ)言(Python)。
·使用計(jì)算圖抽象。
·用于可視化的TensorBoard的可用性。
缺點(diǎn):
·這很慢,因?yàn)镻ython不是語(yǔ)言中最快的。
·缺乏許多預(yù)先訓(xùn)練的模型。
·不完全開(kāi)源。
2.微軟的CNTK
“開(kāi)源深度學(xué)習(xí)工具包”。
語(yǔ)言:C ++。
我們可以稱之為微軟對(duì)Google的TensorFlow的回應(yīng)。
微軟的計(jì)算網(wǎng)絡(luò)工具包是一個(gè)提高計(jì)算網(wǎng)絡(luò)模塊化和維護(hù)分離計(jì)算網(wǎng)絡(luò),提供學(xué)習(xí)算法和模型描述的庫(kù)。
在需要大量服務(wù)器進(jìn)行操作的情況下,CNTK可以同時(shí)利用多臺(tái)服務(wù)器。
據(jù)說(shuō)它的功能與Google的TensorFlow相近; 但是,它的速度更快。
優(yōu)點(diǎn):
·這是非常靈活的。
·允許分布式訓(xùn)練。
·支持C ++,C#,Java和Python。
缺點(diǎn):
·一種網(wǎng)絡(luò)描述語(yǔ)言(NDL)來(lái)實(shí)現(xiàn)的新的語(yǔ)言。
·缺乏可視化。
3. Theano
“數(shù)值計(jì)算庫(kù)”
語(yǔ)言:Python。
Theano是TensorFlow的強(qiáng)有力競(jìng)爭(zhēng)者,是一個(gè)功能強(qiáng)大的Python庫(kù),允許以高效率的方式進(jìn)行涉及多維數(shù)組的數(shù)值操作。
該庫(kù)透明地使用GPU來(lái)執(zhí)行數(shù)據(jù)密集型計(jì)算而不是CPU,因此操作效率很高。
出于這個(gè)原因,Theano已經(jīng)為大規(guī)模的計(jì)算密集型操作提供動(dòng)力大約十年。
然而,于2017年9月,宣布Theano的主要發(fā)展可能會(huì)停止于2017年11月公布1.0版本后。
這并不意味著它是一個(gè)不太強(qiáng)大的庫(kù),它仍然值得深入學(xué)習(xí)。
優(yōu)點(diǎn):
正確優(yōu)化CPU和GPU。
高效的數(shù)值計(jì)算任務(wù)。
缺點(diǎn):
與其他庫(kù)相比,原生Theano有點(diǎn)低級(jí)。
需要與其他庫(kù)一起使用以獲得高度的抽象級(jí)別。
AWS上有點(diǎn)小bug。
4.Caffe
“快速,開(kāi)放的深度學(xué)習(xí)框架”
語(yǔ)言:C ++。
Caffe是一個(gè)強(qiáng)大的深度學(xué)習(xí)框架。
像這個(gè)清單上的其他框架一樣,深度學(xué)習(xí)的研究速度非???。
借助Caffe,你可以非常輕松地構(gòu)建用于圖像分類的卷積神經(jīng)網(wǎng)絡(luò)(CNN)。 Caffe在GPU上運(yùn)行良好,這有助于在運(yùn)行期間提高速度。
Caffe主要類別:
優(yōu)點(diǎn):
Python和MATLAB的綁定可用。
性能強(qiáng)大。
無(wú)需編寫代碼即可進(jìn)行模型訓(xùn)練。
缺點(diǎn):
對(duì)于復(fù)發(fā)性網(wǎng)絡(luò)不好。
對(duì)于新體系架構(gòu)來(lái)說(shuō)不夠好
5.Keras
“針對(duì)人類的深度學(xué)習(xí)”
語(yǔ)言:Python。
Keras是一個(gè)用Python編寫的開(kāi)源的神經(jīng)網(wǎng)絡(luò)庫(kù)。
與TensorFlow、CNTK和Theano不同,Keras不是一個(gè)端到端的機(jī)器學(xué)習(xí)框架。
相反,它作為一個(gè)接口,提供了一個(gè)高層次的抽象,這使得不管它的框架是什么,神經(jīng)網(wǎng)絡(luò)的配置都比較簡(jiǎn)單。
谷歌的TensorFlow目前支持Keras作為后端,而微軟的CNTK也會(huì)在很短的時(shí)間內(nèi)做到這一點(diǎn)。
優(yōu)點(diǎn):
它是用戶友好型。
它很容易擴(kuò)展。
在CPU和GPU上無(wú)縫運(yùn)行。
與Theano和TensorFlow無(wú)縫工作。
缺點(diǎn):
不能有效地用作獨(dú)立的框架。
6.Torch
“一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù)”
語(yǔ)言:C.
Torch是一個(gè)用于科學(xué)和數(shù)字操作的開(kāi)源機(jī)器學(xué)習(xí)庫(kù)。
這是一個(gè)基于Lua編程語(yǔ)言的庫(kù)。
通過(guò)提供大量的算法,使得深度學(xué)習(xí)研究更容易,并且提高了效率和速度。它有一個(gè)強(qiáng)大的N維數(shù)組,這有助于切片和索引等操作。它還提供了線性代數(shù)程序和神經(jīng)網(wǎng)絡(luò)模型。
優(yōu)點(diǎn):
非常靈活。
高水平的速度和效率。
大量的預(yù)訓(xùn)練模型可用。
缺點(diǎn):
不清楚的文件。
缺乏即時(shí)使用的即插即用代碼。
它基于一種不那么流行的語(yǔ)言,Lua。
7. Accord.NET
“機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)、統(tǒng)計(jì)和.NET通用科學(xué)計(jì)算”。
語(yǔ)言:C#。
這就是為C#程序員準(zhǔn)備的。
Accord.NET框架是一個(gè).NET機(jī)器學(xué)習(xí)框架,使音頻和圖像處理變得簡(jiǎn)單。
這個(gè)框架可以有效地處理數(shù)值優(yōu)化,人工神經(jīng)網(wǎng)絡(luò),甚至可視化。除此之外,Accord.NET對(duì)計(jì)算機(jī)視覺(jué)和信號(hào)處理具有非常強(qiáng)大的功能,同時(shí)也使得算法的實(shí)現(xiàn)變得簡(jiǎn)單。
優(yōu)點(diǎn):
它有一個(gè)龐大而活躍的開(kāi)發(fā)團(tuán)隊(duì)。
非常有據(jù)可查的框架。
質(zhì)量可視化。
缺點(diǎn):
不是一個(gè)非常流行的框架。
比TensorFlow慢。
8. Spark MLlib
“可擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù)”
語(yǔ)言:Scala。
Apache的Spark MLlib是一個(gè)可擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù)。
它非常適用于Java、Scala、Python甚至R等語(yǔ)言。它非常高效,因?yàn)樗梢耘cPython庫(kù)和R庫(kù)中的numpy進(jìn)行互操作。
MLlib可以輕松插入到Hadoop工作流程中。它提供了機(jī)器學(xué)習(xí)算法,如分類、回歸和聚類。
這個(gè)強(qiáng)大的庫(kù)在處理大型數(shù)據(jù)時(shí)非常快速。
優(yōu)點(diǎn):
對(duì)于大規(guī)模數(shù)據(jù)處理非??焖佟?/p>
提供多種語(yǔ)言。
缺點(diǎn):
陡峭的學(xué)習(xí)曲線。
即插即用僅適用于Hadoop。
9. Sci-kit learn
“在Python中進(jìn)行機(jī)器學(xué)習(xí)”
語(yǔ)言:Python。
Sci-kit learn是一個(gè)非常強(qiáng)大的機(jī)器學(xué)習(xí)Python庫(kù),主要用于構(gòu)建模型。
使用numpy、SciPy和matplotlib等其他庫(kù)構(gòu)建,對(duì)統(tǒng)計(jì)建模技術(shù)(如分類,回歸和聚類)非常有效。
Sci-kit learn監(jiān)督學(xué)習(xí)算法、無(wú)監(jiān)督學(xué)習(xí)算法和交叉驗(yàn)證等功能。
優(yōu)點(diǎn):
許多主要算法的可用性。
有效的數(shù)據(jù)挖掘。
缺點(diǎn):
不是建筑模型的最佳選擇。
GPU效率不高。
10. MLPack
“可擴(kuò)展的C ++機(jī)器學(xué)習(xí)庫(kù)”
語(yǔ)言:C ++。
MLPack是一個(gè)用C ++實(shí)現(xiàn)的可擴(kuò)展的機(jī)器學(xué)習(xí)庫(kù)。因?yàn)樗怯肅 ++編寫的,所以你可以猜測(cè)它對(duì)于內(nèi)存管理是非常好的。
MLPack以極高的速度運(yùn)行,因?yàn)楦哔|(zhì)量的機(jī)器學(xué)習(xí)算法與庫(kù)一起出現(xiàn)。這個(gè)庫(kù)是對(duì)新手友好,并提供了一個(gè)簡(jiǎn)單的API使用。