用於Web開發的5種機器學習框架

【方向】發表於2018-10-25

F1.large_.jpg

目前,機器學習是軟體開發中最熱門的領域之一。甚至許多專家分析,認為機器學習將會徹底改變包括Web應用和移動應用在內的軟體開發過程。

以下所列的幾個方面可以清楚地說明機器學習對Web開發的重大影響:

· 可以很好的替代傳統資料探勘

· 可以避免安全威脅

· 豐富的機器學習API庫

· 加速產品發展

· 生產定製的內容和資訊

· 瞭解使用者行為

mc.gif 

機器學習通過一些演算法可以在沒有顯式程式設計的情況下,讓計算機進行自行學習。並且可以找到最優的資料分析方法,自動建立分析模型。這就是為什麼機器學習框架在Web開發中起著重要作用的原因。

在本文中,我們將討論一些主要用於Web開發的機器學習框架。下面會一一進行說明。

5大機器學習框架:

1 Microsoft Cognitive Toolkit

microsoft.jpg 

開發語言:PythonC++

這是一個開源的深度學習工具包,是微軟公司專門用來訓練演算法的,以便讓機器像人腦一樣學習。通過這個工具,你可以使用各種機器學習模型,如卷積神經網路、前饋DNN和遞迴神經網路。

毫無疑問,這個工具主要使用神經網路來檢查大型非結構化資料集,給開發者提供現成的神經網路程式碼。它有更短的訓練時間和易於使用的體系結構,並且是高度可定製化的,允許選擇引數、網路和演算法。並且,它支援多機多GPU的後端叢集模式。

2TensorFlow

tensorflow.png 

開發語言:PythonJavaGo

TensorFlow是在Java開發中最流行的機器學習框架之一。它是一個開源的庫,使用了資料流圖進行數值計算,將複雜的資料結構傳輸至神經網路中進行分析和處理。毫無疑問,TensorFlow是在GitHub上分支最多的機器學習專案,並且也是投資人蔘與最多的專案。

TensorFlow具有靈活的體系結構,讓使用者能夠很容易地利用單一的API庫在一個或多個GPU或CPU上實現分散式計算,而不管是在臺式計算機、伺服器還是行動電話上。

上圖中的節點代表了數值運算,而圖的邊緣則表示它們之間通訊的多維資料集(張量)。TensorFlow為張量從資料流圖的一端流動到另一端過程進行計算

3Apache Mahout

Mahout.jpg 

開發語言:Java Scala

這是Apache提供的另一個最流行的原始碼開放資源庫,主要是為統計學專家、資料專家和數學專家而設計的,為了讓他們能夠更快速、更高效地執行演算法操作。另外,它是一種分散式線性代數框架,用於建立具有可擴充套件效能的機器學習應用。Mahout主要被用於協作分組、過濾和分類幾個方面。

此外,它還使你能夠在實際執行在大資料平臺上的互動式環境中開發自己的數學計算模型,然後可以將相同的程式程式碼移植到其它應用程式中進行復用。

Mahout Samsara還提供了分散式線性代數以及正在執行的統計引擎,並與互動式Shell和庫一起進行分發,以連線到在生產中的應用。利用Apache Hadoop 庫,它可以應用map/reduce模式到Apache Hadoop平臺,但這並不會對Hadoop上其它那些實現產生影響。

4Caffe 

caffeenew.jpeg 

開發語言:C++Python

Caffe是一個基於Java語言的關於深度學習的框架,特別是針對執行速度、表示能力和模組化幾個方面。它是由伯克利大學人工智慧研究小組開發的,極具表現力的體系結構更加支援個性化的應用和創新。

另外,Caffe提供的配置選項允許使用者通過配置單個指示器在GPU和CPU之間進行無縫切換。它提供的可擴充套件程式碼促進了早期的發展,使其成為另一個非常成功的GitHub機器學習專案。

Caffe的速度對研究機構和工業級應用方面做出了很大的貢獻。它是利用了卷積神經網路來實現影像分類/計算機視覺的。它還提供了Model Zoo,這是一組預訓練的模型,並且不需要任何編碼來實現。

應該指出的是,Caffe最適用於應用系統的構造,並且主要應用於計算機視覺領域。

5Apache Singa

singa.jpg 

開發語言:C++PythonJava.

Apache Siga是一個可擴充套件的、靈活的、用來簡化在大資料上訓練深度學習模型的開源框架。它是由新加坡國立大學的團隊開發的,主要應用於大資料分析領域。該框架為海量資料可擴充套件的分散式訓練提供了一種靈活的體系結構。

Apache Siga在各種各樣的硬體上執行都具有可擴充套件性。它主要應用在自然語言處理(NLP)和影像識別領域。

目前,Apache孵化器專案提供了一種可以在一組節點中工作的簡單開發模型。深度分散式學習在訓練過程中使用了模型共享和並行化方式,模型可以序列訓練,也可以選擇並行訓練Singa也使用Apache Zookeeper簡化了叢集的搭建。

不管怎樣,Apache Siga也支援傳統的機器學習模型,如邏輯迴歸等等。

結論

我們已經介紹了一些用於Java開發的最好的機器學習框架。事實上,應用了機器學習的Web開發將會使IT世界進行一場革命。然而,目前各種流行的機器學習框架和庫不是用Python語言編寫的,就是由Python支援的,主要包括Keras、TheanoTensorFlow和一些較小的專案,比如Microsoft Azure Studio、sci-kit learnVeles、Chainer和Neon等等。

 

本文由北郵@愛可可-愛生活 老師推薦,阿里云云棲社群組織翻譯。

文章原標題《Top 5 Machine Learning Frameworks For Web Development

譯者:奧特曼,審校:袁虎

文章為簡譯,更為詳細的內容,請檢視原文 


相關文章