從零開始的機器學習生活 - 機器學習的種類
你是否會有個疑問到底機器學習 (Machine Learning) 到底是怎麼讓電腦學習的?如果籠統地跟你說就是一堆數學、演算法、統計學、向量、微積分諸如此類的東西,如果全都很陌生…沒關係我也不會XD我也不會跟你說一堆數學公式,如果有興趣可以去看 機器學習你也可以 – 文組帶你手把手實做機器學習聖經 悔恨當初沒學好數學啊。
機器學習的方式
必須要先知道兩個名詞
- 資料(features)
身高體重等這種餵給機器學習的資料集
- 標記(label)
資料的答案
到底機器怎麼學?機器學習的方式約能分為三大類
- 監督式學習(Supervised learning)
- 非監督式學習(Unsupervised learning)
- 強化式學習(Reinforcement learning)
監督式學習(Supervised learning)
顧名思義,你必須要一樣一樣的告訴他正確答案久了他才會知道這是什麼東西,就跟五歲小朋友一樣:那是什麼?那是車子那是什麼?那是房子…監督式學習的資料必須要有 標記 (年齡、性別、收入等)要有這些資料給電腦學習。
監督式學習中有兩種問題可以討論
分類問題(Classification)
即是透過機器學習,預測結果是屬於哪一種類別的方法。
- 分類問題(Classification)
- Features: 身高 體重
- Label: 性別
- Task: 給一個人的身高跟體重並且預測出他的性別
回歸問題(Regression)
根據資料電腦會自己擬出一條曲線而預測出一個解答
- 回歸問題(Regression)
- Features: 坪數 房間
- Label: 房價
- Task: 給房子的坪數還有房間數量預測出房價
非監督式學習(Unsupervised learning)
如果你的資料沒有 label 只有 features ?你沒有正確答案可以 fit on 所以你需要從資料中找到一種模式(pattenrs)並且找到結構。
你並沒有告訴機器 label 他自己會將資料分門別類,會飛的、會跳的、有四隻腳的,或許有他自己的獨特分類方式(只是你看不懂電腦會懂)你不需要告訴他每樣東西是什麼,他自己會知道怎麼分類。
- 群聚問題(Clustering)
- Features: 狗的身高 體重
- Label: None
- Task: 將數據相近的群聚再一起
群聚問題不會告訴你到底這些狗是什麼品種,他只會依據 features 將相近的資料群聚再一起。
強化式學習(Reinforcement learning)
強化學習有三個組件
- Agent-Learning / Decision Maker(代理學習/決策者)
- Environment(Agent 與環境之間的互動)
- Actions(Agent 能做的動作)
AlphaGo 就是強化式學習的應用,強化式學習的特徵是訓練必須要有正負回報(positive/negative reward)在訓練過程中,模型會根據不同的狀況(state / environment) 嘗試各種決定 (action) 在給定的時間內取得最高的 reward 或是學習環境決策出最好的動作。
如下兩個影片:
結論
ML 就是透過演算法將資料分類 或 分群 轉化為規則或知識。
- Classification (分類): 如字義所見,即是透過機器學習,預測結果是屬於哪一種類別的方法。(藍色 or 綠色 等等等)
- Regression (迴歸分析): 與前者 Classification 方法的不同之處,在於 Regression 演算法通常是預測出一個「數值」。(87% 不能再高了)
- Clustering (分群): 通常是用來處理「沒有正確答案」的問題 Clustering 能將有相同特徵者叢集在一塊。(蘿莉控、御姐控)
那麼簡單的來說:
- 如果您的問題能夠以 類別 來回答 => Classification (分類)
- 如果您期望的解答是一個數值的話 => Regression (迴歸分析)
- 如果您想將具相同特性的資料群集分類 => Clustering (分群)
並且知道了三種機器學習的方式
- 監督式學習(Supervised learning)
- 非監督式學習(Unsupervised learning)
- 強化式學習(Reinforcement learning)
相信各位知道這幾個概念之後會比較理解機器學習。
參考資料
【講講科普】 當你有了三個孩子他們分別叫監督式學習、非監督式學習與強化式學習
李宏毅深度学习(2017)