摘要:在本文中,我們將分別對亞馬遜、微軟、谷歌、Databricks、HPE和IBM各大公司的機器學習工具套件的運行從廣度、深度和易用性等方面進行深入的測評分析。
我們所謂的機器學習可以有多種形式。而最純凈的形式則為分析人員們提供了一組數據探索工具、一個ML模型選擇、強大的解決方案算法和一種使用解決方案來進行預測的方法。亞馬遜、微軟、Databricks、谷歌和IBM的云服務產品都提供了預測API,使得分析人員有了不同量的控制。而HPE的云大數據分析平臺解決方案Haven OnDemand則為二元分類問題提供了有限的預測API。
然而,并不是每一個機器學習的問題都必須從零開始解決。某些問題可以通過對足夠大的樣本進行培訓,進而得到更廣泛的適用。例如,語音到文本、文本到語音、文本分析和人臉識別往往是“罐裝”的解決方案需要解決的問題。故而,大量機器學習云服務提供商們通過API提供這類功能,允許開發人員將其納入他們的應用程序也就不足為怪了。
這類服務將能夠識別美式英語的發音(以及其他一些語言)并抄寫下來。但是,一款既定的服務對于某一名既定的說話人的具體工作狀況將取決于說話人是否夾雜方言、說話人的口音、以及該解決方案此前對于類似的方言和口音的訓練情況。微軟的Azure、IBM、谷歌和Haven OnDemand均提供了語音到文本的服務。
有許多類型的機器學習的問題。例如,回歸問題試圖通過其他觀察來預測一個連續變量(如銷售);以及分類問題試圖預測一組既定觀測的類別是否會下降(例如,垃圾郵件的數量)。亞馬遜、微軟、Databricks、谷歌、HPE和IBM均提供了相應的工具以解決一系列的機器學習方面的問題,當然,某些工具包套件是比別的更加完整。
在這篇文章中,我將簡要地與廣大讀者共同討論這六款商用的機器學習解決方案,其中有內容會鏈接到五篇已經發表的之前由我所撰寫的完整版的測評文章。不幸的是,谷歌于今年三月份宣布的基于云的機器學習工具和應用程序遠遠在谷歌云機器學習的公共可用性之前。
亞馬遜的機器學習
亞馬遜試圖讓機器學習能夠更容易的讓一般平凡的普通用戶所能夠接觸得到。其旨在為那些了解正在被解決的業務問題的分析人員服務,不管這些分析人員是否真正理解數據科學和機器學習算法。
通常,在一般情況下,當您采用亞馬遜機器學習時,首先需要整理數據,并以CSV格式將您的數據上傳到S3;然后創建、培訓和評估一款ML模型;最后通過創建批量處理或進行實時預測。在整個過程中,每一步都是迭代的。機器學習并不是一副簡單的、靜態的靈丹妙藥,即使是對于亞馬遜的算法的選擇。
亞馬遜機器學習支持3種模型:二元分類、多類分類和回歸分析,其中每種類型都有一種算法。為了進一步的優化,亞馬遜機器學習采用隨機梯度下降(Stochastic gradient descent,SGD),這使得多連續性越過了對每個樣品小批量訓練數據和更新功能的權重,以最小化損失函數(loss function)。損失函數反映了實際值和預測值之間的差距。梯度下降優化工作只能在連續的、可區分的損失函數中很好地運作,如邏輯函數和平方損失函數。
對于二元分類,亞馬遜機器學習采用邏輯回歸(邏輯損失函數加SGD)。
而對于多類分類,亞馬遜機器學習則使用多項邏輯回歸(多項邏輯損失加SGD)。
對于回歸分析,亞馬遜機器學習采用線性回歸(平方損失函數加上SGD)。
在亞馬遜機器學習中培訓和評估一個二元分類模型之后,您可以選擇自己的分數閾值,以達到您所期望的錯誤率。在上圖中,我們已經將默認閾值增加了0.5,這樣我們就可以產生一組更強的銷售線索以實現市場營銷和銷售目的。
亞馬遜機器學習從目標數據的類型決定機器學習所解決的任務的類型。例如,借助數值目標變量預測問題便意味著回歸分析;借助非數值目標變量預測問題時,如果只有兩個目標狀態其便是二元分類;如果有兩個以上的目標狀態便是多類分類。
在亞馬遜機器學習中對于功能的選擇有訣竅。一旦對數據源進行了描述性統計,亞馬遜將創建一個默認的方法,該方法使得您可以在您的機器學習模型中使用或重寫覆蓋該數據。
一旦您有了一個符合您的評價要求的模型,您可以用它來建立一個實時的網絡服務,或者生成一個批處理的預測。然而,務必要記住的是,不同于物理常數,人們的行為往往會隨時間而變化。您將需要定期檢查來自于您的模型的預測的精度指標,并根據需要重新培訓。
Azure機器學習
相比之下,較之亞馬遜的機器學習,微軟公司則試圖為有經驗的數據科學家們提供一種全品種的算法和工具。因此,Azure機器學習是更大的微軟Cortana分析套件產品的一部分。Azure機器學習還具有一個拖曳界面,用于構建模型訓練和從模塊評估數據流。
Azure機器學習工作室包含導入數據集、培訓和出版的實驗模型、Jupyter Notebook處理數據、以及保存培訓模式的設施。機器學習工作室包含幾十個樣本數據集,五種數據格式轉換,幾種用來讀取和寫入數據的方式,幾十種數據轉換,以及三種功能選項。在Azure機器學習中,您會發現用于異常檢測、分類、聚類和回歸分析的多種模式;分數模型的四種方法;評估模型的三種策略;和培訓模型的六道工序。您也可以用一對OpenCV(開源計算機視覺)模塊、統計功能及文本分析。
這是一個很大的東西,理論上足以以任何模型處理任何一種類型的數據,只要您了解業務,數據和模型。當罐裝Azure的機器學習工作室模塊無法滿足您的需求時,您可以開發Python或R模塊。
您可以使用Jupyter Notebook開發并測試Python 2和Python 3語言模塊,擴展Azure的機器學習Python客戶端庫(以便與存儲在Azure的數據工作)、Scikit-Learn庫、matplotlib和NumPy。Azure的Jupyter Notebook最終也將支持R?,F在,您可以在本地使用RStudio,并能夠在將來根據需要改變Azure的輸入和輸出,或在微軟數據科學VM安裝RStudio。
當您在Azure的機器學習工作室創建一個新的實驗時,您可以從頭開始或者選擇從約70個微軟樣本開始,其覆蓋了大部分常見的模式。而在Cortana Gallery有一個額外的社區內容。
Azure的機器學習工作室可以快速工作為發布一款訓練有素的模型生成一個Web服務。這個簡單的模型來自Azure機器學習的五個步驟的互動介紹。
該Cortana分析過程(CAP)從一些規劃和設置步驟開始,這是相當關鍵的,除非您是一名訓練有素的數據科學家,已經對于業務的問題、數據和Azure機器學習有著充分的熟悉,并且已經為項目創造了必要的CAP環境。CAP環境可能包括Azure存儲帳戶、一臺微軟數據科學虛擬機、一個HDInsight(Hadoop)集群和一處具備了Azure機器學習工作室的機器學習工作空間。如果相關的選擇使您感到迷惑,微軟文檔會為您解釋為什么您需要每一項選擇。CAP繼續五個處理步驟:攝取數據、探索性數據分析和預處理、特征的創建、模型的創建和模型的部署和消費。
微軟最近發布了一系列的認知服務,包括了從Project Oxford到Azure preview。這些都是語音、文本分析、人臉識別、表情識別和類似功能的預培訓,他們為您可以通過培訓自己的模型所實現的功能進行了補充。
Databricks
Databricks是一款基于Apache Spark的商用云服務,是一款開源的集群計算框架,包括了機器學習庫、集群管理、類似于Jupyter的互動notebook、儀表板和計劃任務。Databricks公司是由創造了Spark的人所創辦的,故而這款Databricks服務幾乎可以說是可以毫不費力的運行和規?;瘮U展Spark集群。
其library、MLlib,包括了一個范圍廣泛的機器學習和統計算法,都是專為基于Spark架構的分布式內存而設計的。除了執行MLlib之外,還包括執行匯總統計、相關性、抽樣、假設檢驗、回歸與分類、協同過濾、聚類分析、降維、特征提取和轉換功能,以及優化算法。換句話說,其是為有經驗的數據科學家們所提供的一款相當完整的工具包。
上圖這個現實的Databricks notebook,以Python代碼編寫,演示了分析一初知名公共自行車租賃數據集的一種方式。在notebook的這一部分,我們正在使用交叉驗證以運行多個梯度增強型樹回歸訓練管道。
針對那些已經了解數據統計并能至少有一點編程背景的人員,Databricks被設計為一個可擴展的、相對易于使用的數據科學平臺。而為了能夠有效地使用它,您應該知道一些SQL的知識,要么具備Scala、R或Python的相關知識。而如果您精通您所選擇的編程語言的話,那將是極好的,所以您可以在使用Databricks notebook的樣本在免費的Databricks社區版本群集上運行時,專心學習Spark。
谷歌云機器學習
谷歌最近發布了一系列的機器學習相關的產品。其中最有趣的產品是云機器學習和云語音API,都是有限的測試預覽版。谷歌翻譯API可以執行超過80種語言和變體的語言識別和翻譯,而Cloud Vision API可以從圖像中識別各種功能。
而谷歌Prediction API則能夠培訓、評估和預測回歸分析和分類問題,沒有使用算法的選項。其是從2013年開始推出的。
目前,谷歌的機器學習技術、云機器學習平臺使用谷歌的開源TensorFlow庫用于培訓和評估。TensorFlow是由谷歌的Brain團隊開發的使用數據流圖進行數值計算的通用庫。其與谷歌云數據流、谷歌的BigQuery、谷歌云Dataproc、谷歌云存儲和云計算谷歌Datalab進行了充分的集成。
我已從其GitHub庫中查看了TensorFlow代碼;查看了一些C,C ++和Python代碼;并研究了TensorFlow.org網站和TensorFlow白皮書。TensorFlow允許您在一臺桌面臺式機、服務器或移動設備上部署一個或多個CPU或GPU計算,其有各種各樣的培訓和內置的網絡算法。在極客的采用規模方面,比率大概是十分之九。其不僅遠遠超出了業務分析的功能,甚至對許多數據科學家也可能是很難的。
谷歌翻譯API、Cloud Vision API和新的谷歌云語音API 是預培訓的ML模型。據谷歌介紹,其云語音API使用的是與支持谷歌的應用程序中的語音搜索和谷歌鍵盤的語音輸入相同的神經網絡技術。
HPE Haven OnDemand
Haven OnDemand是惠普企業公司(HPE)進軍云計算機器學習的初試牛刀之作。Haven OnDemand的企業搜索和格式轉換是其最強的服務。由于該服務是基于IDOL,HPE的私人搜索引擎的,這也就不足為怪了。不過,Haven OnDemand更有趣的功能還不完全成熟。
目前,Haven OnDemand已有音頻視頻分析、連接器、格式轉換、圖形分析、惠普實驗室的沙盒(實驗性API)、圖像分析、策略、預測、查詢檔案、操縱、搜索、文本分析和非結構化文本索引的API分類。我已經隨機嘗試了一組,并探索了這些API的調用和使用方式。
Haven語音識別只支持六種語言及其變種。對對我的高品質的美式英語測試文件的識別準確率還行,但并不完美。
Haven OnDemand的連接器,允許您從外部系統獲取信息,并通過Haven OnDemand API進行更新,已經相當成熟,主要是因為他們是IDOL連接器。文本提取API使用HPE KeyView從您提供的一份文件提取元數據和文本內容;API可以處理超過500種不同的文件格式,在成熟的KeyView繪圖。
圖表分析,是一套預覽服務,僅適用于英文維基百科上的經過培訓的索引。您不能培訓您自己的數據。
對于圖像分析組,我測試了條碼識別,其工作得很好。而對于臉部識別,其在HPE的樣本上要比在我的測試圖像上執行得更好。目前,圖像識別僅限于固定選擇的企業標志,具有有限的效用。
Haven OnDemand的條形碼識別API可以將條碼隔離在一個圖像文件中(參見上圖紅色框),并將其轉換為數字,即使條形碼是在彎曲的表面上,能夠支持的一定角度至多約20度。該API不執行條形碼號碼的仰視識別和識別產品。
我很失望地發現,HPE的預測分析只能用于解決二元分類問題:不支持多重分類,也不支持回歸分析,更沒有無指導的學習。這嚴重限制了其適用性。
另一方面,谷歌Prediction API能夠自動驗證、探索、分裂,并準備CSV或JSON數據,然后訓練決策樹、邏輯回歸、樸素貝葉斯方法(Naive Bayes)和支持向量機(SVM)多參數二元分類模型。然后,其測試分類,對評估的數據進行分割,并發布最好的模型即服務。
Haven OnDemand搜索使用IDOL引擎來執行高級搜索,而不是公共和私有的文本索引。文本分析API的范圍從簡單的自動完成和長期擴展到語言識別、概念提取和情感分析。
IBM沃森和預測分析
IBM提供的機器學習服務是基于其“Jeopardy”——沃森技術和IBM SPSS Modeler。其實際上擁有三種不同的受眾人員的機器云學習服務:開發人員,數據科學家和商業用戶。
SPSS Modeler是一款Windows應用程序,也于近日在云中提供。Modeler的個人版包括數據訪問和導出;自動數據準備,數據整理(Data wrangling)和ETL;30多種基于機器學習的算法和自動模型;R可擴展性和Python腳本。售價更昂貴的版本能夠通過Hadoop/Spark的IBM SPSS分析服務器、冠軍/挑戰者功能、A/B測試、文本和實體分析、社會網絡分析訪問大數據。
在SPSS Modeler的機器學習算法可以與Azure機器學習及Databricks的Spark.ml相媲美,具備功能特征的選擇和支持的格式選擇。甚至可以和自動模型(對一堆模型進行培訓和評分,然后選擇最好的)相媲美,但如何在SPSS Modeler中使用要比在別的產品中使用更明顯。
IBM BlueMix托管預測分析Web服務,應用SPSS模型來揭示您可以從您的應用程序調用API的分數。除了Web服務,預測分析支持批處理作業到再培訓和重新評估額外的數據模型。
在沃森中列出了18項Bluemix服務,獨立于預測分析。AlchemyAPI提供了一組的三種服務(AlchemyLanguage, AlchemyVision和AlchemyData),使企業用戶和開發者得以能夠建立認知應用程序,理解文本和圖像的內容和上下文。
概念擴展分析文本,并根據上下文學習類似的單詞或短語。概念的洞察見解鏈接文件,您可以基于維基百科主題提供了一個預先存在的概念圖表。
對話服務使您可以通過一個對話界面設計一款應用程序與用戶進行交互,使用自然語言和用戶配置文件信息。文檔轉換服務將一份單一的HTML、PDF或Microsoft Word文檔轉換為標準的HTML文件,純文本,或一組JSON格式的答案單位,可以與其他沃森服務相結合。
我用沃森分析了上述例子中提供的自行車租賃服務的數據集。沃森得出了一個擁有48%的預測強度的決策樹模型。該工作表還沒有將工作日和非工作日的自行車租客分開。
語言翻譯能夠在幾種知識域和語言對中工作。在新聞和會話領域,包括了從英語到巴西葡萄牙語,法語,現代標準阿拉伯語,或西班牙語的互譯。在專利中,互譯的語言包括英語和巴西葡萄牙語,中文,韓語,或西班牙語。翻譯服務可以識別62種語言的純文本。
自然語言分類服務應用認知計算技術,在培訓您的分類和短語之后,返回最佳匹配分類的句子、問題或短語。個性化的見解提取來自交易和社交媒體的數據(至少需要一個單一的個體所寫的1000個單詞)來識別心理特質,以JSON格式返回一個特征樹。關系通過語境分析提取句子的成分,解析檢測句子組件之間的關系(語音和部分功能)。
額外的BlueMix服務提高搜索結果的相關性、以六種語言進行文本語音的相互轉換,從文本識別情感,并分析視覺場景和對象。
沃森分析使用IBM自己的自然語言處理,使業務分析師和其他非數據科學家業務角色能夠更容易地使用機器學習。
機器學習曲線
您應該評估的機器學習服務的集合取決于您企業團隊和您自己的技能。對于數據科學家及其團隊,他們的選擇是開放的。對于那些擅長編程的數據科學家可以做的選擇會更多:選擇谷歌、Azure、以及Databricks需要比亞馬遜和SPSS Modeler掌握更多的編程知識,但他們會更靈活。
運行在Bluemix的沃森服務為開發人員的云應用程序提供了額外的與培訓的能力。Azure的幾款服務、三款谷歌的云API,以及一些基于文檔內容的Haven OnDemand API也能夠提供這類服務。
新的谷歌TensorFlow庫更適合那些精通Python、C ++或C語言的高端機器學習程序員。而谷歌云機器學習平臺似乎更適合那些熟悉Python和云數據管道的高端數據科學家。
雖然亞馬遜機器學習和沃森分析聲稱是針對業務分析師或者“任何企業業務角色”而服務的,我很懷疑他們是否能夠很好滿足這些要求。如果您企業需要開發機器學習應用程序,但卻只有很少或沒有統計學、數學或編程方面的知識背景,我會建議您企業真的需 要先行組建一支具備這方面知識的團隊。
本文作者馬丁·海勒是InfoWorld網站的特約編輯和審稿人。此前曾是一名Web和Windows程序設計顧問,他于1986年到2010年,曾經在位于馬薩諸塞州安杜佛的辦公室負責開發過數據庫,軟件和網站。最近,他曾擔任過Alpha Software公司的技術和教育的副總裁,以及Tubifi的董事長兼CEO。