過去十年中人工智能的飛速增長(zhǎng)刺激了當(dāng)今就業(yè)市場(chǎng)對(duì)AI和ML技能的巨大需求。從金融到醫(yī)療保健,現(xiàn)在幾乎所有行業(yè)都在使用基于ML的技術(shù)。本文將介紹一系列可用于構(gòu)建機(jī)器學(xué)習(xí)模型的最佳框架和庫(kù)。
1. TensorFlow
TensorFlow是Google開發(fā)的一款開源軟件庫(kù),專為深度學(xué)習(xí)或人工神經(jīng)網(wǎng)絡(luò)而設(shè)計(jì)。TensorFlow允許你可以使用流程圖創(chuàng)建神經(jīng)網(wǎng)絡(luò)和計(jì)算模型。它是可用于深度學(xué)習(xí)的最好維護(hù)和最為流行的開源庫(kù)之一。TensorFlow框架可以使用C++也可以使用Python。其他類似的基于Python的深度學(xué)習(xí)框架包括Theano,Torch,Lasagne,Blocks,MXNet,PyTorch和Caffe。你可以使用TensorBoard進(jìn)行簡(jiǎn)單的可視化并查看計(jì)算流水線。其靈活的架構(gòu)允許你輕松部署在不同類型的設(shè)備上。不利的一面是,TensorFlow沒有符號(hào)循環(huán),不支持分布式學(xué)習(xí)。此外,它還不支持Windows。
2. Theano
Theano是一個(gè)專為深度學(xué)習(xí)而設(shè)計(jì)的Python庫(kù)。你可以使用該工具定義和評(píng)估數(shù)學(xué)表達(dá)式,包括多維數(shù)組。針對(duì)GPU進(jìn)行了優(yōu)化,該工具具有與NumPy集成,動(dòng)態(tài)C代碼生成和符號(hào)區(qū)分等功能。但是,為了獲得高度的抽象,該工具必須與Keras,Lasagne和Blocks等其他庫(kù)一起使用。Theano支持Linux,Mac OS X和Windows等平臺(tái)。
3.Torch
Torch是一款針對(duì)ML算法且又簡(jiǎn)單易用的開源計(jì)算框架。該工具提供了高效的GPU支持,N維數(shù)組,數(shù)值優(yōu)化例程,線性代數(shù)例程以及用于索引、切片和置換的例程?;贚ua的腳本語言,該工具帶有大量預(yù)先訓(xùn)練好的模型。這款靈活高效的ML研究工具支持諸如Linux,Android,Mac OS X,iOS和Windows等主流平臺(tái)。
4.Caffe
Caffe是一款深受歡迎的用于構(gòu)建應(yīng)用程序的深度學(xué)習(xí)工具。該工具是賈揚(yáng)清在加州大學(xué)伯克利分校讀博士期間為他的一個(gè)項(xiàng)目而創(chuàng)建的,具有良好的Matlab / C ++ / Python界面。該工具允許你在不編寫代碼的情況下使用文本快速將神經(jīng)網(wǎng)絡(luò)應(yīng)用于問題。Caffe不完全地支持多GPU訓(xùn)練。該工具支持Ubuntu,Mac OS X和Windows等操作系統(tǒng)。
5.Microsoft CNTK
Microsoft Cognitive Toolkit是具有C#/C++/Python接口支持的最快的深度學(xué)習(xí)框架之一。此款開源框架帶有強(qiáng)大的C++ API,比TensorFlow更快、更準(zhǔn)確。該工具還支持內(nèi)置數(shù)據(jù)讀取器的分布式學(xué)習(xí)。它支持諸如前饋,CNN,RNN,LSTM和序列到序列等算法。該工具支持Windows和Linux。
6.Keras
用Python編寫的Keras是一個(gè)開源庫(kù),旨在簡(jiǎn)化新DL模型的創(chuàng)建。這種高級(jí)神經(jīng)網(wǎng)絡(luò)API可以在TensorFlow,Microsoft CNTK等深度學(xué)習(xí)框架之上運(yùn)行。該工具以其用戶友好性和模塊化而聞名,因而非常適合快速原型開發(fā)。該工具針對(duì)CPU和GPU進(jìn)行了優(yōu)化。
7. scikit-learn
scikit-learn是一個(gè)開源的Python庫(kù),專為機(jī)器學(xué)習(xí)而設(shè)計(jì)?;谥T如NumPy,SciPy和matplotlib等庫(kù)的scikit-learn可用于數(shù)據(jù)挖掘和數(shù)據(jù)分析。scikit-learn配備了各種ML模型,包括線性和邏輯回歸器、SVM分類器和隨機(jī)森林。該工具可用于多個(gè)ML任務(wù),如分類,回歸和聚類。scikit-learn支持Windows和Linux等操作系統(tǒng)。缺點(diǎn)是,GPU的效率不高。
8. Accord.NET
Accord.NET是用C#編寫的ML框架,專為構(gòu)建生產(chǎn)級(jí)計(jì)算機(jī)視覺、計(jì)算機(jī)試聽、信號(hào)處理和統(tǒng)計(jì)應(yīng)用程序而設(shè)計(jì)。它是一個(gè)文檔記錄良好的ML框架,可以輕松實(shí)現(xiàn)音頻和圖像處理。Accord.NET可用于數(shù)值優(yōu)化、人工神經(jīng)網(wǎng)絡(luò)和可視化。它支持Windows。
9. Spark MLlib
Apache Spark的MLIib是一個(gè)ML庫(kù),可用于Java,Scala,Python和R語言。因?yàn)槭菍樘幚泶笠?guī)模數(shù)據(jù)而設(shè)計(jì)的,所以此強(qiáng)大的庫(kù)具有許多算法和實(shí)用工具,如分類、回歸和聚類。該工具在Python和R庫(kù)中與NumPy交互操作。它可以輕松插入到Hadoop工作流程中。
10. Azure ML Studio
Azure ML Studio是面向數(shù)據(jù)科學(xué)家的現(xiàn)代云平臺(tái)。它可以用于在云中開發(fā)ML模型。 借助廣泛的建模選項(xiàng)和算法,Azure非常適合構(gòu)建較大的ML模型。此服務(wù)為每個(gè)帳戶提供10GB的存儲(chǔ)空間。它可以與R和Python程序一起使用。
11.Amazon Machine Learning
Amazon Machine Learning (AML) 是一個(gè)ML服務(wù),提供用于創(chuàng)建ML模型的工具和向?qū)А=柚梢暬o助功能和易用的分析功能,AML旨在讓開發(fā)人員更方便地使用ML。AML可以連接到存儲(chǔ)在Amazon S3、Redshift或RDS中的數(shù)據(jù)。
機(jī)器學(xué)習(xí)框架具有易于理解和編碼的預(yù)構(gòu)建組件,因而一個(gè)好的ML框架能夠降低定義ML模型的復(fù)雜性。讓我們借助這些開源ML框架,幫助輕松快速地構(gòu)建ML模型。