Machine Learning Foundations Notes
Lecture 3: Types of Learning
Instructor: Hsuan-Tien Lin




上一章提到機器可以藉由 PLA 來處理是非題,這章節要探討跟多不同類型的機器學習問題,這些問題又跟是非題有什麼不一樣。

Learning with Different Output Space

這小節從輸出 $y$ 的角度來看機器學習,介紹幾種不同的機器學習類型。

  • Binary Classification
    簡單來講就是是非題,應用非常廣泛。也就是說從輸出 $y$ 來看機器學習,如果 $y$ 的答案只有二選一,這樣的分類問題就叫做 Binary Classification 二元分類。

  • Multiclass Classification
    如果輸出的答案是單選題,從多個選項裡選出一個正確的,那就是 Multiclass Classification 多類別分類問題。應用也很多,比如飲料販賣機辨識錢幣的問題、數字辨識、圖像辨識、電子郵件類型辨識等等。

  • Regression
    如果用上述的分類方法來解決醫院裡可能會碰到的問題:二元分類可以來解決病人是否生病,而多元分類可以來判斷病人得到的是哪種癌症。

    但是如果想要知道病人「多久可以出院」或是「多久可以恢復」,這樣的問題輸出 $y$ 是幾天、幾個小時,輸出的空間是實數,也就是 $y = \mathbb{R}$,這樣的問題在統計學裡面叫作迴歸分析。可以應用在股市分析、氣溫預測等等。

  • Structured Learning
    如果問題的輸出空間是一個序列結構,我們希望電腦去學習這樣的結構,就是一個 Structured Learning 結構化學習。比如自然語言處理中的自動詞性標注問題 (Sequence Tagging Problem),這類問題的輸入是以句子為單位,句子中含有某種結構或組織,處裡的同時需要考慮前後文。可以把這類的問題想像成一個很大的分類問題,這些類別之間有某一種結構上的關係。其他應用還有分析蛋白質的立體結構、文本剖析等等。

    這樣的問提比較複雜,解法多是由多類別的分類問題延伸出來的。

  • Mini Summary
    這小節從輸出 $y$ 來看機器學習,如果 $y$ 只有兩類,就是 Binary Classification;如果 $y$ 多於兩類,那就是 Multiclass Classification;如果 $y$ 是一個實數空間,那就是 Regression;如果 $y$ 是一個結構關係,那就是 Structured Learning。

Learning with Different Data Label

這個小節則是從輸入 $y_{n}$ 的角度來看機器學習,根據輸入資料的標註與否,有不同的方法可以來進行學習。

  • Supervised Learning
    在訓練的過程中告訴機器答案,也就是給機器「有標註」的資料,就叫做 Supervised Learning 監督是學習。比如在訓練販賣機辨識錢幣的時候,給機器每種錢幣的大小、重量,告訴它什麼大小、重量的錢幣就是什麼幣值。

  • Unsupervised Learning
    在訓練的過程中沒有告訴機器答案,只給它要分類的資料,這樣的問題叫做 Unsupervised Learning 非監督是學習。比如在訓練販賣機辨識錢幣的時候,只給機器每種錢幣的大小、重量,但是不告訴它什麼大小、重量的錢幣就是什麼幣值,要讓它會自動從給定的資料中找出潛在的規則,這樣的問題又叫做 Clustering 分群。

    其他非監督是學習的問題還有密度分析、outlier detection 等等。

  • Semi-supervised Learning
    在訓練的過程中只告訴機器部分答案,另一部份讓機器自己去找出答案,這叫做 Semi-supervised Learning 半監督式學習。在部分資料較難取得的狀況下,或是取得標註的成本較高時,可能就會使用半監督式學習。比如我們想知道網路上的大頭照是誰,因為量很多,要取得每張照片的答案非常困難,那就標注部分的照片,剩下的讓機器根據有標注的資料自己去找答案。又比如在預測藥物對病人是否有效時,由於做人體實驗成本高、時間又長,所以就用少數的標注資料,讓機器學習。

  • Reinforcement Learning
    有時候問題的輸出 $y$ 是很難描述的,但是我們可以在機器做出判斷的時候,用獎勵或是處罰的方式,讓機器知道這個判斷是對或錯,這叫做 Reinforcement Learning 增強式學習,機器會透過一次次的經驗累積來學習一個技能。比如你要教一隻狗聽到指令的時候乖乖坐下,很難直接告訴他怎麼做,但是可以用獎勵或是處罰來告訴牠這是對的還是錯的。又比如線上廣告系統,可以透過顧客的點擊率來知道這個廣告是好或不好,進而幫助系統更完整。

  • Mini Summary
    上述四種學習方式主要的不同在於資料有什麼樣的標記、有什麼樣 $y_{n}$ 的資訊。最核心的則是監督是學習,有很多的方法都是從監督是學習的方法發展而來。

Learning with Different Protocol

這小節從我們和機器溝通的方式來看機器學習,有幾種不同的方式將資料餵給機器。

  • Batch Learning
    一次把整批的收集到的資料餵給機器學習演算法,就叫做 Batch Learning。是在機器學習裡面最典型的一種跟機器溝通的方式。像是丟給機器一本書,讓機器自己去裡面學、去找答案。

  • Online Learning
    新的資料一筆一筆餵給機器,機器學習的假設 $g$ 也一直在變動,希望每過一輪,$g$ 的判斷能越來越準確,這樣循序的方式叫做 Online Learning 線上學習。這像是老師在教學,舉一個例子,然後告訴你答案,學會了之後再舉另一個例子,再告訴你答案,這樣循序漸進的方式。

    PLA 很容易應用在 Online Learning 上。而 Reinforcement Learning 的資料也是一筆筆進來的,也比較接近 Online Learning。

  • Active Learning
    從機器的角度來說,前述兩個方法都是被動的。如果機器會問問題,或者說會從它有的資料裡去找一個它不會認的例子來問,這樣的方式叫做 Active Learning 主動學習。如果機器可以很有技巧地問問題,那麼就可以透過很少的問題很快遞學到東西。當我們要取得標註資料的成本很高的時候,就會使用 Active Learning。

  • Mini Summary
    這小節講述我們如何用不同餵資料的方式來跟機器溝通,一次丟就是 Batch Learning;循序漸進則是 Online Learning;讓機器有問問題的能力就是 Active Learning。當然還有其他不同的方法,但核心都是 Batch Learning,這門課之後也會著重在這上面。

Learning with Different Input Space

這小節要從輸入 $x$,也就是特徵值,來看機器學習。

  • Concrete Features
    輸入 $x$ 的特徵很明確、很具體,就是 Concrete Features。通常這樣的特徵裡都帶有人類的智慧和對這個問題的描述,也稱作 Domain Knowledge。

  • Raw Features
    如果輸入 $x$ 的特徵沒有經過人為處理,就叫做 Raw Features。比如數字辨識,如果用數字有沒有對稱或者數字的密度來當特徵,這些特徵就屬於 Concrete Features;如果是把每張圖片裡的數字轉成一張 256 個維度的向量,這就是 Raw Features,比較抽象,對機器學習來說也比較困難。

  • Abstract Features
    如果輸入 $x$ 的特徵是抽象的,比如編號這類的資料,這就叫 Abstract Features。這時候就要有人去抽取出一部分更具體的特徵出來,另一部分可以讓機器自己去學,而這些特徵可能包含 Concrete Feature 或 Raw Feature。

  • Mini Summary
    這小節提到了三種輸入的形式,有具體的特徵的稱為 Concrete Features;如果輸入沒有那麼具體,就需要人或是機器想辦法去抽取具體的特徵出來。

Summary

  • Learning with Different Output space: Classification, Regression, and Structured Learning
  • Learning with Different Data Label: Supervised, Unsupervised, Semi-supervised, and Reinforcement Learning
  • Learning with Different Protocol: Batch, Online, and Active Learning
  • Learning with Different Input Space: Concrete, Raw and Abstract Features
  • Slides: http://www.csie.ntu.edu.tw/~htlin/mooc/doc/03_present.pdf