2017年5月22日 星期一

[ML] Error 到底從那裡來?

Error 主要來自 bias 以及 variance

透過下圖,就可以知道 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,就是當選擇其中一項後,另一項表現會比較差

「tradeoff」的圖片搜尋結果

例如,下面的圖五就非常清楚的告訴我們背後的原因

「tradeoff」的圖片搜尋結果
圖五、總誤差與bias 和 variance的關係

所以,有個技巧就是所謂的N-fold cross validation,也就是將訓練用資料分成幾份(fold)

把其中一份當作validation set,並且在訓練的過程中使用validation set來訓練

分別針對不同情境下,3個模型進行訓練,個別求出誤差值為多少

並選擇平均誤差值為最小的模型來當作最終的預測模型

圖六(擷取自上課影片)

沒有留言:

張貼留言

/* 載入prettify的autoloader */ /* 載入JQuery */