Lecture 0-2

Introduction

人工智慧/機器學習是啥

人工智慧:希望機器跟人一樣聰明

機器學習:機器具有學習的能力

深度學習:機器學習的一種方法

人工智慧是我們的目標,機器學習是達成目標的手段

機器學習的本質

機器學習的本質就是為輸入資料找出相應的函數

像是 f(貓的圖片) = “貓”

架構如下:

在某個function set透過訓練資料,找出最好的function,並測試這個function的可靠性。

Learning map

Regression:透過過往資料,預測未來訊息,不管輸入資料類型為什麼,輸出總是純量。

Classification:

Supervised Learning:給機器提供輸入資料與預期輸出,讓機器找出function

Semi-Supervised Learning:給機器少量有label的資料,與大量沒label的資料

Transfer Learning:給機器少量有label的資料,與大量不相關的資料(可能有label也可能沒有)

Unsupervised Learning:給機器完全沒有label的資料

Structured Learning:讓機器輸出有結構性的資料

Reinforcement Learning:不告訴機器正確答案,機器只會知道自己做的好還是不好,做的不好就回去改進。跟監督式學習的差別在於,監督式很像learning from teacher,而Reinforcement是learning from criticis。

Lecture 1: Regression

Regression Problem

從過去的資料預測未來。例如從過去十年各種股票起伏的資料,預測未來的道瓊指數。從無人車的各個sensor資料,推測要控制的方向盤角度。

Procedure

Step 1: Model

確定輸入資料想要的輸出資料 ⇒ 找出各種function,形成function set

如果function被定義為線性函數,則此model被稱為linear model

Step 2: Goodness of Function

收集足夠多的training data,並測試每個function的好壞。

Loss function (L):

Loss function example: 真正數值減預估數值後取平方的加總

圖形化loss function,越紅色loss越大,誤差越大;越藍色loss越小,誤差越小。

Step 3: Best Function

從function set裡找出最佳的function f*,而f*就是loss最小的function。找一個f使得L(f)最小:

可以窮舉w和b,找出最好的結果。這個函數有closed-form solution(把所有參數組合代入,可找出最佳解)

但這樣太不實際了,所以就使用Gradient descent,找出較好解

Gradient Descent:

多變數Grdient Descent(以兩變數w, b為例):

簡單來說就是求Gradient

local minimum問題

因為這是linear regression,是convex function,不會有local minimum的問題,所以就如左圖,不管一開始w0、b0值取多少,最後都會落到最低點;而右圖就是non-linear regression,若w0、b0值取錯,就會落入local minimum,導致無法求得最佳解

Solution of gradient of w and b

Model Selection

Traning Data

選用的model越複雜,training data的loss會越小,這是因為function space包含的元素隨複雜度增加

Training Data v.s. Testing Data

雖然代入Training Data時,model越複雜loss越小。但代入Testing Data的結果就不一樣了,model複雜度越高,反而loss越大。這個現象被稱作overfitting。就很像在駕訓班練習開車時還開得不錯,但上路後就又不好說了。所以應該要選最適合的model,而不是最複雜的model。

Redesign the Model

因為這麼多的資料,可能會有好幾個不同種類,所以如果沒分類就使用同個model,就不會找到最佳解。所以不同種類的資料,就要有不同linear function:

單有這麼多組的function,這樣model還是線性的嗎?所以我們可以把y用delta function的組合表示:

Regularization

隨著model的複雜度與考慮的參數量增加,但loss不會跟著下降,反而上升,有overfitting
發生。所以我們現在要重新設計loss function:

λ為常數項,我們原本的loss function,再考慮了權重的加總。為甚麼呢?

先考慮下y,當輸入x有變化時,則輸出y的變化受w影響,也就是x被w的放大或縮小:

所以如果loss function加入了權重項的考慮,則當我們希望loss變小時,變相希望w變小。當w變小,則輸入x的變化量越不明顯,函數會變得更平滑(smooth)。換句話說就是當x有雜訊時,雜訊對輸出的影響會變小,使得loss function更能找出最佳解。

λ控制了平滑程度,當λ越大,則函數越平滑,testing data得到的結果更精確。不過當λ超過一個閥值,則loss反而會上升,所以λ不是越大越好。

那b為甚麼不用考慮?因為b(bias)是控制函數上下的平移,對於函數的平滑性無關係。

Lecture 2: Where does the error come from ?

模型越複雜不代表模型越準確,導致這現象的錯誤分為兩種:bias、variance

假設我們要預測的事件,其真實函數為f_hat,我們預測的模型為f*。在真實情況中,若以打靶形容,f_hat就是中心紅點,我們預測的f*實際上不會正中紅心,而f*到f_hat的差距,就是bias與variance的總和:

Bias and Variance of Estimator

因為無法知道整體資料的全貌,所以只好從中取樣N筆資料來估計特徵。假設取樣了N筆資料: {x_1, x_2, …, X_N},則樣本平均值m為全部資料的加總除以N,期望值E[m]如下:

m為某次取樣的估計量(Estimator),當重複進行非常多次隨機取樣,則每次取樣的m的平均值(期望值)E[m]會非常接近真實值 μ。

多次取樣的結果的之間的差異值Var[m]為變異數(variance)σ²除以N,σ²代表每筆資料的變動程度,表示資料本身的穩定性。

(直線圖上的文字有錯,左邊應為Smaller N,右邊應為Larger N)
圖上的每顆藍點代表在進行多次取樣時,每一次取樣的m,當取樣數越大,則每個取樣的預估值m之間的差異就越小,也越靠近真實數。下圖為無偏時的樣本離散程度。

Unbiased就很像在打靶時一開始有瞄準紅心,但因為風力等影響,導致每次射到的都會有偏差,但整體平均來說會接近紅心;Biased就很像一開始就射歪,導致整體平均後,離原本的紅心還有偏差,所以期望值需乘上N-1/N來校正:

以打靶來比喻,就會像下面這樣:

Variance

假設我們有100筆資料,每次取樣10筆。可以看到模型越簡單,其圖形較集中,則Variance小;模型越複雜,其圖形散布程度越大,variance大。

簡單的model受到不同data的影響比較小,所以每個模型的差別就不會那麼大;複雜的model反之。

Bias

f*為每次訓練的結果,f_bar為所有訓練結果的平均,可以想像f_bar為中心點,每個f*都以f_bar為中心點散開。

當模型簡單,就好像在取樣時的function space比較不會有機會包含target,導致bias變大;模型複雜,則function space包含target的機率就變大,bias較小。

Bias v.s. Variance

當模型簡單、bias大、variance小時,稱作underfitting,此時要把更多的feature考慮進model,或把model變得更複雜;當模型複雜、bias小、variance大時,稱作overfitting。

解決overfitting的方法:

Model Selection

要注意的事情

如下圖,將自己手上的testing set丟入各model後,發現model 3的error是最小的,但其實把真實的testing set拿去測試,會發現實際上model 3的error不一定是最小的。

Cross Validation

將原本的Training Set分為Training Set跟Validation Set,Validation Set用來測驗model後選擇error最小的,此時選出的model以Public Training Set測出來的Error跟Private Testing Set測出來的Error不會差太多。

N-fold Cross Validation

Cross Validation的Validation Set的bias也有可能發生劣質的現象,此時若使用N-fold Cross Validation可能會更好。

以3-fold Cross Validation為例:

不要太在意Public Testing Set的結果

如果覺得Public Testing Set的結果比Validation Set的結果還差,然後去調整原本的model的話,會導致原本model受Public Testing Set的Bias的汙染,結果Private Testing Set的結果可能還會變得更差。