Posts

Showing posts from March, 2019

Bias vs Variance - 世上是沒有完美的Model

Image
相信讀者們在看我寫的文章經常提到Overfit, Regularization等對普通人頗為陌生的字眼,未必能一時理解其意思,甚至覺得一頭霧水。所以我會在這篇文章集中逐一詳解其意思,這些字眼都是描述在建立Supervised Learning的模型時所遇上的問題,和應該作出什麼的取捨或修正。文中免不了數式來解釋,如果看不懂的,可以直接忽略的,筆者會加上淺白的文字和圖像解釋。 這一切都是取捨 香港寸金尺土,那麼用作樓價作為例子,假設我們不知道新樓盤的價錢,但至少我們知道樓盤的實用面積($x$),利用這個資料來估計該物業的價錢($y)$,當然我們可以build一些model,用的可以是最簡單的Regression至更複雜的Neural Network,但當最後選出那個模型是最好的時候,應該要怎樣選擇呢?首先要先明白兩個重要的指標: Bias及Variance。它們均是用作量度誤差,因為學習的過程是Supervised的,我們本來事先已經知道真正答案,即是y-label,只要對比預測出來和真實答案便可得出Error,也就是: $$error = (真實答案 - 我們的模型預測結果)^2=(y - \hat{f}(x))^2$$ 而我們建立出來的模型其實是approximate出來,只是近似不是真正的,因此在f(x)上加上hat:$\hat{f}(x)$以表示我們建立的模型。 兩邊加上Expectation後: $$E(error) = E(y - \hat{f}(x)))^2$$ 假設這個世界有真正的模型, $f(x)$,再加上一些White Noise, $\epsilon$ (平均值為0, Variance為\sigma, 常態分怖的隨機數字),便可以解答到真實的答案,即是$y = f(x) + \epsilon$。只要把剛才的公式作一一些手腳,經過大量的運算,最後變成得出另一條有著其他意思的公式: $$E(error) = (f(x) - E(\hat{f}(x))^2 + Var(\hat{f}(x)) + \sigma = Bias + Variance + Noise$$ Bias及Variance一同出現鳥!這裡顯而易見,預期的誤差其實是由三個部分造成,Bias的多少是由正確答案和我們的模型得出的答案有多不同,愈高的Bias代表...