微軟、Databricks、谷歌、惠普企業(yè)和 IBM 都為解決許多機器學(xué)習(xí)問題提供了工具。本文將簡要分析這6種商業(yè)機器學(xué)習(xí)解決方案的特點。
AWS:替你選擇模型
亞馬遜試圖讓機器學(xué)習(xí)能夠為普通人所利用。亞馬遜希望的是,分析師只需要理解那些被解決的問題本身,而不需要理解數(shù)據(jù)科學(xué)和機器學(xué)習(xí)算法。
總的來說,要使用亞馬遜機器學(xué)習(xí),你首先要把你的數(shù)據(jù)整理為 CSV 格式、上傳到亞馬遜的 S3 服務(wù);然后你創(chuàng)造、訓(xùn)練和評估你的機器學(xué)習(xí)模型;最終,你能用它進行批量或?qū)崟r的預(yù)測。每個步驟都是迭代性的,整個過程亦然。機器學(xué)習(xí)并不是一件簡單靜態(tài)的事,盡管我們可以把算法選擇的部分留給亞馬遜來做。
亞馬遜機器學(xué)習(xí)支持3類模型——二元分類、多類別分類和回歸——每個類型都有一個對應(yīng)的算法。在優(yōu)化方面,亞馬遜機器學(xué)習(xí)使用隨機梯度下降(SGD),這種方法能在訓(xùn)練數(shù)據(jù)中建造多序列通路(multiple sequential passes),更新每個小批量樣本的特征權(quán)重,從而將損失函數(shù)最小化。損失函數(shù)是指現(xiàn)實值和預(yù)測值之間的差異。梯度下降優(yōu)化法只在連續(xù)、可微的損失函數(shù)(例如 logistic 函數(shù)和平方損失函數(shù) )的情況下工作良好。
對二元分類,亞馬遜機器學(xué)習(xí)使用了 logistic 回歸(logistic 損失函數(shù)加上隨機梯度下降)。對多類別分類,亞馬遜機器學(xué)習(xí)使用了多元 logistic 回歸(多元 logistic 損失函數(shù)加上隨機梯度下降)。對回歸,亞馬遜機器學(xué)習(xí)使用了線性回歸(平方損失函數(shù)加上隨機梯度下降)。
在亞馬遜機器學(xué)習(xí)服務(wù)中訓(xùn)練和評估了一個二元分類模型之后,你可以選擇你自己的分數(shù)閾限,以獲得你所想要的誤差率。此處,我們把閾限值從默認的 0.5 提高了,這樣我們就可以為市場和銷售提供更強的指導(dǎo)。來源:inforworld.com
亞馬遜機器學(xué)習(xí)通過目標(biāo)數(shù)據(jù)的類型來決定所要解決的機器學(xué)習(xí)任務(wù)的類型。例如,具有數(shù)字目標(biāo)變量的預(yù)測問題意味著回歸。而對那些具有非數(shù)字目標(biāo)變量的預(yù)測問題,如果目標(biāo)狀態(tài)是兩個,那就對應(yīng)二元分類模型;如果目標(biāo)狀態(tài)是多個,就對應(yīng)多類別分類模型。
亞馬遜機器學(xué)習(xí)服務(wù)中的特征選項保存在清單中。當(dāng)對數(shù)據(jù)源的描述性統(tǒng)計被計算好之后,亞馬遜就會創(chuàng)造出一個默認的清單。在你將應(yīng)用于數(shù)據(jù)的機器學(xué)習(xí)模型中,你既可使用這個清單,也不用它。一旦你擁有了一個能達到你的評估要求的模型,你就可以用它來建立一個實時網(wǎng)絡(luò)服務(wù),或批量地產(chǎn)生預(yù)測。但請記住,與物理常量不同的是,人的行為隨著時間而改變。你需要定期檢查你的模型所產(chǎn)生的預(yù)測準確度標(biāo)準,并在需要時重新訓(xùn)練它。
微軟 Azure:有了經(jīng)驗?zāi)阍賮?/strong>
與亞馬遜不同,微軟試圖為有經(jīng)驗的數(shù)據(jù)科學(xué)家提供一整套算法和工具。因此,Azure 機器學(xué)習(xí)是更廣泛的微軟 Cortana 分析套裝中的一部分。微軟 Azure 機器學(xué)習(xí)也擁有拖拽式的界面,以便于構(gòu)造模型訓(xùn)練和評估來自模塊的數(shù)據(jù)流。
Azure 機器學(xué)習(xí)工具包括導(dǎo)入數(shù)據(jù)集、訓(xùn)練和發(fā)布實驗性模型、在 Jupyter Notebooks 中處理數(shù)據(jù)和保存已訓(xùn)練的模型等功能。該機器學(xué)習(xí)工具中包含數(shù)十個樣本數(shù)據(jù)集,五個數(shù)據(jù)格式轉(zhuǎn)換方式,多個讀取和寫入數(shù)據(jù)的方式,數(shù)十種數(shù)據(jù)轉(zhuǎn)換和三個用來選擇特征的選項。在 Azure 機器學(xué)習(xí)服務(wù)中,你將為異常檢測、分類、聚類和回歸找到多種模型;此外還有四種為模型打分的方法、三種評估模型的策略和六種訓(xùn)練模型的過程。你也可以使用兩個 OpenCV(開源計算機視覺)模塊、統(tǒng)計學(xué)方程和文本分析工具。
上面這些已包含很多東西了,如果你理解你的生意、數(shù)據(jù)和模型,那么理論上它們足夠用來以任何模型來處理任何數(shù)據(jù)了。當(dāng)既有的 Azure 機器學(xué)習(xí)工具模塊無法實現(xiàn)你想要的東西時,你也可以自己開發(fā) Python 或 R 模塊。
你可以用 Jupyter Notebooks 來開發(fā)和測試 Python 2 和 Python 3 語言模塊。Jupyter Notebooks 已擴展了 Azure 機器學(xué)習(xí)服務(wù)的 Python 客戶庫,也擴展了 scikit-learn、matplotlib 和 NUmpy,從而能夠處理你在 Azure 中存儲的那些數(shù)據(jù)。Azure Jupyter Notebooks 將來也會支持 R 語言,目前,你可以在本地使用 Rstudio 以改變 Azure 的輸入輸出,或者在微軟數(shù)據(jù)科學(xué) VM 中安裝 Rstudio。
當(dāng)你在 Azure 機器學(xué)習(xí)服務(wù)中創(chuàng)造一個新實驗時,你既可以從零開始,也可以從微軟的 70 個樣本開始,這些樣本覆蓋了大部分常用模型。此外在 Cortana Gallery 還可以找到其他 Azure 社區(qū)的內(nèi)容。
微軟 Azure 機器學(xué)習(xí)服務(wù)能迅速產(chǎn)生網(wǎng)絡(luò)服務(wù)以發(fā)布訓(xùn)練好的模型。圖中這個簡單模型來自一篇對 Azure 機器學(xué)習(xí)的互動式導(dǎo)論。來源:inforworld.com
要使用 Cortana 分析過程(CAP),應(yīng)從計劃和安裝的步驟開始。這很重要,除非你已經(jīng)是一名對商業(yè)問題、數(shù)據(jù)和 Azure 機器學(xué)習(xí)都十分熟悉的受過訓(xùn)練的數(shù)據(jù)科學(xué)家,并已為項目創(chuàng)造了必要的 CAP 環(huán)境。CAP 環(huán)境中可以包含一個 Azure 存儲帳號,一個微軟數(shù)據(jù)科學(xué) VM,一個 HDInsight (Hadoop) 群組和一個使用 Azure 機器學(xué)習(xí)服務(wù)的機器學(xué)習(xí)工作空間。如果這些選項令你困惑,你可以參考微軟的文檔。安裝好之后,CAP 包含5個后續(xù)步驟:消化數(shù)據(jù)、探索性數(shù)據(jù)分析和預(yù)處理,特征生成,模型生成和對模型的部署與使用。
微軟最近發(fā)布了一系列的認知服務(wù),這些服務(wù)已從牛津項目(Project Oxford)進化成了 Azure 預(yù)覽服務(wù)。這些認知服務(wù)已在語音、文本分析、面孔識別、情緒識別和其他類似能力方面進行了預(yù)訓(xùn)練。除了你自己訓(xùn)練的模型之外,這些認知服務(wù)也可以作為補充。
中級玩家平臺 Databricks
Databricks 是一個基于 Apache Spark 的商業(yè)云服務(wù)。而 Apache Spark 是一個開源集群計算框架,它包括一個機器學(xué)習(xí)庫、一個集群管理器、一個類似 Jupyter 的互動式筆記本、儀表盤和工作項目列表。Databricks 公司由 Spark 的發(fā)明者建立,因此通過 Databricks 服務(wù)你可以毫不費力地玩轉(zhuǎn)那些 Spark 集群。
它的庫 MLlib 包含范圍廣泛的機器學(xué)習(xí)和統(tǒng)計算法,這些算法都針對基于內(nèi)存的分布式 Spark 架構(gòu)方面進行了調(diào)整。MLlib中包含總結(jié)性統(tǒng)計、相關(guān)、取樣、假設(shè)檢驗、分類和回歸、協(xié)同過濾、聚類分析、降維、特征提取和轉(zhuǎn)換函數(shù)、優(yōu)化算法等等。換句話說,對有經(jīng)驗的數(shù)據(jù)科學(xué)家來說,它是一個相當(dāng)完整的工具包。
上面這個具有 Python 代碼的 Databricks 筆記本頁面展示了一種對公共自行車租用數(shù)據(jù)集的分析方法。在筆記本的這個部分,我們正在訓(xùn)練管道,通過使用交叉驗證來運行多個梯度上升樹回歸。來源:infoworld.com
Databricks 被設(shè)計為可規(guī)?;?、相對易用的數(shù)據(jù)科學(xué)平臺,其目標(biāo)使用者是那些已了解統(tǒng)計學(xué)并能做一點編程的人。要有效地使用它,你需要知道一些 SQL,也需要從 Scala、R 或 Python 中了解其中之一。如果你精通你所選擇的語言,那就更好了,因為這樣你就可以集中精力學(xué)習(xí) Spark了。你可以通過在免費的 Databricks 社區(qū)版集群上運行 Databricks 筆記本的樣本來嘗試進行最初的使用。
高手請進:谷歌機器學(xué)習(xí)云
谷歌最近宣布了多個機器學(xué)習(xí)相關(guān)的產(chǎn)品。其中最有趣的是云學(xué)習(xí)和云語音 API,這二者目前都限于預(yù)覽。谷歌的翻譯 API 和云視覺 API 已經(jīng)可供使用,其中谷歌翻譯可以識別語言并在 80 多種語言和方言之間進行翻譯,而云視覺可以從圖像中識別多種特征。從谷歌發(fā)布的試用版看,它們表現(xiàn)得不錯。
谷歌預(yù)測(Google Prediction ) API 能夠訓(xùn)練、評估和預(yù)測回歸和分類問題,但用戶無法選擇采用什么算法。(它起源于 2013 年。)
我在 TensorFlow 的 Github 存放目錄中檢查了它的代碼。我讀了它的一些 C、C++ 和 Python 代碼。我也研讀了 TensorFlow 網(wǎng)站和白皮書。TensorFlow 讓你能夠從電腦桌面、服務(wù)器或手機上對單個或多個 CPU 或 GPU 部署計算。它擁有內(nèi)置的各種訓(xùn)練算法和神經(jīng)網(wǎng)絡(luò)算法。從挑戰(zhàn)難度的極客角度看,如果難度總分 10 分那么它能得9分。它的難度不僅超出了商業(yè)分析師的能力,也會令許多數(shù)據(jù)科學(xué)家感到困難。
谷歌翻譯 API、云視覺 API 和新的谷歌云語音 API 都是預(yù)訓(xùn)練的機器學(xué)習(xí)模型。根據(jù)谷歌的說法,它的云語音 API 使用神經(jīng)網(wǎng)絡(luò)技術(shù)與支撐 Google app 語音搜索和支撐 Google Keyboard 語音打字的技術(shù)是同一種。
Haven OnDemand,還差那么一點點
Haven OnDemand 目前擁有音頻-視頻分析、連接器、格式轉(zhuǎn)換、圖形分析、惠普實驗室沙盒、圖像分析、政策、預(yù)測、查詢概覽與操作、搜索、文本分析和非結(jié)構(gòu)化文本索引等 API。我用一個隨機集做試驗,探索了這些 API 是如何被調(diào)用和使用的。
Haven 語音識別只支持6種語言和方言。它對我的高質(zhì)量美式英語測試文件的識別準確率還行,但并不完美。
Haven OnDemand 連接器(connector)讓你能夠從外部系統(tǒng)中提取信息并通過 Haven OnDemand API 來更新信息。該連接器已相當(dāng)成熟,這是因為它是基于惠普的搜索服務(wù) IDOL 的連接器。文本提取 API 使用惠普企業(yè)的 KeyView 服務(wù)來從你提供的文件中提取元數(shù)據(jù)和文本內(nèi)容;由于 KeyView 已相當(dāng)成熟,該 API 能處理超過 500 種不同的文件格式。
圖形分析是一組預(yù)覽服務(wù),它只按照一個從英文維基百科訓(xùn)練而來的索引而工作。你不能用你自己的數(shù)據(jù)來訓(xùn)練它。
我使用圖像分析 API 試驗了條形碼識別,結(jié)果還不錯。我也試驗了面孔識別,這時它對我的測試圖像的識別沒有它對惠普企業(yè)自己的樣本識別得好。圖像識別目前還只限于一組固定的企業(yè)標(biāo)識,用處有限。
Haven OnDemand 的條形碼識別 API 可以從圖像文件中圈出條形碼(見紅色方框)并把它轉(zhuǎn)化為數(shù)字,即便條形碼的表面是彎曲的、是 20 度傾斜的或模糊的。該 API 不會進一步去查詢條形碼數(shù)字和識別產(chǎn)品。來源:infoworld.com
我失望地發(fā)現(xiàn),惠普企業(yè)的預(yù)測性分析只處理二元分類問題:沒有多類別分類,也沒有回歸,更不要提無引導(dǎo)學(xué)習(xí)了。這嚴重限制了它的應(yīng)用范圍。不過從好的一面看,它的訓(xùn)練預(yù)測 API 能對 CSV 或 JSON 數(shù)據(jù)進行自動驗證、探索、分離和準備,并用于訓(xùn)練決策樹、Logistic 回歸、樸素貝葉斯,并支持多參數(shù)的向量機(SVM)二元分類模型。之后,它會用數(shù)據(jù)中的評估部分來測試分類器,并將最優(yōu)的模型發(fā)布為服務(wù)。
Haven OnDemand 搜索使用 IDOL 引擎來執(zhí)行對公共和私有文本索引的高級搜索。文本分析 API 則既能進行簡單的自動補全、詞匯擴展,也能進行語言識別、概念提取和情感分析。
IBM Watson 預(yù)測分析服務(wù)
IBM 提供了基于 Watson 的機器學(xué)習(xí)服務(wù)和 IBM SPSS Modeler。IBM 實際上為開發(fā)者、數(shù)據(jù)科學(xué)家和商業(yè)用戶這3類用戶準備了不同的機器學(xué)習(xí)服務(wù)。
SPSS Modeler 是一個 Windows 應(yīng)用,最近也可以在云上使用它了。Modeler 的個人版包括數(shù)據(jù)導(dǎo)入和導(dǎo)出、數(shù)據(jù)自動準備、整理和抽取轉(zhuǎn)換裝載(ETL)等功能。它擁有 30 多種基本的機器學(xué)習(xí)算法和自動建模方法,具有 R 語言可擴展性,可使用 Python 腳本。更昂貴的版本則能通過 IBM SPSS 分析服務(wù)器來使用大數(shù)據(jù),使用 Hadoop/Spark、冠軍-挑戰(zhàn)者功能、 A/B 測試,文本與實體分析以及社交網(wǎng)絡(luò)分析。
SPSS Modeler 中的機器學(xué)習(xí)算法、特征選擇方法和對支持格式的選擇,都可以拿來和 Azure 機器學(xué)習(xí)、Databricks Spark 機器學(xué)習(xí)的相應(yīng)部分進行比較。甚至它的自動建模(訓(xùn)練并評估多個模型并挑選最優(yōu)者)部分也可以拿來比較,盡管在 SPSS Modeler 中,用戶更容易弄明白如何自動建模。
IBM 的 Bluemix 云容納了預(yù)測性分析網(wǎng)絡(luò)(Predictive Analytics Web)服務(wù),該服務(wù)可以應(yīng)用 SPSS 模型,向你提供評價性 API,而你可以在你的 apps 里調(diào)用它。除了網(wǎng)絡(luò)服務(wù)外,預(yù)測性分析也支持批量工作,以對額外數(shù)據(jù)進行重新訓(xùn)練和重新評估。
Watson 名下除了預(yù)測性分析之外,還有 18 種 Bluemix 服務(wù)。其中 Alchemy API 向用戶提供三種服務(wù)(Alchemy 語言、Alchemy 視覺和 Alchemy 數(shù)據(jù)),它能夠讓商業(yè)公司和研發(fā)者建立認知性應(yīng)用,從而理解文本和圖像中的內(nèi)容和語境。
概念擴展 API 可以分析文本并基于語境學(xué)習(xí)類似的詞語或詞組。概念洞察 API 可以把你提供的文件與既有的基于維基百科話題的概念圖連接起來。而對話服務(wù)則讓你能夠使用自然語言和用戶概要信息,通過對話界面設(shè)計應(yīng)用與用戶互動的方式。文檔轉(zhuǎn)換服務(wù)把單一的 HTML、PDF 或微軟 Word 文檔轉(zhuǎn)換為標(biāo)準化 HTML,純文本或可以用于其他 Watson 服務(wù)的 JSON 格式的答案單元集。
我使用 Watson 分析一個常見的出租自行車數(shù)據(jù)集,得到了一個具有 48% 預(yù)測力的決策樹。該表格并未區(qū)分工作日騎車者和非工作日騎車者。來源:infoworld.com
語言翻譯服務(wù)則處理多個知識領(lǐng)域和語言對。在新聞和談話領(lǐng)域,語言對包括英語、巴西式葡語,法語、現(xiàn)代標(biāo)準阿拉伯語和西班牙語。在專利領(lǐng)域,語言對包括英語、巴西式葡語、漢語、韓語和西班牙語。翻譯服務(wù)可以從 62 種語言中識別出某個純文本的語言。
自然語言分類器服務(wù)運用認知計算技術(shù),通過在你的類別和短語集上進行訓(xùn)練,可以返回對句子、問題或短語的最佳匹配類別。個性洞察力服務(wù)從交易和社交媒體數(shù)據(jù)(其中每個個體至少要提供 1000 個單詞的數(shù)據(jù))中判斷個體的心理特質(zhì),這些特質(zhì)被記錄在 JSON 格式的性格樹之中。關(guān)系提取服務(wù)則把句子分析為多個部分,并通過語境分析來探測這些(詞性和功能)部分之間的關(guān)系。
其他 Bluemix 服務(wù)有的能提高搜索結(jié)果的相關(guān)性,有的在6種語言的文本和語音之間進行轉(zhuǎn)換,有的從文本中識別情緒,還有的能分析視覺場景和對象。
Watson 分析服務(wù)使用了 IBM 自己的自然語言處理工具,讓商業(yè)分析師和其他非數(shù)據(jù)科學(xué)家能更容易地用機器學(xué)習(xí)。
哪家平臺最適合你?
你應(yīng)該基于你自己和你的團隊的技能來衡量上面這些企業(yè)提供的機器學(xué)習(xí)服務(wù)。
對數(shù)據(jù)科學(xué)家和那些擁有數(shù)據(jù)科學(xué)家的團隊來說,選擇面很寬。擅長編程的數(shù)據(jù)科學(xué)家還可以做更多的事:Google、Azure、Databricks 比 Amazon、SPSS Modeler 需要更多的編程技能,不過前3個也因此變得更具靈活性。
在 Bluemix 上運行的 Watson 服務(wù)在云應(yīng)用方面為開發(fā)者提供了額外的預(yù)訓(xùn)練能力。若干 Azure 服務(wù)、3 個谷歌云 API 和若干 Haven OnDemand API 也在文檔內(nèi)容方面提供了預(yù)訓(xùn)練能力。
谷歌 TensorFlow 庫適用于那些能流利使用 Python,C++ 或 C 的高端機器學(xué)習(xí)編程者。谷歌的云機器學(xué)習(xí)平臺似乎適用于了解 Python 和云數(shù)據(jù)管道的高端數(shù)據(jù)科學(xué)家。
盡管亞馬遜機器學(xué)習(xí)和 Watson 分析服務(wù)宣稱它們的目標(biāo)用戶是商業(yè)分析師或“任何商業(yè)職位”,我很懷疑他們這一說法能否實現(xiàn)。如果你需要開發(fā)機器學(xué)習(xí)應(yīng)用,但卻缺乏統(tǒng)計數(shù)學(xué)或編程背景,我認為你應(yīng)該在你的團隊中引入懂這些的人。
各家機器學(xué)習(xí)云大比拼
亞馬遜機器學(xué)習(xí)
優(yōu)點:
它替你選擇模型,從而簡化了模型選擇過程
它根據(jù)模型提供實時和批量預(yù)測
當(dāng)你需要時,它可以為模型提供恰當(dāng)?shù)膱D表和診斷
能夠處理來自 S3, RDS MySQL 和 Redshift 的訓(xùn)練數(shù)據(jù)
能自動進行一些文本處理
可以用 Linux,Windows 或 Mac OS X 使用 API
缺點:
不包括探索性數(shù)據(jù)分析
不允許分析師調(diào)整改變算法
無法導(dǎo)入或?qū)С瞿P?/p>
微軟 Azure 機器學(xué)習(xí)
優(yōu)點:
有多種模型可供選擇,還能用 R 或 Python 編寫新模型
使用拖拽界面,可以輕易地進行模型設(shè)計和訓(xùn)練
可以使用 Azure 云中的真實數(shù)據(jù)進行探索性數(shù)據(jù)分析
入門免費
從任何網(wǎng)絡(luò)瀏覽器都可進入它
缺點:
要擁有數(shù)據(jù)科學(xué)家的技能才能選出恰當(dāng)特征、找到最佳模型
探索性數(shù)據(jù)分析需要一定的 Python 或 R 編程能力
將 R 結(jié)果傳遞給流程時會發(fā)生困難
Databricks 及 Spark 1.6
優(yōu)點:
對 Spark cluster 進行擺弄和規(guī)?;兊煤芎唵?/p>
為數(shù)據(jù)科學(xué)家提供了范圍廣泛的機器學(xué)習(xí)工具
提供了一個使用 R, Python, Scala, SQL 的協(xié)作性筆記本界面
免費入門,價格低廉
容易對產(chǎn)品工作進度進行安排
缺點:
不如 BI 產(chǎn)品好用,雖然整合了一些 BI 產(chǎn)品
用戶需要熟悉編程、數(shù)據(jù)分析和機器學(xué)習(xí)算法
惠普企業(yè) Haven OnDemand
優(yōu)點:
強大的文檔格式轉(zhuǎn)換能力
強大的企業(yè)搜索能力
價格合理
缺點:
有些服務(wù)尚不成熟
有些服務(wù)范圍狹窄,限制了其適用范圍
IBM Watson 與預(yù)測分析服務(wù)
優(yōu)點:
點幾下鼠標(biāo),就能使用 SPSS Modeler 提供的范圍廣泛的模型
Bluemix 預(yù)測分析網(wǎng)絡(luò)服務(wù)表現(xiàn)良好,價格合理
Watson Bluemix 服務(wù)為開發(fā)者提供了優(yōu)質(zhì)、價格合理的技術(shù)能力
Watson 分析服務(wù)使用自然語言,從而讓那些經(jīng)驗較少者也能輕易地建立模型
缺點:
按照當(dāng)前標(biāo)準,SPSS MOdeler 價格昂貴
Bluemix 預(yù)測分析網(wǎng)絡(luò)服務(wù)要求 SPSS 模型 Watson 分析服務(wù)在易用性方面用力過猛