李宏毅機器學習(2017full)-Lecture 2: Where does the error come from?

Where does the error come from? ML Lecture 2

參考 https://blog.csdn.net/abc8730866/article/details/70260188

Error的來源:Bias,Varience

  • f^ 是計算pokemon真正的函數,只有Niantic公司知道
  • 從訓練集上,我們得出的一個估計f
  • 故像射擊一樣,靶心爲 f^ , f 是我們射中的地方,會由於“bias”和“variance”導致射偏。

Bias and Variance of Estimator

估測均值μ :直接用m(一次實驗的平均值)來估計均值μ 是biased的 ,多次實驗,對得到的多個m計算期望,算是unbias

這裏寫圖片描述

  • 用m的方差估算σ2 是unbiased

    N越多,越集中。N越少,越分散。取決於取樣的數量
    這裏寫圖片描述

  • 用採樣結果得到的方差 s2 的期望來估計σ2 是biased的

    隨着N的增加,估測 s2σ2 差距會變小。

這裏寫圖片描述

ERROR的來源:

  • ERROR 1. bias:瞄準的是不是中心。瞄準點同靶心的距離就是Bias;
  • ERROR 2. variance:射出去和瞄準的之間距離 。實際射在靶心上的位置與你瞄準點的距離就是Variance。

這裏寫圖片描述

如何找到多個f ?

Parallel Universes平行宇宙

在不同的訓練集上,同一個model,也會得到不同的f

下面三圖是三個model在多個訓練集上進行100次實驗的結果:

這裏寫圖片描述

模型越簡單,越集中,variance比較小-簡單的model不容易受到data影響。

模型很複雜,分散開,variance比較大

這裏寫圖片描述

Bias

f 和靶心多接近。1,3,5次圖例。

  • 黑色線:真正的。f^
  • 紅色線:每次實驗得到的model
  • 藍色線:所有f 的平均 f¯

下小圖是解釋:function比較複雜的時候,function space可能很大,就可能包含target。

這裏寫圖片描述

總結

  • 簡單model。小bias 。偏離靶心

  • 複雜model。大bias 。圍繞靶心,f¯ 越接近f^

  • 原因:複雜模型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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章