Error 主要來自 bias 以及 variance
透過下圖,就可以知道 bias 和 variance 之間的差別
圖一、bias 和 variance
簡單的model,variance比較小 ; 複雜的model,variance比較大
簡單的model,比較不受取樣的資料影響
圖二(擷取自上課影片)
什麼是 ovefitting 與 underfitting ?
我們來觀察一下下圖三
簡單的模型就相當於下圖左variance小,但是bias較大的情況
但是這些 model 並沒有包含正確的 model (紅心的部份)
複雜的模型就相當於下圖右variance大,但是bias較小的情況
這些 model 有包含正確的 model (紅心的部份)
因此平均之後得到的model(藍色線),預測的準確性比起簡單的模型更接近正確答案(黑線)
圖二(擷取自上課影片)
我們可以將上圖的情況用另一張圖來表達
藍色線的部份是我們觀察到的總誤差(error)
如果今天我們的誤差來自variance,我們稱作overfitting
若我們的誤差來自bias,我們稱作underfitting
圖四(擷取自上課影片)
那今天有一個很重要的問題,我怎樣判斷我的模型誤差來自誰?怎麽修正?
bias過大 - underfitting
如果今天我們訓練後得到的 model,連訓練資料預測的結果都不好,那麼就是bias過大
屬於underfitting的情況
variance過大 - ovefitting
但是今天我們訓練後得到的 model,訓練資料預測的結果還不錯,但是測試資料效果不佳
那麼就是variance過大,屬於ovefitting
ovefitting 解決方法:
1. 增加測試資料(collect data) ,非常有效,但可能不實際,例如資料難以取得
2. Regularization,增加lamda項,讓曲線變平滑,但是可能會除去不平滑的正確模型
Model 怎麽選???
常常 bias 與 variance 都會面臨 Trade-off,就是當選擇其中一項後,另一項表現會比較差
例如,下面的圖五就非常清楚的告訴我們背後的原因
圖五、總誤差與bias 和 variance的關係
所以,有個技巧就是所謂的N-fold cross validation,也就是將訓練用資料分成幾份(fold)
把其中一份當作validation set,並且在訓練的過程中不使用validation set來訓練
分別針對不同情境下,3個模型進行訓練,個別求出誤差值為多少
並選擇平均誤差值為最小的模型來當作最終的預測模型
圖六(擷取自上課影片)
沒有留言:
張貼留言