官术网_书友最值得收藏!

2.1 機器學習主流框架簡介

機器學習屬于二進制創新的范疇,在各個階段都有許多優秀的框架,它們雖然目標都是通過代碼發現并反映數據本身的規律,通過訓練的模型對于發生的事件進行有效的預測,但是不同框架的側重點并不相同。有的框架來源于大學實驗室,而且創立較早,因此主要針對模型構造的過程,對效率和并行計算等的支持十分有限;有的框架發端于同平臺的云服務,針對自己的平臺有著不錯的優化;有的框架來源于同開源基金會的大數據分析需求,雖然天然對平行計算等有很好的支持,但是使用時卻需要機器部署很多依賴框架和服務。

下面就來介紹目前流行的15個機器學習框架。

1. Apache Singa

Apache Singa是一個用于在大型數據集上訓練深度學習的通用分布式深度學習平臺,它是基于分層抽象的簡單開發模型設計的。它還支持各種當前流行的深度學習模型,有前饋模型(卷積神經網絡)和能量模型(受限玻爾茲曼機和循環神經網絡),還為用戶提供了許多內嵌層。

Apache Singa的軟件核心架構包含3個主要的組成部分,分別是計算核心(Core)、輸入輸出(IO)和模型(Model)。圖2.1中給出了Apache Singa的整體軟件架構的組成關系以及3大組件的主要功能。計算核心提供張量的計算操作以及為了能夠提升機器學習模型代碼在生產環境下的各種硬件優化(CPU、GPU、內存等)。輸入輸出主要處理的是從本地或者服務器中讀取和寫回數據的過程。模型組件致力于提供機器學習特別是復雜機器學習模型構建的基礎組件。比如要構建卷積神經網絡,我們需要層(Layer)來部署網絡,訓練中使用Optimizers/Initializer/Metric/Loss等組件。

圖2.1 Apache Singa的整體軟件架構

2. Amazon Machine Learning

亞馬遜機器學習框架(Amazon Machine Learning, AML)是一種讓各種級別使用機器學習技術的開發人員都能夠輕松掌握的服務,提供了視覺工具和向導,可以指導開發人員在不必學習復雜的機器學習算法和技術的情況下建立機器學習。其中重要的組成部分是Amazon SageMaker。Amazon SageMaker可以幫助開發人員和數據科學家快速輕松地構建、訓練和部署任何規模的機器學習模型。從運行實時欺詐檢測模型、虛擬分析潛在藥物的生物影響到預測棒球比賽中的盜壘成功率,它消除了成功實現機器學習的復雜性。

3. Azure ML Studio

Azure ML Studio允許微軟Azure的用戶創建和訓練模型,隨后將這些模型轉化為能被其他服務使用的API。盡管你可以將自己的Azure存儲鏈接到更大模型的服務,但是每個賬戶模型數據的存儲容量最多不超過10GB。在Azure中有大量的算法可供使用,這要感謝微軟和一些第三方公司。甚至不需要注冊賬號就可以匿名登錄,使用Azure ML Studio服務長達8小時。

4. Caffe

Caffe是由伯克利視覺學習中心(Brian Leonard Visual Communications, BLVC)和社區貢獻者基于BSD-2-協議開發的一個深度學習框架,它秉承“表示、效率和模塊化”的開發理念。模型和組合優化通過配置而不是硬編碼實現,并且用戶可根據需要在CPU處理和GPU處理之間進行切換。Caffe的高效性使其在實驗研究和產業部署中的表現很完美,使用單個NVIDIA K40 GPU處理器每天即可處理超過6000萬張圖像。但是由于Caffe創立時間較早,數據挖掘工程師一直對它有一些設計上的抵觸情緒。因此,Caffe的作者又重新構建了新的機器學習框架—Caffe 2。

Caffe 2中的基本單元被稱作操作子(Operators)。每一個操作子包含完成機器學習基本的參數輸入(w和b)、數據輸入和計算完成的數據輸出。在新一代Caffe中,計算參數作為輸入值而不是配置項,使用起來編程體驗更好。比如我們設計一個全連接的神經元,權重w、偏置b和輸入數據X是必須全部提供的,在這些輸入完成后,操作子會計算出輸出值Y。

圖2.2所示為Caffe與Caffe 2架構的對比。

圖2.2 Caffe與Caffe 2架構的對比

5. H2O

H2O可以輕松地應用數學和預測分析來解決當今極具挑戰性的商業問題,它巧妙地結合了目前在其他機器學習平臺還未被使用的獨有特點—最佳開源技術,易于使用的WebUI和熟悉的界面,支持常見的數據庫和不同文件類型。使用H2O時,你可以使用現有的語言和工具,此外,還可以無縫擴展到Hadoop環境中。H2O與Hadoop系統整合架構如圖2.3所示。

圖2.3 H2O與Hadoop系統整合架構

6. Massive Online Analysis

大規模在線分析框架(Massive Online Analysis, MOA)是目前最受歡迎的數據流挖掘開源框架,擁有一個非常活躍的社區。它包含一系列的機器學習算法(分類、回歸、聚類、離群檢測、概念漂移檢測和推薦系統)和評價工具。和WEKA項目一樣,MOA也是用Java編寫的,但擴展性更好。

7. MLlib(Spark)

MLlib(Spark)是Apache Spark的機器學習庫,目的是讓機器學習實現可伸縮性和易操作性,它由常見的學習算法和實用程序組成,包括分類、回歸、聚類,協同過濾、降維,同時包括底層優化原生語言和高層管道API。

8. Mlpack

Mlpack是一個基于C++的基礎學習庫,最早于2011年推出,數據庫的開發者聲稱,它是秉承“可擴展性、高效性和易用性”的理念來設計的。執行Mlpack有兩種方法:通過快速處理簡易的“黑盒”操作命令行執行緩存,或者借助C++ API處理較為復雜的工作。Mlpack可提供簡單的能被整合到大型的機器學習解決方案中的命令行程序和C++的類。

9. Pattern

Pattern是Python編程語言的Web挖掘組件,有數據挖掘工具(Google、Twitter、Wikipedia API、網絡爬蟲、HTML DOM解析器)、自然語言處理(詞性標注、N-Gram搜索、情感分析、WordNet接口)、機器學習(向量空間模型、聚類、支持向量機)、網絡分析和可視化。

10. Scikit-Learn

Scikit-Learn用于數學和科學工作,基于現有的幾個Python包(NumPy、SciPy和Matplotlib)拓展了Python的使用范圍。最終生成的庫既可用于交互式工作臺應用程序,又可嵌入其他軟件中進行復用。該工具包基于BSD協議,是完全免費開源的,可重復利用。Scikit-Learn中含有多種用于機器學習任務的工具,如聚類、分類、回歸等。Scikit-Learn是由擁有眾多開發者和機器學習專家的大型社區開發的,因此Scikit-Learn中前沿的技術往往會在很短時間內被開發出來。

11. Shogun

Shogun是最早的機器學習庫之一,創建于1999年,用C++開發,但并不局限于C++環境。借助SWIG庫,Shogun適用于各種語言環境,如Java、Python、C#、Ruby、R、Lua、Octave和Matlab。Shogun旨在面向廣泛的特定類型和學習配置環境進行統一的大規模學習,如分類、回歸或探索性數據分析。

12. TensorFlow

TensorFlow是Google第二代深度學習系統,是完全開源的框架產品。TensorFlow是一種編寫機器學習算法的界面,也可以編譯執行機器學習算法的代碼。使用TensorFlow編寫的運算幾乎不用更改就能運行在多種異質系統上,從移動設備(例如手機和平板電腦)到擁有幾百臺機器和幾千個GPU之類的運算設備的大規模分布式系統。TensorFlow降低了深度學習的使用門檻,讓從業人員能夠更簡單和方便地開發新產品。作為Google發布的“平臺級產品”,很多人認為它將改變人工智能產業。

13. Theano

Theano是一個基于BSD協議發布的可定義、可優化和可數值計算的Python庫。使用Theano可以與使用C實現大數據處理的速度相媲美,是支持高效機器學習的算法。

14. Torch

Torch是一種廣泛支持把GPU放在首位的機器學習算法的科學計算框架。由于使用了簡單快速的腳本語言LuaJIT和底層的C/CUDA來實現,使得該框架易于使用且高效。Torch的目標是讓用戶通過極其簡單的過程、最大的靈活性和速度建立自己的科學算法。Torch是基于Lua開發的,擁有一個龐大的生態社區,能夠找到許多功能獨特的驅動庫,包括設計機器學習、計算機視覺、信號處理、并行處理、圖像、視頻、音頻和網絡等。

15. Veles

Veles是一套用C++開發的面向深層學習應用程序的分布式平臺,不過它利用Python在節點間自動操作與協作任務。在相關數據集中到該集群之前,可對數據進行分析與自動標準化調整,且REST API允許將各種訓練模型立即添加到生產環境中,側重于性能和靈活性。Veles幾乎沒有硬編碼,可對所有廣泛認可的網絡拓撲結構進行訓練,如全卷積神經網絡、卷積神經網絡、循環神經網絡等。

主站蜘蛛池模板: 辉南县| 藁城市| 临湘市| 甘德县| 建德市| 临湘市| 米林县| 桐乡市| 土默特右旗| 通化市| 蕉岭县| 江华| 本溪| 嘉鱼县| 荔浦县| 丹江口市| 苍山县| 乌兰县| 缙云县| 买车| 沅陵县| 会泽县| 慈利县| 洛阳市| 鄂托克旗| 贡山| 福安市| 大方县| 芮城县| 信宜市| 武穴市| 教育| 肥东县| 莆田市| 射洪县| 鹤庆县| 灵川县| 阜南县| 芜湖市| 军事| 榆中县|