Where does the error come from? ML Lecture 2
參考 https://blog.csdn.net/abc8730866/article/details/70260188
Error的來源:Bias,Varience
- 是計算pokemon真正的函數,只有Niantic公司知道
- 從訓練集上,我們得出的一個估計
- 故像射擊一樣,靶心爲 , 是我們射中的地方,會由於“bias”和“variance”導致射偏。
Bias and Variance of Estimator
估測均值 :直接用m(一次實驗的平均值)來估計均值 是biased的 ,多次實驗,對得到的多個m計算期望,算是unbias
用m的方差估算 是unbiased
N越多,越集中。N越少,越分散。取決於取樣的數量
用採樣結果得到的方差 的期望來估計 是biased的
隨着N的增加,估測 和 差距會變小。
ERROR的來源:
- ERROR 1. bias:瞄準的是不是中心。瞄準點同靶心的距離就是Bias;
- ERROR 2. variance:射出去和瞄準的之間距離 。實際射在靶心上的位置與你瞄準點的距離就是Variance。
如何找到多個 ?
Parallel Universes平行宇宙
在不同的訓練集上,同一個model,也會得到不同的
下面三圖是三個model在多個訓練集上進行100次實驗的結果:
模型越簡單,越集中,variance比較小-簡單的model不容易受到data影響。
模型很複雜,分散開,variance比較大
Bias
和靶心多接近。1,3,5次圖例。
- 黑色線:真正的。
- 紅色線:每次實驗得到的model
- 藍色線:所有 的平均
下小圖是解釋:function比較複雜的時候,function space可能很大,就可能包含target。
總結
簡單model。小bias 。偏離靶心
複雜model。大bias 。圍繞靶心, 越接近 。
原因:複雜模型fuanction set 範圍較大,簡單的範圍較小。
Bias vs Variance
- 隨着模型變複雜,Bias(描的越來越準)導致的error下降;
- 隨着模型變複雜,Variance導致的error上升;
- 隨着模型變複雜,error由下降到上升。
- 模型較簡單時,大的Bias,小的Variance,Underfitting!
- 模型過於複雜時,小的Bias,大的Variance,Overfitting!
what to do with bias & variance
- model不能fit 訓練數據,說明bias太大,跟爭取model有差距。underfitting
- model可以fit 訓練數據,但是在test data上得到大的error,model的variance較大。overfitting
bias大:
- 增加特徵
- 重新設計模型
variance大:
- 增加data(有效控制variance的方法)
自己create數據(手寫數字,旋轉圖像;語音辨識,男生女生聲音變化;錄音室聲音+公車上的聲音……;)
- Regularization正則化
(loss基礎上加的那個額外的式子 )希望找到的曲線越平滑越好
下圖下半部分。左→右,逐漸加regularization。但是可能會傷害bias。
所以Regularization需要在bias和variance找到平衡
Model Selection
在Bias和Variance中找到一個平衡去選擇model,使得總誤差最小
但是注意!
用三種model訓練之後在測試集上計算err,選擇err最小的是不對的。Testing set可能是自己手上的數據,卻忽視了其他的,具有自己的bias(和前面提到的bias略有不同)。
做了作業之後。
以homework爲例:
public testing set不可靠
應該這樣做:
- 將Training set分爲兩組:training set 和 validation set。
- 訓練三個model,通過validation set計算得到的err來選擇model。
- 用原始Training set(T+V)訓練,在testing set 上測試。(雖然在testing set(public)err結果可能大於0.5),但是public err 可以真實反映private testing。
- 在真正的測試集上得出error,這樣的話效果好,纔是真的好。
不推薦!
- 在testing set上結果太差,想要把testing再考慮進去
- 這樣做了,只是在自己的測試集上變好了,真正的測試集上不一定會變好。
K-fold Cross Validation K折交叉驗證
對訓練集分組。
- 將訓練集分成三部分,取其中一份爲驗證集,有三種組合情況;
- 用三種模型在這三種情況下進行訓練,然後在驗證集上得出error,取三種情況下error的均值,均值error最小的情況作爲選定的最好的模型;
- 將選出的模型,用原始的整個訓練集訓練,然後在測試集上得出error;
- 在真正的測試集上得出error。
少根據Testing Set 上對自己的模型進行調整
**Reference:**Bishop: Chapter 3.2