60
初探「機器學習」 蔡孟儒 (Raymond) 資深協理 開發體驗暨平台推廣事業部 台灣微軟

20150206 aic machine learning

Embed Size (px)

Citation preview

Page 1: 20150206 aic machine learning

初探「機器學習」

蔡孟儒 (Raymond)

資深協理

開發體驗暨平台推廣事業部

台灣微軟

Page 2: 20150206 aic machine learning

關於我…

• 建國中學、輔仁大學應用數學系、交通大學工業工程研究所。1999年於南加大取得 M.S. Degree in Computer Science 後,留美由一間小新創公司的軟體工程師開始職涯,後歷任 US. Interactive Inc. 資深工程師、Sierra Systems 技術主管。

• 2005 返台並加入台灣微軟,目前擔任「開發體驗暨平台推廣事業部」資深協理;負責最新或未上市的微軟技術,於新創公司及學界的導入及應用。

• 具多年協助大型企業及新創公司導入新一代技術平台之經驗,如Microsoft Azure 公有雲解決方案、企業搜尋解決方案、企業單一入口及 Windows Apps、Kinect、Windows 10 等。

Page 3: 20150206 aic machine learning

大數據時代的到來

物聯網

音訊 / 視頻

系統日誌

文字/圖片

社會輿論

整合資料市場

整合e化政府

天氣

維基 / 微博點擊流

感測器/ 射頻識別 / 設備

空間 & GPS 定位座標

WWW 2.0手機

廣告 合作電子商務

數位行銷

搜索行銷

網路日誌

推薦

企業資源規劃 / 客戶關係管理

銷售管道

應收款管理

薪酬管理

庫存管理

聯繫管理

交易追蹤

TeraByte(10E12)

GigaByte(10E9)

ExaByte(10E18)

PetaByte(10E15)

快速增長 多變 多樣性

大數據

1980190,000$

20100.07$

19909,000$

200015$

企業資源規劃 / 客戶關係管理

WWW 2.0 物聯網

Page 4: 20150206 aic machine learning

Agenda

• 什麼是 Machine Learning (機器學習)

• 使用 Azure ML 進入機器學習

• Azure ML 演算法、實例、架構、R 語言

• Microsoft BizSpark: 微軟新創火花計劃介紹

Page 5: 20150206 aic machine learning

到底什麼是 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

Page 6: 20150206 aic machine learning

維基百科上的 Machine Learning

• Machine learning is a scientific discipline that explores

the construction and study of algorithms that can learn

from data.

• the desired output:

– Classification (分類)

– Regression (迴歸分析)

– Clustering (分群)

– Density estimation

– Dimensionality Reduction

classification

clustering

(linear) regression

http://en.wikipedia.org/wiki/Machine_learning

Page 7: 20150206 aic machine learning

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

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

所以重點是…?

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

• 預測使用者行為來調整商業行為– 根據用戶喜好推薦商品– 預測機器損壞的時間

• 分類– 判斷信件是否為垃圾郵件– 判斷客戶是否會續約

• 分群– 社群網路區分性質相近的會員– 精準廣告

7

Page 8: 20150206 aic machine learning

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

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

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

8

Page 9: 20150206 aic machine learning

微軟自己有在用 Machine Learning 嗎?

9

Page 10: 20150206 aic machine learning

照張狗的照片,辨別出是屬於哪個品種

10

(羅得西亞背脊犬)

https://www.youtube.com/watch?v=zOPIvC0MlA4#t=45

Page 11: 20150206 aic machine learning

Azure Machine Learning (Azure ML)

• 由微軟建立的機器學習平台

• 依照需求匯入及整理巨量資料

• 套用適用的學習演算法

• 建立自己的訓練模型

• 以 Web Service 發佈

Page 12: 20150206 aic machine learning

Azure Machine Learning (Azure ML)

Page 13: 20150206 aic machine learning

Azure Machine Learning 包括了…

• 資料源的存取 (與 Azure SQL Database, Azure

Storage 以及 HDInsight 深度整合)

• 資料清理 (抽樣、樣本切割、計算欄位…)

• 敘述性統計

• 有效變數選取

• 建立預測模型

• 評估預測模型

• 應用預測模型

Page 14: 20150206 aic machine learning

14

Azure 「機器學習」初體驗https://studio.azureml.net/

DEMO

Page 15: 20150206 aic machine learning

What’s your problem?

「一個腳踏車行,想根據來店客人的基本資料,預測 (predict) 此客人是否會買腳踏車。」

用什麼來學? 1 萬個客人的歷史紀錄 (CSV 格式,可在此下載: http://1drv.ms/1xJuarR)

15

http://1drv.ms/1xJuarR

Page 16: 20150206 aic machine learning

Azure 「機器學習」初體驗

[小技巧] 善用左上角的 Search 功能,可直接找到元件!

16

Page 17: 20150206 aic machine learning

在 Azure ML 中評估學習成效

模型優劣的判定並非單一指標可決定。

• ROC 曲線:其基本原則是,若曲線愈往左上方移動,此模型的準確率愈高

17

• ROC

• Precision/Recall

• Lift Curve

單純由人眼來判斷當然是不準確的,故我們可以計算 ROC 曲線下方的面積,並以 AUC 來表示 (此例中 AUC = 0.677),原則即是愈大愈好。

Page 18: 20150206 aic machine learning

Azure Machine Learning 的擴充性• 資料科學家不必自己從頭開始撰寫程式

– 支援 R 語言,既有的 R 程式碼可直接拖放並執行,你也可在其中自行撰寫 R 程式碼;這兩種方式均支援超過 410 個 R 套件 (on top of R 3.1.0 as of now), CRAN packages, plyr and dplyr, car, datasets, HMisc, MASS, Intel Math Kernal Library,並可使用諸如 ggplot2 之 R plotting 視覺化及 rpart, nnet, survival, boot 等資料探勘工具。

– 可立即混搭預先安裝妥當且最佳化過的演算法

– 已由 XBOX Live、Microsoft Research 及 Bing 驗證

• 運用 Microsoft Azure 的公有雲基礎建設處理巨量資料,包括 HDInsight、Hadoop 巨量資料解決方案、SQL Database 和虛擬機器。

Page 19: 20150206 aic machine learning

Take a break…常見問題Q: Machine Learning 很神嗎?A: 機器學習其實跟我們人類學習一樣,你餵給它什麼資料它就學什麼,學習資料夠不夠多、學習方法(學習演算法)好不好、是否有抓到重點(選擇訓練的資料欄位)等等都會影響學習的成果,機器學習只是可以大量、快速學習,不代表它就一定會完全正確喔。

Q: 用 Azure ML 需要事先安裝軟體嗎?還是限定作業系統呢?A: Azure ML Studio 是一個完全以 HTML 技術開發的平台,只要在瀏覽器中就可以操作。

Q: 我的資料一定要放在 Azure 上才能學習嗎?A: 在 Azure ML Studio 中的 Data Reader 或 Hive Query 都可以讓您從各個地方將資料透過 HTTP 匯入,並不限制一定得放在 Azure 上。不過 Azure HDInsight、Azure SQL Database 或是 Azure Storage 都很適合處理大數據,也很方便整合。

19

Page 20: 20150206 aic machine learning

20

談談預測模型

Page 21: 20150206 aic machine learning

資料分析是關於時間的- Machine Learning 尤其是!

• 建立模型: 歷史資料--結果是已知的

• 應用模型: 現有的資料

• 執行結果: 未來的資料 (下週或是下個月)--結果是未知的

Actions take

place here

Past FuturePresent

Data ends

here

Page 22: 20150206 aic machine learning

模型穩定性挑戰

錯誤率

模型複雜度

Page 23: 20150206 aic machine learning

模型測試集的結果

錯誤率

模型複雜度

在此處修剪!因為在此處模型對於未知資料的預測錯誤率最小

Over-fitting

Page 24: 20150206 aic machine learning

樣本切割 (Split)

Training

Validation

Test

使用訓練組資料建立預測模型

使用鑑校組資料於建模階段評估模型

使用測試組資料驗證模型

Page 25: 20150206 aic machine learning

建立預測模型

輸入資料集

演算法

模型

Page 26: 20150206 aic machine learning

26

我該用哪種演算法 (algorithms)?

Page 27: 20150206 aic machine learning

Azure ML 內建演算法

Azure ML 將內建演算法分為三種類型:

1. Classification (分類)

2. Regression (迴歸分析)

3. Clustering (分群)

27

Page 28: 20150206 aic machine learning

1. Classification (分類) 演算法

預測結果是屬於哪一種類別的方法。最常見的情境就是二分法了,亦即可以回答 True/False 或 Positive/Negative 的問題,比如:

• 現有的中x電信客戶,會不會轉去遠x電信呢?

• 客戶有沒有潛在升級或加購產品的商機呢?

28

「二分法 (Two-Class)」 Classification 演算法示意圖:

Page 29: 20150206 aic machine learning

2. Regression (迴歸分析) 演算法

與前者 Classification 方法的不同之處,在於 Regression 演算法通常是預測出一個「數值」。比如:

• 本週台灣股市收盤價是多少?

• 如何根據所在城市、坪數、學區等來預測房價?

29

汽車馬力 (horsepower) 來預測耗油量 (miles per gallon),透過 Linear Regression 演算法的預測示意圖:

Page 30: 20150206 aic machine learning

3. Clustering (分群) 演算法

通常是用來處理「沒有正確答案」的問題,這種問題該怎麼辦呢?

Clustering 能將有相同特徵者叢集在一塊。比如:Facebook 辨別使用者屬於哪些不同的群組 (運動愛好者、通勤族、蘿莉控…等),以滿足廣告投放商的需求。

30

原始資料,及以 K-means Clustering 分群之後的示意圖:

Page 31: 20150206 aic machine learning

練習題:你覺得以下範例是利用哪種類型的演算法?

31

Page 32: 20150206 aic machine learning

小整理:我該用哪類 Azure ML 演算法 (algorithms)?

Rule of thumb:

• 如果您的問題能夠以 Yes/No 來回答 => Classification (分類)

• 如果您期望的解答是一個數值的話 => Regression (迴歸分析)

• 如果您想將具相同特性的資料群集分類 => Clustering (分群)

32

Page 33: 20150206 aic machine learning

演算法小註

• Azure ML 對演算法分類中,前兩類 (Classification & Regression) 都是屬於「監督式學習」(Supervised Learning);Clustering 則是屬於「非監督式學習」(Unsupervised Learning) 的範疇。

• Azure ML 是根據學習的方法 (如監督式學習/非監督式學習)、以及預期的產出 (output) 類型來作分類。各位應已注意到,如決策樹(Decision Tree) 或類神經網路 (Neural Network) 等,可分別被應用到Classification 或是 Regression 的類別中,以解決不同類型的問題。

33

Page 34: 20150206 aic machine learning

34

強固的演算法

Page 35: 20150206 aic machine learning

新型態的決策樹

Decision Tree

決策樹Decision Jungle

決策叢林Decision Forest

決策森林

Page 36: 20150206 aic machine learning

類神經網路

36

Back-Propagation (倒傳遞類神經網路)

Page 37: 20150206 aic machine learning

K-means 分群演算法

37

假設我們最後想分成三群 (k=3)

Step 1. 隨機選 3 點:

Page 38: 20150206 aic machine learning

K-means 分群演算法

38

Step 2. 其他所有的點,與這 3 點的「距離」最小者,視為同一群

Page 39: 20150206 aic machine learning

K-means 分群演算法

39

Step 3. 各別找出這三群的中心點,設為最新的 3 個點

重複 Step 2 & 3~

Page 40: 20150206 aic machine learning

雲端服務拉低創業門檻

40

http://news.microsoft.com/features/wherever-there-is-data-

azure-machine-learning-can-make-business-and-life-better/

Page 41: 20150206 aic machine learning

Lesson Learned: 混合雲 + ML 模型驗證 + 資料選擇 + 跨平台

41

Page 42: 20150206 aic machine learning

Azure Machine Learning計費模式

實驗設計及模型驗證:

發佈 Web Service 後,被使用收費:

依每 1,000 次預測約台幣 5 塊多來計費,同時依計算時數來計費,每小時約 23 塊台幣。

若少於 1,000 次預測,或不足的計算時數,則按比例計費。

在你按下 “RUN” 之後開始記時。

上傳至多 10GB 的資料、在ML Studio 中作預測及測試、發佈 Web Service 服務等,則都是免費

Page 43: 20150206 aic machine learning

Microsoft BizSpark微軟新創火花計畫 http://aka.ms/twBizSpark

軟體

• 3 年的MSDN 訂閱服務

• 每個月NT$4,700 元的Microsoft Azure免費額度

• 一年Windows 市集開發帳號

• 2個MSDN professional的技術資源

• 教育訓練

• BizSpark會員專屬聚會

• BizSpark Connect.

• BizSpark.com及http://aka.ms/twBizSpark

• 台灣區的行銷資源

技術支援 能見度

Microsoft BizSpark 是一個全球的方案,旨在協助新創公司發展成長,方案包含提供免費的軟體及雲端資源、技術支援和行銷資源。完全免費! 只要你符合底下資格公司成立小於5年年收入小於一百萬美金以開發軟體產品或服務為公司的主要營業項目

Page 44: 20150206 aic machine learning

Microsoft VenturesIncubating innovation ecosystem

Microsoft Ventures

Community(BizSpark, etc.)

Accelerator

HiPoStartups

Tiered programs Global Operation

Page 45: 20150206 aic machine learning

Nurturing industry innovation

Microsoft Ventures

慧德灵智

85 startups in 5 classes,covering:Mobile internet:Gaming, Music, Reading, Picture services

Technical infrastructure: Mobilization, Automated testing, APM,

Information Security, Video Services

Enterprise SaaS:Digital Marketing, Enterprise SNS, HR, Procurement

Traditional industry digitalization:Petroleum、Agriculture、Finance、Education, Travel, Healthcare, Retail

Technology:Big Data, Mobile, Social Network, Smart Cloud, Smart

Device, IoT, Security

2013.12012.7 2013.7

90%Startups got funded (class

1-5)

19 startups selected

from 700 candidates

in class 5, acceptance

rate < 3%

2014.1

Page 46: 20150206 aic machine learning

http://www.bnext.com.tw/article/view/id/30809

BizSpark畢業成員入選微軟加速器計劃 (第四期 – FY14 H2)

http://www.youtube.com/watch?v=ybRjHxBzDXUhttps://www.youtube.com/watch?v=ybRjHx

BzDXU#t=113

Page 47: 20150206 aic machine learning

47

大數據不就是 Hadoop?

Machine Learning 與其他數據分析方法

Page 48: 20150206 aic machine learning

雲端與本地端的分析架構

雲端服務

使用者端

同步

本地端

SQL Data Sync

SSIS

Page 49: 20150206 aic machine learning

Machine Learning 與其他資料分析有什麼不同?

Analytics Spectrum 光譜: (愈往右,複雜性愈高!)• Descriptive (描述性的):可以回答 “What happened?” 的問題,以增加對資料的了解程度。

• Diagnostic (診斷性的):可以回答 “Why did it happen?” 的問題,通常用來找出事情發生或出錯的原因。

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

• Prescriptive (規範性的):可以回答 “What should I do?” 的問題,也就是不但要預測未來,還要知道若作出某決策後的結果。

49

Page 50: 20150206 aic machine learning

學術觀點:哪些問題,是適合讓 Machine Learning 解決的?

台灣大學資訊工程系林軒田老師「Machine Learning Foundations」:

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

50

-當人們無法定義出所有可能的規則時 (比如要在火星上探險)、-當沒有簡單、甚或不完全的解法方案時 (如語音/視覺識別)、-需要超快速的判斷時 (如極短線股票交易)、-或是資料量大到人為經驗亦無法負荷的程度(如消費市場行銷策略)

Page 51: 20150206 aic machine learning

Traditional BI

Modern Predictive BI

資料源

資料源

資料倉儲

資料倉儲

BI Modeling

ETL

ETLBI Modeling

Visualize

Visualize

Machine LearningHadoop

Page 52: 20150206 aic machine learning

完整的數據分析生命週期

Cloud

Page 53: 20150206 aic machine learning

53

整合R語言

Page 54: 20150206 aic machine learning

R語言

• R語言是由紐西蘭奧克蘭大學的Ross Ihaka和Robert Gentleman開發的開源統計語言

• 能夠進行統計、預測模型以及資料視覺化

http://www.r-project.org/

Page 55: 20150206 aic machine learning

如何整合R語言

輸入資料集1輸入資料集2

Zip

R Device輸出資料集

dataset1 <- maml.mapInputPort(1)

dataset2 <- maml.mapInputPort(2)

data.set = rbind(dataset1, dataset2);

maml.mapOutputPort("data.set");

輸入

輸出

Page 56: 20150206 aic machine learning

檢視預裝的R Package

data.set<-data.frame(installed.packages())

maml.mapOutputPort("data.set");

Page 57: 20150206 aic machine learning

如何加入自訂R Packages

• 在電腦本機安裝想要的R Package

• 將R Package原始的Zip檔壓縮為Zip

• 上傳至Azure Machine Learning

Page 58: 20150206 aic machine learning

開始使用!

• 直接免費試用 Azure Machine Learning (無需信用卡): https://studio.azureml.net– 1 小時的計算時間

– 上傳 50GB 大小的資料集

• 或是加入 BizSpark 新創火花計劃– http://www.microsoft.com/taiwan/bizspark

– 每個月 NT$4,700 元的 Microsoft Azure 免費額度

• 或是註冊 Microsoft Azure 免費試用帳號– http://azure.microsoft.com/zh-tw/pricing/free-trial/

– 使用 Microsoft Account (Windows Live ID) 註冊

在 Azure ML Studio 操作

Page 59: 20150206 aic machine learning

延伸學習

• Microsoft Azure 機器學習官方學習網站 (含教學影片及文件):http://azure.microsoft.com/zh-tw/documentation/services/machine-learning/

• 尹相志-「當個頂尖雲端資料分析師 - 活用微軟雲端大數據平台,提升企業競爭力」: http://www.microsoftvirtualacademy.com/training-courses/azure-seminar-1009

• O'Rielly 免費電子書下載: “Data Science in the Cloud, with Azure Machine Learning and R.”: http://radar.oreilly.com/2015/01/getting-started-with-data-science-in-the-cloud.html

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

• 我的部落格 (Meng-Ru Tsai’s Blog): http://blogs.msdn.com/b/mengtsai/

BizSpark 新創火花計劃: http://www.microsoft.com/taiwan/bizspark

59

Page 60: 20150206 aic machine learning