![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnau8VZnJXYs5SMG9CX5AzLchTMwIzLcNHZh9GbwV3LcRnblRnbvNWLwd3Lcd2bsJ2Lc12bj5ycyVGZvNWZ1xWY25yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
目前,機器學習是軟體開發中最熱門的領域之一。甚至許多專家分析,認為機器學習将會徹底改變包括Web應用和移動應用在内的軟體開發過程。
以下所列的幾個方面可以清楚地說明機器學習對Web開發的重大影響:
· 可以很好的替代傳統資料挖掘
· 可以避免安全威脅
· 豐富的機器學習API庫
· 加速産品發展
· 生産定制的内容和資訊
· 了解使用者行為
機器學習通過一些算法可以在沒有顯式程式設計的情況下,讓計算機進行自行學習。并且可以找到最優的資料分析方法,自動建立分析模型。這就是為什麼機器學習架構在Web開發中起着重要作用的原因。
在本文中,我們将讨論一些主要用于Web開發的機器學習架構。下面會一一進行說明。
5大機器學習架構:
1 ) Microsoft Cognitive Toolkit
Python和C++
這是一個開源的深度學習工具包,是微軟公司專門用來訓練算法的,以便讓機器像人腦一樣學習。通過這個工具,你可以使用各種機器學習模型,如卷積神經網絡、前饋DNN和遞歸神經網絡。
毫無疑問,這個工具主要使用神經網絡來檢查大型非結構化資料集,給開發者提供現成的神經網絡代碼。它有更短的訓練時間和易于使用的體系結構,并且是高度可定制化的,允許選擇參數、網絡和算法。并且,它支援多機多GPU的後端叢集模式。
2 TensorFlow
Python、Java和Go
TensorFlow是在Java開發中最流行的機器學習架構之一。它是一個開源的庫,使用了資料流圖進行數值計算,将複雜的資料結構傳輸至神經網絡中進行分析和處理。毫無疑問,TensorFlow是在GitHub上分支最多的機器學習項目,并且也是投資人參與最多的項目。
TensorFlow具有靈活的體系結構,讓使用者能夠很容易地利用單一的API庫在一個或多個GPU或CPU上實作分布式計算,而不管是在台式計算機、伺服器還是行動電話上。
上圖中的節點代表了數值運算,而圖的邊緣則表示它們之間通信的多元資料集(張量)。TensorFlow為張量從資料流圖的一端流動到另一端的過程進行計算。
3 Apache Mahout
Java和 Scala
這是Apache提供的另一個最流行的源碼開放資源庫,主要是為統計學專家、資料專家和數學專家而設計的,為了讓他們能夠更快速、更高效地執行算法操作。另外,它是一種分布式線性代數架構,用于建立具有可擴充性能的機器學習應用。Mahout主要被用于協作分組、過濾和分類幾個方面。
此外,它還使你能夠在實際運作在大資料平台上的互動式環境中開發自己的數學計算模型,然後可以将相同的程式代碼移植到其它應用程式中進行複用。
Mahout Samsara還提供了分布式線性代數以及正在運作的統計引擎,并與互動式Shell和庫一起進行分發,以連接配接到在生産中的應用。利用Apache Hadoop 庫,它可以應用map/reduce模式到Apache Hadoop平台,但這并不會對Hadoop上其它那些實作産生影響。
4 Caffe
C++和Python
Caffe是一個基于Java語言的關于深度學習的架構,特别是針對運作速度、表示能力和子產品化幾個方面。它是由伯克利大學人工智能研究小組開發的,極具表現力的體系結構更加支援個性化的應用和創新。
另外,Caffe提供的配置選項允許使用者通過配置單個訓示器在GPU和CPU之間進行無縫切換。它提供的可擴充代碼促進了早期的發展,使其成為另一個非常成功的GitHub機器學習項目。
Caffe的速度對研究機構和工業級應用方面做出了很大的貢獻。它是利用了卷積神經網絡來實作圖像分類/計算機視覺的。它還提供了Model Zoo,這是一組預訓練的模型,并且不需要任何編碼來實作。
應該指出的是,Caffe最适用于應用系統的構造,并且主要應用于計算機視覺領域。
5 Apache Singa
C++、Python和Java.
Apache Siga是一個可擴充的、靈活的、用來簡化在大資料上訓練深度學習模型的開源架構。它是由新加坡國立大學的團隊開發的,主要應用于大資料分析領域。該架構為海量資料可擴充的分布式訓練提供了一種靈活的體系結構。
Apache Siga在各種各樣的硬體上運作都具有可擴充性。它主要應用在自然語言處理(NLP)和圖像識别領域。
目前,Apache孵化器項目提供了一種可以在一組節點中工作的簡單開發模型。深度分布式學習在訓練過程中使用了模型共享和并行化方式,模型既可以串行訓練,也可以選擇并行訓練。Singa也使用Apache Zookeeper簡化了叢集的搭建。
不管怎樣,Apache Siga也支援傳統的機器學習模型,如邏輯回歸等等。
結論我們已經介紹了一些用于Java開發的最好的機器學習架構。事實上,應用了機器學習的Web開發将會使IT世界進行一場革命。然而,目前各種流行的機器學習架構和庫不是用Python語言編寫的,就是由Python支援的,主要包括Keras、Theano、TensorFlow和一些較小的項目,比如Microsoft Azure Studio、sci-kit learn、Veles、Chainer和Neon等等。
本文由北郵@愛可可-愛生活 老師推薦,阿裡雲雲栖社群組織翻譯。
文章原标題《Top 5 Machine Learning Frameworks For Web Development》
譯者:奧特曼,審校:袁虎。
文章為簡譯,更為詳細的内容,請檢視
原文。