Azure 「機器學習」FAQ,以及實際應用模型

到底什麼是機器學習 (Machine Learning)?

機器學習並非新的觀念或技術,多年前電腦科學家們即已定義了何謂 Machine Learning:

“A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E”

- Tom M. Mitchell

“The goal of machine learning is to program computers to use example data or past experience to solve a given problem.”

– Introduction to Machine Learning, 2nd Edition, MIT Press

呃…可以用白話的中文再講一次嗎?

「機器學習,可藉由電腦系統分析歷史資料,來預測未來趨勢和行為。」

所以重點是…?

重點即在於「預測」,若能預期事情將如何發展,企業或個人即能早期投資以開創新商機、或是迴避重大風險的發生。

分析資料的方法有很多啊,Machine Learning 與他們有什麼不同?

我們可以在以下的 Analytics Spectrum 光譜中,了解 Machine Learning 的定位:

image

(圖片來源: “Predictive Analytics with Microsoft Azure Machine Learning: Build and Deploy Actionable Solutions in Minutes”)

由圖中可以看到 Gartner 將資料分析分為四種類別,愈往右邊,複雜程度就愈高:

- Descriptive (描述性的):可以回答 “What happened?” 的問題,以增加對資料的了解程度。常用的分析方式包含 Data Clustering (資料分群) 等。

- Diagnostic (診斷性的):可以回答 “Why did it happen?” 的問題,通常用來找出事情發生或出錯的原因。常用的分析方式則包含 Business Intelligence (商業智慧) 等。

- Predictive (預測性的):可以回答 “What will happen?” 的問題,也就是預測未來可能發生什麼事。Machine Learning (包含迴歸分析及類神經網路) 即是其中重要的分析方式。

- Prescriptive (規範性的):可以回答 “What should I do?” 的問題,也就是不但要預測未來,還要知道若作出某決策後的結果。著名的蒙地卡羅模擬法以及 Machine Learning 便是常見的方式。

為何「機器學習」最近愈來愈紅?

早期要實作「機器學習」進行實務應用是相當昂貴的。不但需要高階的硬體設備及複雜的軟體環境,同時還需要深諳統計學、人工智慧等的資料科學家團隊,更遑論隨之而來的管理及作業成本。

但隨著公有雲服務 (如 Azure) 讓計算機運算以及儲存成本大幅降低、科學家們持續發展出強固的各種演算法、再加上如 Azure ML 等易用工具的產生,將使用成本、學習成本及管理成本一併大幅下降。即是讓傳統上 resources boundary 的 Machine Learning 應用日漸火紅的主要原因。

(註:為何 Azure ML 的出現至關重要? “ Why Microsoft's Azure Machine Learning is such a big deal ?”)

image

image

(圖片來源: “Predictive Analytics with Microsoft Azure Machine Learning: Build and Deploy Actionable Solutions in Minutes”)

別管紅不紅了,我要如何判斷哪些問題,是適合讓 Machine Learning 解決的?

不僅於「預測」,Machine Learning 技巧能被使用在許多其他問題。在此引用台灣大學資訊工程系林軒田老師的 Coursera 「機器學習基石 (Machine Learning Foundations)」教材作說明:

image

簡單來說,若有些問題,是需要我們設計一個非常複雜的系統來解決的話,那麼 Machine Learning 即能提供另一種解法,而不需實際設計出這樣一個系統。

舉例而言:

- 當人們無法定義出所有可能的規則時 (比如要在火星上探險)、

- 當沒有簡單、甚或不完全的解法方案時 (如語音/視覺識別)、

- 需要超快速的判斷時 (如極短線股票交易)、

- 或是資料量大到人為經驗亦無法負荷的程度 (如消費市場行銷策略)

以上皆是機器學習可應用在實務上的判斷準則。

微軟自己有在用 Machine Learning 嗎?

最近較著名的例子就是微軟的 Cortana 個人小幫手了,其背後即是利用大數據配合 Machine Learning,預測世界盃足球賽的各場勝負:

巴西世足 微軟Cortana 預測世足神準

Big data 告訴你2014 年世界盃冠軍是德國| TechNews 科技新報

我不是資料科學家,也能使用 Azure ML 嗎?

請參閱「Azure 「機器學習」初體驗」文中,以簡單幾個步驟即完成一個實驗,即可了解 Azure 的機器學習,可讓人們在沒有深入的資料科學背景下開始資料採礦與預測。它提供一個整合的開發環境,讓你利用拖放與簡單的資料流程圖來設定實驗。

image

你無需撰寫程式碼即可執行多項工作。

我是很有經驗的資料科學家,使用 Azure ML 的好處在哪?

若你是資料科學家,使用 Azure ML 會有更多好處。支援 R 語言,所以既有的 R 程式碼可直接拖放並執行,你也可在其中自行撰寫 R 程式碼,這兩種方式均支援超過 410 個 R 套件 (on top of R 3.1.0 as of now)。可立即混搭預先安裝妥當且最佳化過的演算法,包括超過 400 個以上的 CRAN packges, plyr and dplyr, car, datasets, HMisc, MASS, Intel Math Kernal Library,並可使用諸如 ggplot2 之 R plotting 視覺化及 rpart, nnet, survival, boot 等資料探勘工具。

image

您可測試最多十種不同的模型。同時 Azure 機器學習實驗是可以共享的,其他人可從您中斷的地方接續下去。

imageimage

Azure 機器學習也讓您可以在 Azure 儲存體中保留無數個檔案,同時能順暢地連結其他 Azure 資料相關服務,包括 HDInsight、Hadoop 巨量資料解決方案、SQL Database 和虛擬機器。

我(或我的客戶)想實作「機器學習」,有模型可供參考嗎?

茲列舉幾個實務的企業應用為例:

- 信用風險預測: 利用公開的德國信用資料集來訓練和比較多個 ML 演算法,以預測新申請人的信用風險評等良好或不良。

image8

- CRM 客戶分析: 法國一家電信公司的一組匿名資料集,共 50,000 位客戶,以判斷客戶流失、追加銷售及購買新產品的意願。

image

- 網路入侵偵測: 實驗利用 1999 年知識探索與資料探勘 (KDD) 競賽的資料,偵測哪些網路活動屬於入侵或攻擊。

image

- 情緒分析: 利用 Amazon 上的產品評論和評分來預測純文字評論的等級。

image

延伸閱讀:

1. Microsoft Azure 機器學習官方學習網站 (含教學影片及文件):

https://azure.microsoft.com/zh-tw/documentation/services/machine-learning/

2. TechDays Taiwan 2014 「微軟新世代雲端大數據戰略剖析與 Machine Learning 實例分享」 (中文)

https://channel9.msdn.com/Events/TechDays/TechDays-Taiwan-2014/DCIM310

3. 台灣大學資訊工程系林軒田老師 Coursera 線上課程 (中文) https://www.coursera.org/course/ntumlone