---
# System prepended metadata

title: 李宏毅_ML_Lecture_2
tags: [NTU, Machine Learning, Hung-yi Lee]

---

# 李宏毅_ML_Lecture_2
###### tags: `Hung-yi Lee` `NTU` `Machine Learning`
[課程撥放清單](https://www.youtube.com/channel/UC2ggjtuuWvxrHHHiaDH1dlQ/playlists)
## ML Lecture 2: Where does the error come from?
[課程連結](https://www.youtube.com/watch?v=D_S6y0Jm6dQ&index=5&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49)
### Review
![](https://i.imgur.com/eOonkMa.png)

回顧上節課的結論，愈複雜的Model不一定會有愈好的結果。    
這次要討論的是error的來源：
* bias
* variance
### Estimator
![](https://i.imgur.com/KnmAM9J.png)

上節課建立的模型，$\hat{f}$輸入寶可夢資料，得到輸出(進化後的cp)$\hat{y}$，但是我們並不會知道那個真正的$\hat{f}$，透過訓練資料集我們只能得到可能的$f^*$

而$f^*$與$\hat{f}$的差異即來自於bias與variance

註：$f^*$是$\hat{f}$的估測值
### Bias and Variance of Estimator
![](https://i.imgur.com/LEg8078.png)

從統計與機率的概念來了解，我們有一個『variable x』，我們希望估測它的mean，作法如下：
1. 取sample N個點來計算平均值m
    * $m \neq \mu$
2. 如上圖右，不同的實驗得到了不同的m
    * 很難會有$m=\mu$
3. 計算期望值
    * 所有m的期望值會等於$\mu$

每一個m它可能不會相等於$\mu$，但是它們的期望值會正好等於$\mu$，好比你打靶的時候雖然瞄準中心，但是因為諸多因素而導致最後散佈在中心的週圍。

註：mean假設為$\mu$
註：variance假設為$\sigma^2$
### Bias and Variance of Estimator
![](https://i.imgur.com/Y3csd9R.png)

散佈的範圍取決於variance，而variance取決於你取多少的sample，sample多則分佈較為集中，反之則分散。

註：**簡報上的Larger與Smaller反了**
註：$Var[m]=\frac{\sigma^2}{N}$
註：mean假設為$\mu$
註：variance假設為$\sigma^2$
### Bias and Variance of Estimator
![](https://i.imgur.com/sj0T9Q3.png)

計算出m之後，以此估算出$s^2$，這是$\sigma^2$的估測，如$\mu$一般，它會散佈在$\sigma^2$的週圍。    
計算$s^2$的期望值，它並不會等於$\sigma^2$，普遍比$\sigma^2$還要小($\frac{N-1}{N}\sigma^2$)。    
一樣的，當N變大，兩者之間的估測差距就會變小(上圖右)

註：$Var[m]=\frac{\sigma^2}{N}$
註：mean假設為$\mu$
註：variance假設為$\sigma^2$
### Bias and Variance of Estimator 
![](https://i.imgur.com/2SieaYW.png)

* 目標：$\hat{f}$
* 預測：$f^*$
* $f^*$的期望值(平均)：$\bar{f}$

分類器的bias為$\bar{f}$，就是一開始就沒有瞄到紅心，而我們期望會打到$\bar{f}$卻落在$f^*$，這中間的差異即為variance，這兩個部份即為誤差來源。

### Parallel Universes
![](https://i.imgur.com/8Vq9mDP.png)

模型的訓練雖然只會有一次即得結果，但是相同的模型可以以不同的資料來做訓練以取得不同的$f^*$，舉課程例來說，第一次訓練的可能是用編號1-10的寶可夢，第二次訓練用編號11-20，相同的模型不同的數據資料。

### Parallel Universes
![](https://i.imgur.com/nzrmD2r.png)

假設做了100次不同的模型訓練(這100次皆不同的寶可夢)，並將模型可視化，結果如上圖，會發現什麼都有可能會發生。
### Variance
![](https://i.imgur.com/oYCN0sV.png)

結果來看，選擇較為簡單的模型其Variance較低(較為集中)，這是因為愈簡單的Model，資料受其影響性愈小，以最極端安例來看，y=c，那不管怎麼選擇都是c，。    
 
### Bias
![](https://i.imgur.com/mSXr3L9.png)

$E[f^*]=\bar{f}$，如果這個均值接近$\hat{f}$，那就是Low Bias，但是我們並不會知道$\hat{f}$，所以要假設，假設一個$\hat{f}$
### Bias
![](https://i.imgur.com/a1Z8Q9X.png)

* 黑線：假設的$\hat{f}$
* 紅線：5000次的模型訓練
* 藍線：5000次的訓練平均

二次式來看，藍黑差異不小，但以三次式來看雖然每次的差異很多(紅線)，但是平均來看卻是很接近(藍線)
### Bias
![](https://i.imgur.com/3Q5hxM9.png)

結果來看，比較簡單的模型會有比較大的Bias，比較複雜的模型則會有比較小的Bias。

模型是一個function set，也就是範圍，在定義一個模型的同時也產生了一個function set，也定義住範圍，簡單的模型則相對的所定義的範圍較小，而同時的這個範圍可能是不包含目標(target)，這時候不管怎麼處理都是high bias。
### Bias vs Variance
![](https://i.imgur.com/u4Xgw5z.png)

上圖說明著，簡單的模型會有著Low Variance/High Bias的特性(Underfitting)，隨著模型的複雜，會逐漸變成High Variance/Low Bias(Overfitting)。因此由左到右可以看的出來Bias是逐漸的下降(紅線)，但同時Variancce也是逐漸上升(綠線)。藍色線則是我們所觀測資料的error，在某個點或許可以兩者都考慮到，但是隨著模型的複雜整個error也會逐漸的上升。
### What to do with large bias?
![](https://i.imgur.com/7KYLbNk.png)

當模型無法擬合訓練資料集，那就是High Bias(Underfitting)，如果訓練資料集狀況良好，但測試資料集狀況不佳，那就是High Variance(Overfitting)

* High Bias
    * 加入更多的特徵
    * 更為複雜的模型
### What to do with large variance? 
![](https://i.imgur.com/aXw9SjA.png)

* High Variance
    * 收集更多資料
        * 資料增強
    * 正規化
        * 可能影響bias
### Model Selection
![](https://i.imgur.com/T3nj7dL.png)

在Bias與Variance中找尋一個平衡點，選擇一個適合的模型，但需注意到，我們手上的測試資料集始終是一個已知的資料，到實際的未知資料中不見得會有相等的好結果。
### Cross Validation
![](https://i.imgur.com/KpdJHBs.png)

作法上，可以將訓練資料集再拆分為訓練集與驗證資料集
### N-fold Cross Validation
![](https://i.imgur.com/R3GyF0x.png)

如果對於單一的驗證資料集不信任的話，可以透過多折的方式來驗證模型效能，再計算平均誤差，以此方式選擇模型。
