Table of Contents
機器學習的情境 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
機器學習的三個步驟
- define a set of function
訂出一個function set (A set of function=Model) - goodness of function
讓machine可以衡量這個function 好不好
訓練資料(讓機器知道好的資料的輸入和輸出長怎麼樣?) - 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
- Supervised Learning (監督式學習)
通常最常用到的方法就是Supervised Learning (監督式學習),但是監督式學習需要大量的資料,使用training data 來找到一個合適的function,讓我們知道輸出和輸入的關係是什麼。
通常使用監督式學習時,我們會告訴機器所有的正確答案,所以需要大量的標記(label),而缺點是需要大量的人工。 - Semi-supervised Learning (半監督式學習)
當我們手上只有少量的已經標記(labeled)的data,同時又有大量的未標機(unlabeled)data,而這些資料僅限於已標記的種類之內(如要區別貓跟狗的function,未標記的照片僅限於貓和狗的照片)。
在Semi-supervised Learning (半監督式學習)的技術中,沒有標記的data,對機器學習也是有幫助的。 - Transfer Learning(遷移學習)
與Semi-supervised Learning (半監督式學習)相同,但是我們的未標記(labeled)data不限於已標記的種類。
Transfer Learning(遷移學習)要解決的問題是,與一堆不相關的data可以帶來甚麼樣的幫助。 - Unsupervised Learning(無監督式學習)
Unsupervised Learning(無監督式學習)顧名思義就是在不提供任何label的情況下,希望機器學習能夠無師自通。也就是說我們給機器大量的輸入,卻不提供輸出,看看在這種情況下機器能夠學到什麼。 - Reinforcement Learning(增強式學習)
在監督式學習中,我們會告訴機器所有的正確答案,並且手把手的教機器也就是Learning from teacher。但是在Reinforcement Learning(增強式學習)中,我們沒有告訴機器正確的答案是什麼,機器只會得到最終的結果是好或不好,這較符合人類真正學習的情境,有別於監督式學習,增強式學習是Learning from critics。
舉例 : 監督式學習會手把手教導,如果有人說”Hello”,就要回”Hi”,聽到”Bye bye”就回答 “Good bye”。
而增強式學習會讓機器直接和客人對話,如果客人生氣把電話掛掉的話,機器只能知道這樣做錯了,他並不知道自己錯在哪裡。利用評價來學習。
機器要解決的問題 Task
- Regression(迴歸)
regression 輸出是一個連續數值(scalar)。比如我們想要預測PM2.5,我們現有的資料為前一天的PM2.5,而輸出的則是隔日的PM2.5的數值。 - Classification(分類)
Classification 有分成兩類,一種是Binary Classification(二元分類),另一種Multi-class classification(多元分類)。 - Structured Learning(結構化學習)
Structured Learning(結構化學習)不同於前面兩者,指輸出的是有結構性的東西。像是語音辨識,對機器來說輸入的是一段聲音信號,而輸出的是一個句子。
機器用來解決問題的模型 Model
機器學習的第一個步驟,就是挑選一個function set ,也就是Model 。而在不同的情境&要解決的問題下,可以使用相同的Model。Model又分成很多種 :
- Linear Model(線性模型)
- Non-linear Model(非線性模型)
(deep learning\SVM model\decision tree\K-NN)