哈囉,大家好,我是Teresa,這集的重點會在機器學習所要解決的問題依照不同的面向分類有哪些種類。如下圖,依照機器學習的不同問題,大致可以區分成四種面向:輸出的空間、資料的標記種類、輸入的資料、給電腦資料的方式,依照四種面向來一一詳述吧!
一、根據輸出的空間不同
二元分類 Binary Classification:
二元分類的問題其實就像是非題,我們餵給機器的資料,經過假說的函式後僅會輸出是或否的兩種結果,以圖來表示的話便是將平面區分為兩個平面以表示是或否。
二元分類在機器學習當中是很基本、很核心的問題。是非題的應用相當廣泛,之後理論推導與實際的演算法都會由二元分類出發。
二元分類的應用如下:
- 信用卡核發(回顧上集)
- 垃圾郵件分類->是垃圾郵件或不是垃圾郵件
- 醫療上的診斷->生病或未生病
- 預算的投入->獲益或不獲益
- 答題->正確或不正確
多元分類 Multi-class classification:
輸出從原本二元分類中的是或否兩種結果,變為有多種結果,近似於單選題。多個選項經過假說的函式後會輸出其中的一種結果,常用在視覺或聽覺辨識。
多元分類的應用如下:
- 銅板分類(1元、5元、10元、50元)
- 數字辨識->郵遞區號辨識(0-9)
- 圖片辨識->動物、水果分類
- 郵件分類->垃圾郵件、促銷活動、重要的郵件等
迴歸分析 Regression:
輸出的標籤不同於其它分類問題為零散的值,迴歸問題的輸出值會是一個連續的範圍。
在統計裡被稱作迴歸分析,此類問題也常以統計學的工具或方法來解決或設計較複雜的演算法。
迴歸分析的應用如下:
- 股票價格->餵給公司資料,預測股票價格
- 氣候->天氣資料預測明天的溫度
結構化學習 Structured learning:
自然語言辨識中會需要標註各個單詞的詞性:
輸入值為:句子,經過機器學習後期望輸出每個詞的詞性,來判斷輸入的句子語法結構是否正確。
輸出的結果太多元(會受到長度的影響等),但其中仍然會有「結構」可以讓電腦進行分析。
這種輸出可以看成是非常廣泛的多類別分析。
二、根據資料的標記種類不同
監督式學習 Supervised Learning-最核心的方法:
如同老師給予完整的教學:根據題目(輸入資料)提供正確的解答(輸出標籤)。
硬幣分類:將銅板的資料(重量、大小、代表的涵義)餵給機器學習讓它能學會分類不同的硬幣。
非監督式學習 Unsupervised Learning
輸入資料沒有標準答案,機器自行從中找到潛在的規則進行分類。
像是如果我們未告知機器銅板的涵義,其實也能成功將輸出的結果「分群」(clustering)。
但分群可能會出錯,如何衡量分群的好壞也較困難。
Teresa在學習此課程前,有簡單自己整理了一篇筆記簡介機器學習,請點此連結。
非監督式學習的應用如下:
- 客群分類
- 文章分類
- 密度分析(density estimation):曾經發生車禍的地點->危險的區域
- 異常檢測(outlier detection):極端值的二元分類問題,登入時是否被盜用
因為非監督式學習的目標分散且難以衡量好壞,因而有大量的演算法會與監督式學習的演算法概念類似。
半監督式學習
半監督式學習意味著給予部分的答案(標記),其餘未給予答案,讓機器「自動」學習得更好。
當找到「標記」的成本過高時,較適合使用半監督式學習。
半監督式學習的應用如下:
- Facebook上曾被標記過的照片,機器可以推斷未被標記過的照片中的人物。
- 藥的測試結果有效或無效。
強化學習(reinforcement learning)
在機器的輸出上給予近似於「增強」的概念,告訴機器輸出的結果好或不好,像是訓練寵物一般。
以養寵物為例,若要訓練寵物如何坐下。
當你提供指令:坐下。
當牠做出非做下的行為時,你可能會懲罰牠,讓牠知道牠所做出的行為不是你想要的結果。你很難直接教牠什麼是「坐下」,但透過懲罰,牠也許會知道牠的行為選擇是錯誤的。
當牠做出坐下的行為時,你可能會給牠零食吃,讓牠知道牠的行為選擇是正確的。
強化學習的應用如下:
- 線上廣告系統投放:顧客在訓練廣告系統,投放廣告,顧客會點選或忽略,機器便會知道它選的廣告對顧客來說是不是好的,進而學習到推薦較適合顧客的廣告。
給電腦資料的方式不同
Batch learning
一批一批地給機器資料,像是和機器溝通,這是最核心、最常見的一種方式,可比擬為填鴨式教育。
online learning
垃圾郵件的判斷,一封一封的回報給機器是否判斷錯誤,機器便會變動它的假說,讓它的輸出結果越變越好。
PLA演算法便是其中一種應用方式、強化學習的輸入資料也與此概念相似。可比擬為因材施教。
Active learning
上述兩種方式,機器都是被動的學習,但在此方式中,機器能自動從資料中挑選問題來問函式問題。
常用在取得標記的成本過高時,這樣的方式能讓人力標註的資料降低。可比擬為主動學習。
根據輸入的資料不同
concrete features
最核心的方式,資料非常具體,是經過整理的資訊,並與輸出有關。
這些資料都帶有人類的智慧、對問題的描述(專業領域的資訊)
- 信用卡核發:顧客資料
- 銅板分類:銅板的大小或重量
raw features
手寫數字辨識:將數字與意義提供給機器,我們的輸出資料可能和數字的特性有關(對不對稱、佔格子的密度高低)或是以維度(灰階、向量)來判別,維度越高,越抽象代表對機器來說越複雜。
abstract features
預測使用者評價:輸入只有使用者是誰、哪首歌、給分,因此需要將使用者、歌曲的特徵抽取出來,可能是人類定義的也可能是機器自己學習到的,但以機器的角度來說這些資料是很抽象難以學習的。
統整一下上面所提到的內容:
好的,機器學習EP. 3就到此結束囉~感謝您的觀看~
如果喜歡、想追蹤我更多筆記,可以加入程式小白的 JS Python 學習群的社團。