天天看點

如何選擇開源的機器學習架構?

開源是創新和科技快速發展的核心。在此,我們将讨論如何針對不同的用例選取開源的機器學習工具。盡管機器學習還處于早期發展階段,但從醫療、安全到個性化營銷,這種潛在的價值使得公司将機器學習作為一種機會。

如何選擇開源的機器學習架構?
為什麼要選擇機器學習架構呢?

使用開源工具的好處不僅僅在于其可用性。通常來說,如此級别的項目均有大量的資料工程師和資料科學家願意去分享資料集和前期訓練模型。比如,你可以使用分類模型訓練來自于ImageNet的資料,而非利用scratch建立圖形感覺。開源的機器學習工具還能夠讓你進行遷移學習,這意味着可以通過運用其他方面的知識解決機器學習的問題。是以,你可以把一些能力形成一種模型,這些模型可以學會識别汽車或者能夠幫助我們完成其他的任務。

根據你所需要處理的問題,預先訓練的模型和開放的資料集可能并不會像定制的那樣準确,但開源架構不需要你收集資料集,這能夠為你節省大量的時間和精力。根據前百度首席資料科學家、斯坦福大學教授Andrew Ng所說,使用開源模型和資料集将會成為繼監督學習後驅動商業成功的第二大動因。

如何選擇開源的機器學習架構?

在衆多活躍但不那麼流行的開源工具中,我們将選取5個進行深度探讨,以便幫助你找到适合你的一款工具并且開始你的資料科學探索道路。接下來,我們進入正題。

1.TensorFlow

TensorFlow最初是僅供Google内部使用的,2015年在Apache 2.0 源碼開始開源釋出。Google的聲譽和構模組化型時出色的流程圖吸引了一大群的TensorFlow擁護者。

TensorFlow對于深度神經網絡研究和複雜的數學計算來說都是一個很好的python工具,它甚至能夠支援強化學習。TensorFlow的獨特之處還在于資料流圖-結構,包含節點(數學運算)和邊緣(數值數組或張量)。

1.1資料集和模型

TensorFlow的靈活之處展現在基于它進行研究或者重複機器學習任務的可能性。是以,你可以使用名為TensorFlow

Core的低級API。你可以通過它控制模型并且使用你自己的資料集對它們進行訓練。但也有公共的預訓練模型,用于在TensorFlow Core之上建構更進階的API。你可以使用的目前比較流行的模式有MNIST,一個幫助識别圖檔上的手寫數字的傳統資料集,或者Medicare Data,一個來自于Google幫助預測醫療服務收費的資料集。

如何選擇開源的機器學習架構?

1.2閱聽人及學習曲線

對于第一次探索機器學習的人來說,TensorFlow功能的多樣化會顯得有些複雜。一些人甚至認為,該庫并未加速機器學習的學習曲線,反而讓其更加陡峭。TensorFlow是一種級别較低的庫,但它需要編寫大量的代碼以及對資料科學細節的良好了解,這才能更好的使用其進行項目開發。是以,如果你的資料科學團隊是以IT為中心的,那麼它或許不是你的最佳選擇,我們将會讨論更加簡單的替換方案。

1.3用例

考慮到TensorFlow的複雜性,其用例主要包含大型公司的解決方案,這些公司擁有機器學習領域的專家。例如,英國線上超市Ocado運用TensorFlow來優先處理他們聯系中心的有限,并改善了需求預測。同時,全球保險公司Axa使用該庫預測他們的使用者将可能涉及的大型汽車事故。

2.Theano:具有擴充性能的成熟庫

Theano是一種級别較低的庫,它基于Python語言,用于科學計算,并且其通常将定義、優化、求值數學表達式作為深度學習的目标。盡管它具有非常優秀的計算性能,但其複雜性還是讓很多使用者無法進行。基于這個原因,Theano主要被用于底層的包裝器,例如Keras,Lasagne以及Blocks這三種旨在快速原型化和模型測試的進階别架構。

2.1資料集及模型

Theano有公共模型,但是使用率較高的架構都有大量的教程和與訓練的資料集可供選擇。例如,Keras在其文檔中存儲了可用的模型以及詳細的使用教程。

2.2閱聽人及學習曲線

如果你使用Lasagne或Keras作為頂部的進階包裝器,你将有大量的教程和預先訓練的資料集。此外,Keras被認為是最容易從早期深度學習探索階段開始的庫。

由于TensorFlow的設計是為了取代Theano,讓它失去了大量的粉絲。但是,許多資料科學家發現,有很多優勢足以讓他們使用過時的版本。

2.3用例

考慮到深度學習研究和發展的工業标準,Theano最初是用來對最為前沿的深度學習算法作為補充。然而,考慮到你也許并不會直接使用Theano,你可以将其衆多功能作為使用其他庫的基礎如:數字及圖檔識别,對象本地化,甚至與機器人聊天。

3.Torch:由Lua腳本語言驅動Facebook支援的架構

Torch常被稱為初學者最簡單的深度學習工具。因為它是簡單的腳本語言,Lua開發的。盡管使用這個語言的人比Python要少,它仍被廣泛采用——Facebook,Google以及Twitter。

3.1資料集及模型

你可以在其GitHub cheatsheet頁面上找到要加載的流行資料集清單。此外,Facebook還釋出了一個官方代碼,用于深度剩餘網絡(ResNets)的實作,并使用預先訓練的模型來對自己的資料集進行微調。

3.2閱聽人及學習曲線

市場中使用Lua語言的工程師人數遠少于Python。然而,Torch文法中反映出Lua更易閱讀。活躍的Torch貢獻者們喜歡Lua,是以這對于初學者和那些希望擴充其工具集的人來說是一個極棒的選擇。

3.3用例

Facebook使用Torch建立了DeepText,它能夠以每分鐘為機關将使用者分享在網站的資訊分類,并且提供更個性化的内容定位。Twitter在Torch的支援下,已經能夠推薦基于算法時間線的推文(而非按時間逆序)。

4.Scikit-learn

Scikit-learn是一個高層級的架構,用于監督和無監督的機器學習算法。作為Python生态系統中的組成部分,它建構在NumPy及SciPy庫之上,每個庫都負責較低層級的資料科學任務。然而,當NumPy處理數值計算時,SciPy庫包含更具體的數值流程,例如優化和插值。随後,scikit-learn被用于機器學習,在Python生态系統中,這三種工具與其它工具之間的關系反映了資料科學領域中不同層級:層級越高,能解決的問題就更加具體。

如何選擇開源的機器學習架構?

4.1資料集和模型

該庫已經包含了一些分類以及回歸的标準資料集,盡管它們不能盡然代表真實情況。然而,用于衡量疾病發展的糖尿病資料集或者用于模式識别的虹膜職務資料集都能很好的解釋機器學習算法是怎樣在scikit中起作用的。而且,該庫提供了從外部源加載資料集的資訊,包括任務的示例生成器,例如多類分類以及分解,同時提供關于流行資料集使用的建議。

4.2閱聽人及學習曲線

盡管作為一個強有力的庫,scikit-learn專注于易用性和文檔化。它是一個非專家學者和新手工程師都能操作的工具,因為它使用簡單并包含大量描述清楚的執行個體,并能使機器學習算法快速地應用于資料中。根據來自軟體商店AWeber和Yhat的評價,scikit非常适合那些有時間和人力資源限制的項目。

5.Caffe/Caffe2:使用簡單并且擁有大量預先訓練模型

不同于為研究而生的Theano和Torch,Caffe并不适合于文本、聲音或者時間序列資料。Caffe是一個專用的機器學習庫,用于圖像分類。來自Facebook以及最近開源的Caffe2的支援,使得該庫成為了擁有248名GitHub貢獻者的流行工具。

盡管其因發展緩慢而受到非議,Caffe的繼任者Caffe2通過增強靈活性、失重以及支援移動部署消除了原有技術存在的問題。

5.1資料集和模型

Caffe鼓勵來自工業界和其它使用者所提供的資料集。該團隊培養協作同時連結大量流行的資料集,這些資料集預先由Caffe訓練。該架構最大的優勢是模型動物園——即包含有大量的由開發者和研究者建立的預訓練模型,你可以使用、結合模型或者僅學習和訓練你自己的模型。

5.2閱聽人和學習曲線

Caffe團隊聲稱,你可以跳過學習的部分,使用現有的模型直接開始深度學習的探索。該庫的目标人群是那些想要第一時間親身體驗深度學習并且承諾推動社群發展的開發人員。

5.3用例

通過使用最先進的卷積神經網絡(CNNs)——深度神經網絡成功應用于視覺圖像分析,甚至是自動駕駛的視覺效果。Caffe幫助Facebook發展它的實時視訊過濾工具,目的是在視訊中應用著名藝術風格。Pinterest同時使用Caffe擴充了視覺搜尋功能,并同意使用者發現圖檔中特定的對象。

數十款阿裡雲産品限時折扣中,趕緊點選領劵開始雲上實踐吧!

本文由

阿裡雲雲栖社群

組織翻譯。

文章原标題《 choosing-open-source-machine-learning-library 》, 譯者 Elaine ,審校:袁虎。 文章為簡譯,更為詳細的内容,請檢視 原文