機器學習的情境 Scenario

by wenwu
0 comment

機器學習的情境 Scenario
李宏毅老師開放式課程 機器學習01

最近開始聽了李宏毅老師的線上課程 機器學習,為了督促自己能夠好好的學習,開始認真寫筆記。
所以這份筆記並沒有適合的族群,只是督促自己可以好好學習吸收到東西,不要看完線上課程之後,就全部忘光光(笑)。
如果不嫌棄的話,歡迎觀看,如果有任何寫錯的地方,也歡迎指教。
今日的課程來自於: https://youtu.be/CXgbekl66jc
參考筆記:https://github.com/Sakura-gh/ML-notes/blob/master/1_Introduction.md

人工智慧 vs 機器學習

人工智慧 Artificial Intelligence 早在1950年代就有了。人工智慧就是希望電腦和人類一樣聰明。但是在當時並沒有辦法做到。1980 年代以後,有了機器學習的方法。就是讓機器有學習的能力。

人工智慧是我們想要達到的目標
機器學習是想要達成目標的手段
其中,深度學習是機器學習的一種方法。

Hand-crafted rules vs Machine Learning

生物的本能: 假設河狸天生會築水壩。若使用程式語言來描述的話就是 :

if  ”聽到流水聲”  then  "河狸就會開始築堤防" until "聽不到水流聲"

而機器的本能和生物的本能很像,假設今天有一個chat-bot 不用learning or ML ,只能設定規則。

if  "聽到turn off"  then  "關掉音樂"

如果你對機器說: ”Please turn off the music” 或是 ”Can you turn off the music, please? ” 機器就會自動關掉音樂。
但是聽到” Please don’t turn off the music” ,他還是會把音樂關掉。

hand-crafted rules 的弱點:

  • 沒有辦法考慮到所有的可能性,非常的僵化。
  • 無法超越創造者

我們可以用血汗的方式,寫出數以萬計的規則,但只是讓機器看起來"好像"很聰明,但是只要手上有data ,就能夠發展機器學習。(AI不是成千成萬的 if)

Machine Learning = Looking for a Function from Data 
根據我們提供給機器的資料,他能夠尋找出我們要的function

  • speech Recognition
  • Image Recognition
  • Playing Go
  • Dialogue System

機器學習的三個步驟

  1. define a set of function
    訂出一個function set (A set of function=Model)
  2. goodness of function
    讓machine可以衡量這個function 好不好
    訓練資料(讓機器知道好的資料的輸入和輸出長怎麼樣?)
  3. pick the best function
    有一個好的演算法可以挑出最好的function

Learning Map

下圖中,同樣的顏色指的是同一個類型的事情

  • Scenario : 藍色方塊指的是scenario,即學習的情境。通常學習的情境是我們沒有辦法控制的,比如做reinforcement Learning是因為我們沒有data、沒有辦法來做supervised Learning的情況下才去做的。如果有data,supervised Learning當然比reinforcement Learning要好;因此手上有什麼樣的data,就決定你使用什麼樣的scenario。
  • Task : 紅色方塊指的是task,即要解決的問題。你要解的問題,隨著你要找的function的output的不同,有輸出scalar的regression、有輸出options的classification、有輸出structured object的structured Learning…
  • Method : 綠色的方塊指的是model,即用來解決問題的模型(function set)。在這些task裡面有不同的model,也就是說,同樣的task,我們可以用不同的方法來解它,比如linear model、Non-linear model(deep Learning、SVM、decision tree、K-NN…)

以下會在針對這三個部分解釋


機器學習的情境 Scenario

  1. Supervised Learning (監督式學習)
    通常最常用到的方法就是Supervised Learning (監督式學習),但是監督式學習需要大量的資料,使用training data 來找到一個合適的function,讓我們知道輸出和輸入的關係是什麼。
    通常使用監督式學習時,我們會告訴機器所有的正確答案,所以需要大量的標記(label),而缺點是需要大量的人工。
  2. Semi-supervised Learning (半監督式學習)
    當我們手上只有少量的已經標記(labeled)的data,同時又有大量的未標機(unlabeled)data,而這些資料僅限於已標記的種類之內(如要區別貓跟狗的function,未標記的照片僅限於貓和狗的照片)。
    在Semi-supervised Learning (半監督式學習)的技術中,沒有標記的data,對機器學習也是有幫助的。
  3. Transfer Learning(遷移學習)
    與Semi-supervised Learning (半監督式學習)相同,但是我們的未標記(labeled)data不限於已標記的種類。
    Transfer Learning(遷移學習)要解決的問題是,與一堆不相關的data可以帶來甚麼樣的幫助。
  4. Unsupervised Learning(無監督式學習)
    Unsupervised Learning(無監督式學習)顧名思義就是在不提供任何label的情況下,希望機器學習能夠無師自通。也就是說我們給機器大量的輸入,卻不提供輸出,看看在這種情況下機器能夠學到什麼。
  5. Reinforcement Learning(增強式學習)
    在監督式學習中,我們會告訴機器所有的正確答案,並且手把手的教機器也就是Learning from teacher。但是在Reinforcement Learning(增強式學習)中,我們沒有告訴機器正確的答案是什麼,機器只會得到最終的結果是好或不好,這較符合人類真正學習的情境,有別於監督式學習,增強式學習是Learning from critics。
    舉例 : 監督式學習會手把手教導,如果有人說”Hello”,就要回”Hi”,聽到”Bye bye”就回答 “Good bye”。
    而增強式學習會讓機器直接和客人對話,如果客人生氣把電話掛掉的話,機器只能知道這樣做錯了,他並不知道自己錯在哪裡。利用評價來學習。

機器要解決的問題 Task

  1. Regression(迴歸)
    regression 輸出是一個連續數值(scalar)。比如我們想要預測PM2.5,我們現有的資料為前一天的PM2.5,而輸出的則是隔日的PM2.5的數值。
  2. Classification(分類)
    Classification 有分成兩類,一種是Binary Classification(二元分類),另一種Multi-class classification(多元分類)。
  3. Structured Learning(結構化學習)
    Structured Learning(結構化學習)不同於前面兩者,指輸出的是有結構性的東西。像是語音辨識,對機器來說輸入的是一段聲音信號,而輸出的是一個句子。

機器用來解決問題的模型 Model

機器學習的第一個步驟,就是挑選一個function set ,也就是Model 。而在不同的情境&要解決的問題下,可以使用相同的Model。Model又分成很多種 :

Related Articles

發表迴響