當前位置:
首頁 > 知識 > 想快速部署機器學習項目?來看看幾大主流機器學習服務平台對比吧

想快速部署機器學習項目?來看看幾大主流機器學習服務平台對比吧

日前,kdnuggets 上的一篇文章對比了三大公司(谷歌、微軟和亞馬遜)提供的機器學習服務平台,對於想要啟動機器學習項目的公司或是數據科學新手來說,提供了非常多的指導和建議。

AI 研習社將原文編譯整理如下:

對於大多數企業來說,機器學習就像航空航天一樣遙遠,聽起來既昂貴,還需要高科技人才。從某種角度來說,如果你想建立一個像 Netflix 一樣好的推薦系統,那確實是昂貴且困難。但是,目前這個複雜的領域有一個趨勢:一切皆服務(everything-as-a-service)——無需太多投資,即可快速啟動機器學習計劃。如果你是數據科學的新手,想要抓住當下的機會,這將是一種正確的選擇。

機器學習里最令人鼓舞的故事之一(http://suo.im/3EZcVw)就是,一個日本農民,為了減輕他父母的工作負擔,決定設計一個自動分揀黃瓜的系統。不像其他的大型公司,這個人並沒有機器學習的專業知識,也沒有很多預算,但是他努力學會了 TensorFlow,並使用深度學習來識別不同種類的黃瓜。

通過使用機器學習雲服務,你可以開始構建第一個工作的模型,只要一小個團隊,就可以從機器學習的預測中獲得有價值的信息。許多人已經討論過不同的機器學習的策略。現在讓我們來看看市場上最好的機器學習平台都有哪些服務。

什麼是機器學習服務

機器學習服務(Machine learning as a service, MLaaS)包含機器學習大多數基礎問題(比如數據預處理,模型訓練,模型評估,以及預測)的全自動或者半自動雲平台的總體定義。預測結果可以通過 REST API 與內部的 IT 基礎架構橋接。

Amazon 機器學習服務,Azure 機器學習和 Google Cloud AI 是最領先的三個雲 MLaaS 服務,允許在很少甚至沒有數據科學專業知識的情況下進行快速模型訓練和部署。如果你還沒有數據科學團隊,可以參看我們的另一篇文章(http://suo.im/3izwET),看看團隊都需要擁有哪些技能的人才。

在本文中,我們將首先概述 Amazon,Google 和 Microsoft 的主要機器學習服務平台,並比較這些供應商所支持的機器學習 API。這並不是如何使用這些平台的說明,而是在開始閱讀平台的文檔之前所需要做的功能調研。

針對定製化的預測分析任務的機器學習服務

使用 Amazon ML 進行預測分析

亞馬遜的機器學習服務有兩個層面:用於預測分析的 Amazon ML 和針對數據科學家設計的 SageMaker。

Amazon Machine Learning(http://t.cn/RE8Xed7) 是市場上最自動化的解決方案之一,最適合對處理效率敏感的操作。該服務可以載入來自多個來源的數據,包括 Amazon RDS,Amazon Redshift,CSV 文件等。所有數據的預處理操作都是自動執行的:包括確認哪些欄位是分類標籤,哪些是數字,而且不需要用戶選擇進一步的數據預處理方法(降維還是白化)。

Amazon ML 的預測能力限於三種:二分類,多分類,以及回歸任務。也就是說,Amazon ML 服務不支持無監督的學習方法,用戶必須在訓練集中選擇標記好的目標變數。而且,用戶不需要知道任何機器學習方法,Amazon 會在分析提供的數據之後自動選擇機器學習方法。

這種高自動化的水平既是 Amazon ML 的優勢,也是劣勢。如果您需要一個完全自動化,但是功能有限的解決方案,那麼這個服務非常適合你。但是如果不是這樣的話,你可以選擇 SageMaker。

Amazon SageMaker 以及基於框架的服務

SageMaker(http://suo.im/1I1bvM) 是一個機器學習環境,通過提供快速建模和部署工具來簡化數據科學家的工作。例如,它提供 Jupyter(https://jupyter.org/) 來簡化數據瀏覽和分析。Amazon 也提供了內置的演算法,針對分散式系統中的大型數據集和計算進行了優化。這些演算法包括:

線性學習器,一種用於分類和回歸的監督方法。

用於稀疏數據集的分類和回歸的分解機(Factorization Machine)。

XGBoost 是一個有監督的提升樹演算法,通過結合簡單演算法的預測來提高分類,回歸以及排序的預測精度。

基於 ResNet(https://arxiv.org/abs/1512.03385) 的圖像分類,也可以應用於遷移學習。

Seq2seq 是用於預測序列的監督演算法,可用於翻譯句子,將句子總結為更短的辭彙等。

K-means 是一種用於聚類任務的無監督學習方法。

主成分分析(PCA),可以用於數據降維。

隱含狄利克雷分布(Latent Dirichlet allocation)是用於文檔歸類的無監督方法。

神經主題模型(Neural topic model, NTM)是一種無監督方法,它可以遍歷文檔,找出高頻辭彙,並根據內容定義文檔的主題(用戶不能預先定義主題的名稱,但是可以設置話題的數量)。

SageMaker 中內置的方法與 Amazon 推薦的 ML API 在很大程度上有交集,但在這裡它允許數據科學家定製使用,並使用自己的數據集。

如果你不想使用這些功能,你也可以添加自己的方法,並通過 SageMaker 利用它的部署功能運行模型。或者也可以將 SageMaker 與 TensorFlow 或 MXNet(http://suo.im/4iOEUq) 等深度學習庫集成在一起。

一般來說,亞馬遜的機器學習服務為經驗豐富的數據科學家和只需要完成工作而不需深入準備數據集和建模的人都提供了足夠的自由。對於那些已經使用亞馬遜環境並且不打算轉移到其他雲供應商的公司來說,這是一個可靠的選擇。

Microsoft Azure 機器學習工作室(Machine Learning Studio)

Azure Machine Learning 意在為新手和經驗豐富的數據科學家建立一個強大的工作空間。微軟的機器學習產品功能與亞馬遜的類似,但就目前而言,Azure 的現成演算法更加靈活。

Azure 提供的服務可以分為兩大類:Azure Machine Learning Studio 和 Bot 服務。讓我們首先了解一下 Azure ML Studio,在之後介紹特定 API 和工具的部分時,回到 Bot 服務。

ML Studio(http://t.cn/RE8aGKz) 是微軟 MLaaS 的主要部分,幾乎所有的 Azure ML Studio 中的操作都必須手動完成:包括瀏覽數據,預處理,選擇方法,以及驗證模型結果。

使用 Azure 進行機器學習的學習曲線可能比較陡,但是這也能使得用戶對該領域的主要技術有更深入的了解。另一方面,Azure ML 支持圖形界面,可以可視化工作流程中的每一個步驟。使用 Azure 的主要好處是可以使用各種演算法。ML Studio 支持大約 100 種解決分類(包括二分類和多分類),異常檢測,回歸,推薦和文本分析方法。值得一提的是,該平台也支持一種聚類演算法(K-means)。

Azure ML 的另一大部分是 Cortana Intelligence Gallery(https://gallery.azure.ai/)。它是由社區提供的機器學習解決方案的集合,供數據科學家開發和利用。Azure 對於從事機器學習的人來說是一個強大的工具。

Google 預測 API

Google 在兩個層面上提供 AI 服務:針對高級數據科學家的機器學習引擎,和高度自動化的 Google 預測 API。不過,谷歌將在 2018 年 4 月 30 日停用預測 API 服務。

即將停用的預測 API 類似於 Amazon ML,只有兩個很精簡的方法,主要用於解決兩個問題:分類(二類和多類)和回歸。訓練好的模型可以通過 REST API 介面進行部署。

Google 並沒有公開預測中使用了哪些演算法,也不能讓工程師自定義模型。Google 的環境最適合在緊迫的期限內進行機器學習,並推出初始版本的 ML 模型。然而這個產品並沒有像谷歌所期望的那麼受歡迎。

那麼接替 Google 預測 API 的是什麼呢?

Google 雲端機器學習引擎

預測 API 的高度自動化是以犧牲靈活性為代價的。Google ML Engine(http://suo.im/297Hds) 正好相反。它適用於經驗豐富的數據科學家,非常的靈活,建議大家使用 TensorFlow 的雲基礎設施作為機器學習的驅動。Google ML Engine 大體上與 SageMaker 相似。

TensorFlow(https://www.tensorflow.org/) 是 Google 的另一個產品,它是一個開源機器學習庫(http://suo.im/1Mqjqe),包含各種數據科學工具,它並不是 ML-as-a-service。它沒有可視化界面,TensorFlow 的學習曲線非常陡峭。但是,這個庫也面向想要轉向數據科學的軟體工程師。TensorFlow 非常強大,主要針對深度神經網路的任務。

基本上,TensorFlow 和 Google 雲服務結合,構成了三層服務模型,包括了基礎架構服務和平台服務解決方案。

用一句話來總結機器學習服務平台:Azure 是目前 MLaaS 市場上擁有功能最多的工具集,它涵蓋了大多數與 ML 相關的任務,為構建自定義模型提供了一個可視化的界面,並且為那些不想深入了解數據科學的人提供了一套可靠的 API。但是相較於亞馬遜,它仍然缺乏自動化的能力。

Amazon,Microsoft,Google 機器學習 API 的比較

除了成熟的平台之外,還可以使用高級的 API。這些都是使用訓練好的模型的服務,只需要將數據輸入,就可以得到結果。API 不需要機器學習的專業知識。目前,這三家廠商的 API 大致可以分為三類:

文本識別,翻譯和文本分析

圖像 + 視頻識別和相關分析

其他,包括某些未分類服務

語音和文本處理 API:Amazon

Amazon 提供了多個針對文本分析中常見任務的 API。這些 API 是高度自動化的,只需適當的整合就可以工作。

Amazon Lex(http://t.cn/RE8aYPL)

Lex API 是為了能將聊天機器人(http://t.cn/RE8aQVH)嵌入到應用中而設計的,它包含了自動語音識別(ASR)和自然語言處理(NLP)的能力。這些都基於深度學習模型。API 可以識別書面文本和語音,Lex 介面允許將識別出的結果連接到各種後端解決方案。很顯然,亞馬遜鼓勵使用自家的 Lambda(http://t.cn/RE8anIA) 雲環境。所以在訂閱 Lex 服務之前,最好熟悉一下 Lambda 雲環境。除了獨立的應用程序之外,Lex 目前也支持在 Facebook Messenger,slack 和 Twilio 部署聊天機器人。

Amazon Transcribe(http://suo.im/2yWpwq)

Lex 是一個複雜的以聊天機器人為導向的工具,而 Transcribe 僅應用於語音識別。該工具可以識別多個說話人,同時也能很好的識別低質量的音頻,比如電話音頻。這些功能使得這個 API 成為音頻歸檔分類的一個很好的解決方案, 也可以進一步為電話呼叫中心的數據文本分析提供支持。

Amazon Polly(http://suo.im/j6yh5)

Polly 服務與 Lex 相反,它是將文本轉換為語音, 這能夠使聊天機器人通過語音的方式回復,這個 API 並不會生成文本,只是讓文本的發音更接近與人類。如果你曾經使用過 Alexa,你就會知道這種聲音是什麼樣的。目前,它支持 25 種語言的男性和女性的聲音,主要是英語和西歐語言。一些語言有多種男性和女性的聲音,所以甚至可以有多種選擇。與 Lex 一樣,建議將 Polly 與 Lambda 一起使用。

Amazon Comprehend(http://suo.im/22KZ7)

Comprehend 是另一個 NLP API 集。與 Lex 和 Transcribe 不同,它針對不同的文本分析任務而設計。目前,Comprehend 支持:

實體提取(識別名字,日期,組織等等)

關鍵短語檢測

語音識別

情感分析(文本是積極,中立,還是消極)

主題建模(通過分析關鍵字定義文本主題)

該服務可以幫助分析社交媒體的回復,評論,以及不適合手動分析的其他大型文本數據,比如 Comprehend 和 Transcribe 的組合將有助於分析客服的電話服務。

Amazon Translate(http://suo.im/3lF12W)

就像名稱所表達的一樣,Translate 服務是用來翻譯文本的。Amazon 聲稱,該服務使用的神經網路,與基於規則的翻譯方法相比,能夠提供更高的翻譯質量。然而,目前版本只支持阿拉伯文、中文、法文、德文、葡萄牙文和西班牙文這六種語言與英文的互譯。

語音和文本處理 API:Microsoft Azure Congnitive Services

與亞馬遜一樣,微軟也提供高級 API:Congnitive Services(http://suo.im/3gvp2k),可以與你的基礎平台集成到一起來完成任務,並不需要任何數據科學的專業知識。

Speech

Speech 集包含四個 API,針對自然語言識別和一些其他任務使用了不同類型的自然語言處理(NLP)技術:

語音翻譯 API

Bing Speech API:文本和語音之間的互相轉換

說話人識別:可用於語音驗證任務

定製化的語音服務,可使用 Azure 的自然語言處理方法處理自己的數據和模型

Language

微軟的 Language API 與 Amazon Comprehend 類似,側重於文本分析:

Language Understanding Intelligent Service 是一個分析文本意圖,並將之轉換為命令的 API(例如「運行 YouTube」,或者「打開客廳燈」等)

用於情感分析和定義主題的文本分析 API

Bing 拼寫檢查

文本翻譯 API

Web 語言模型 API,用於估計單片語合的概率,並實現單詞的自動智能補全

語言分析 API,用於分句,標註詞類,並將文本分成標記的短語

語音和本文處理 API:Google 雲服務

雖然這套 API 與亞馬遜、微軟 Azure 的 API 相似,但也擁有一些獨特和有趣的東西。

Dialogflow(http://suo.im/3fW5Ej)

現今各種聊天機器人已經成為趨勢,Google 也提供了一些服務。Dialogflow 採用了 NLP 技術,旨在發現文本中表達的意圖,並解釋人想要什麼。可以使用 java,Node.js 和 Python 為 API 調整和定製功能。

雲端自然語言 API(http://suo.im/11yYrR)

這其中的核心功能幾乎與 Amazon comprehend 和微軟的 Languate 完全相同。

在文本中識別實體

識別情緒

分析語法結構

分類主題(比如食物, 新聞, 電子等等)

雲端語音 API(http://suo.im/2zDNHZ)

這項服務用於識別自然語音,與其他公司類似的 API 相比,其主要優勢在於 Google 支持更豐富的語言。目前,它支持全球 110 多種語言。額外功能如下:

Word hints,允許定製識別到特定的上下文或者默寫單詞(例如,可以更好的理解當地的或者行業內的術語)

過濾不當內容

處理嘈雜的音頻

雲翻譯 API(https://cloud.google.com/translate/)

基本上,你可以使用該 API 將 Google 翻譯集成到產品中,包含 100 多種語言的自動檢測和翻譯。

除了文本和語音,Aamzon,Microsoft 和 Google 還提供了用於圖像和視頻分析的常用 API。

儘管圖像分析和視頻 API 密切相關,但是許多視頻分析工具仍處於開發或測試階段。例如,Google 對許多圖像處理任務提供了豐富的支持,但是缺乏一些微軟和亞馬遜已經支持的視頻分析功能。

圖像和視頻處理 API:Amazon Rekognition

Rekognition 並不沒有拼錯。Rekognition API(http://suo.im/4kDmJ2) 用於圖像以及最近的視頻識別任務。包括:

目標檢測和分類(查找和檢測圖象中的不同目標,並定義他們的類別)

在視頻中,可以檢測「跳舞」等活動或者「撲滅火」這種複雜的動作

人臉識別(用於檢測人臉,並找到匹配的人臉)和臉部分析(這個分析非常有趣,可以檢測到笑臉,分析眼睛,甚至在視頻中識別出情感情緒)

檢測不當視頻

識別圖片和視頻中的名人

圖像和視頻處理 API:Microsoft Azure Congnitive Service

軟體包結合了六個 API,分別專註於不同類型的圖像,視頻和文本分析。

Computer Vision:用於識別目標、動作、圖像中主體顏色

Content Moderator:在圖像、文字和視頻中檢測不適當的內容

Face API:用來檢測人臉並分組,識別年齡、情緒、性別、姿勢、笑容和面部毛髮

Emotion API:用來識別面部表情的工具

Custom Vision Service:支持使用自己的數據構建自定義的圖像識別模型

Video indexer:是一種在視頻中查找任務的工具,可以定義語音情感並標記關鍵字

圖像和視頻處理 API:Google Cloud Services

Cloud Vision API(http://suo.im/lmsT)

該工具為圖像識別任務而建立,對於查找特定的圖像屬性非常有用:

標記對象

檢測人臉並分析表情

尋找標誌性事件並描述現場(例如假期、婚禮等)

在圖像中查找文本並識別語言

圖像中的主色調

Cloud Video Intelligence(http://suo.im/YAphk)

Google 的視頻識別 API 在開發初期就缺乏 Amazon Rekognition 和 Microsoft Congnitive Services 提供的許多功能。目前,該 API 提供以下工具集:

標記對象並識別動作

識別明確的內容

轉錄語音

雖然在功能級別上,Google AI 服務可能缺乏一些功能,但是 Google API 可以使用 Google 提供的大量數據集。

特定的 API 和工具

這一部分,我們將討論微軟和谷歌的特定 API 產品和工具。這裡沒有亞馬遜,因為其 API 跟上面提到的文本分析和圖像視頻分析是一樣的。但是,一些其他公司提供的特定 API 的一些功能也集成於 Amazon 的產品中。

Azure Service Bot 框架

微軟為了給用戶提供更靈活的開發工具集付出了很多努力。該服務包含通過不同編程語言構建、測試和部署 bot 的完整環境。

有趣的是,bot 服務並不一定需要機器學習方法。微軟為 bot 工具提供了五種模板(基礎模板、形式模板、語言理解模板、主動模板和問答模板),只有語言理解模板需要高級的人工智慧技術。

目前,你可以使用 .NET 和 Node.js 技術,利用 Azure 構建機器人,並將其部署到平台和服務上:

Bing

Cortana

Skype

Web Chat

Office 365 email

GroupMe

Facebook Messenger

Slack

Kik

Telegram

Twilio

Bing 搜索引擎(http://suo.im/2W5sG4)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

亞馬遜 Alexa Prize 比賽冠軍團隊專訪:聊天機器人的突破與創新
深度學習對話系統實戰篇-簡單 chatbot 代碼實現

TAG:AI研習社 |