1. 程式人生 > 其它 >李巨集毅-人工智慧2017筆記1. Introduction of Machine Learning

李巨集毅-人工智慧2017筆記1. Introduction of Machine Learning

1. Introduction of Machine Learning

  • 背景提要:

人工智慧是目標,機器學習是實現該目標的手段,而深度學習是機器學習中的方法之一。

hand-crafted rules(人類設定規則)已經不可取了,現在進行的是machine learning

  • 機器學習三步驟:

step 1:定出一個function set;

step 2:讓machine可以衡量一個function的好與不好;

step 3:讓machine有個好的演演算法可以挑出最好的function。

  • Learning Map:

圖中藍色部分指scenario,指學習情景,通常學習情境是我們沒有辦法控制的,比如做Reinforcement Learning

是因為我們沒有data、沒有辦法來做Supervised Learning的情況下才去做的。如果有data,Supervised Learning當然比Reinforcement Learning要好。因此手上有什麼樣的data,就決定你使用什麼樣的scenario;

紅色部分指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…)。

  • Supervised Learning:

Supervised Learning的過程,其中Classification的Model分為Linear Model和Non-linear Model,Non-linear Model中最出名的就是Deep Learning,除外還有SVM,decision tree,K-NN;

Supervised Learning最大的特點在於需要輸入大量的訓練資料,告知我們找到的function要input和output之間什麼樣的關係;

其中function的output通常叫做label(要依靠人工的力量把它標註出來,要花很多的effort)。

Regression:一種machine learning的task;

Regression裡面輸出的是一個數值。(例子: 預測PM 2.5天氣預報)

Classification

Regression的區別在於二者輸出的類別不一樣,在Regression裡機器輸出的是scalar,而Classification又分為兩類:

Binary Classification:機器輸出”yes” or “No”。( 例子:Spam filtering,其訓練資料是一群已經標識出是yes或者是no的郵件)

Multi-class Classification:機器做一個選擇題,從數個類別中選擇正確的類別。(例子: Document Classification,其訓練資料是一群已經被標識出是什麼類別的檔案)

不同於Supervised Learning的,可以減少data用量的方向有:

Semi-supervised Learning,有標識的資料,也有沒有標識的資料;

Semi-supervised Learning的技術裡面,這些沒有labeled的data,對機器學習也是有幫助的;

Transfer Learning,有標識的資料,也有無關的有標識和無標識的資料;

Transfer Learning要解決的問題是,這一堆不相干的data可以對結果帶來什麼樣的幫助;

Unsupervised Learning,只有function的output,沒有input;

Unsupervised Learning希望機器學到無師自通,看在完全沒有任何label的情況下,機器到底能學到什麼樣的知識;

舉例來說,如果我們給機器看大量的文章,機器看過大量的文章之後,它到底能夠學到什麼事情?它能不能學會每個詞彙的意思?

學會每個詞彙的意思可以理解為:我們要找一個function,然後把一個詞彙丟進去,機器要輸出告訴你說這個詞彙是什麼意思,也許他用一個向量來表示這個詞彙的不同的特性,不同的attribute;

又比如,我們帶機器去逛動物園,給他看大量的動物的圖片,對於Unsupervised Learning來說,我們的data中只有給function的輸入的大量圖片,沒有任何的輸出標註;在這種情況下,機器怎麼學會根據testing data的輸入來自己生成新的圖片。

Structured Learning,得到的是一個複雜的、有結構性的輸出;

舉例來說,在語音識別的情境下,機器的輸入是一個聲音訊號,輸出是一個句子;句子是由許多詞彙拼湊而成,它是一個有結構性的object;

或者說機器翻譯、人臉識別(標出不同的人的名稱)。

Reinforcement Learning

Supervised Learning比較:在Supervised Learning裡,會告知正確的答案是什麼,而在Reinforcement Learning裡面不告知正確答案是什麼,機器得到的只是一個分數,更加符合人類真實學習的情景。(Alpha Go is supervised learning + reinforcement learning.)