ML Lecture 2: Where does the error come from?



Error

做完機器學習,希望可以透過診斷error來源,來減低error

error來自biasvariance

我們只能用training data 找出一個估測值 (y*) 來預估真正的function (ŷ):y 就是 ŷ 的 estimator*

既然是用估計的,就會有variance 跟 bias的問題

f-hat (f^) 跟 f-star(f*) 則表示function的實際值與估測值,且兩者的距離差距為 bias+variance(右圖中,f^為靶心)

估測 mean

要評估 x 的 mean 可以sample一定數量(N)的 x求平均 得 x-bar

但x-bar跟真正的mean(μ) 一定不會一樣,除非sample夠多次

但x-bar 的期望值E[x-bar]會正好等於 μ ,所以 x-bar是一個 unbias 的estimator

而x-bar跟μ 之間會有一個差距,這個差距取這個差距取決於variance Variance 又取決於N (sample數) 大小

$$ Var[\bar{x}]=\frac{\sigma^2}{N} $$

估測 variance

先用前面一樣的方法估測出x-bar 再用x-bar來算出 s² 這個 s² 就可以用來估測 σ²

$$ \bar{x}=\frac{1}{N}\sum_nx_n\,\,\,\,\,\,\,\,\,s^2=\frac{1}{N}\sum_n(x_n-\bar{x})^2 $$

不過這個estimator 是 biased estimator

因為算 s² 的期望值,不會等於 σ² (普遍會比較小一點)

$$ E[s^2]=\frac{N-1}{N}\sigma^2 $$

回到regression問題

我們可以透過算期望值得知,一個estimatpor是不是biased

例如右下圖,先把一堆f*算出期望值 f-bar 可以發現 f-bar跟把心有一段距離,就是bias

而f*跟f-bar之間的距離就是variance

當f*做得夠多次的時候,可以發現:

Variance:

Bias: (複雜model會隨著f*越多,bias越小)

黑線:f-hat(真正的f) ; 藍線:f*平均值

比較一下兩者。之前model太複雜導致testing data的error爆高(overfitting),其實是因為variance太大,而under-fitting的情況則是因為model簡單,導致bias大