1. 程式人生 > >【機器學習筆記】權衡 bias 和 variance

【機器學習筆記】權衡 bias 和 variance

Training error & Generalization error

Training error 是說對於一個假設 h ,在 m 個樣本中,h 分類錯誤的個數:

ϵ^(h)=1mi=1m1{h(x(i))y(i)}

Generalization error 是指對於一個假設 h ,對於一個新樣本,分類錯誤的概率:

ϵ(h)=P(x,y)D(h(x)y)

當樣本數量 m 足夠大的時候,我們可以用前者來擬合後者(這一點,可以直觀理解,也可以藉助 Hoeffding Inequality 和union bound 來證明,後面會說明)

bias 和 variance

Generalization error可以用如下的式子表出(換種表示):

E(h)=bias2(x)+var(x)+ϵ2

以迴歸模型為例,假設我們的一個預測模型,得出樣本資料的期望為 h¯(x)

bias

bias 是模型過於簡單的時候,欠擬合, 模型表現出來的誤差:

bias(x)=|h¯(x)y|
為了計算方便(去掉絕對值),我們在計算時用 bias2(x)

variance

是指模型過於複雜時,過擬合表現出的誤差;表現出來的一些特性僅僅適用於訓練集,而一旦應用於其他資料集(測試集)就會出現較大誤差
比如,我們用原來的訓練集 D 得到的期望是 h¯(x

D), 假設應用到另一個,比如測試集 T 上,方差就可以這樣計算:

var(x)=E[(h(x;T)h¯(x;D))2]

ϵ

ϵ 被稱為誤差,是一切模型Generalization error 的下界,刻畫了問題本身的難度

Generalization error 與 bias, variance的關係可以用下圖表示:

http://scott.fortmann-roe.com/docs/BiasVariance.html

ERM(empirical risk minimization)

ERM(empirical risk minimization) 本質就是最小化經驗誤差

顯式表示為:

經驗誤差為:

ϵ^(h)=1mi=1m1{hθ(x(i))y(
i)
}

也就是之前說的training error.
演算法的目的就是求得:

θ^=argminθϵ^(hθ)

模型複雜度的影響:

我們先假定問題是PAC(probably approximately correct) 的(下一篇我會展開說明PAC,以及為什麼得到下面那個式子),也就是說,我們可以通過優化訓練誤差來近似估計泛化誤差,對於訓練過程中,訓練誤差最小的 h^ , 有:

ϵ(h^)(minhHϵ(h))+212mlog2kδ

其中 H 是有限個假設函式 h 的集合, |H|=k , m 是訓練集中樣本的數量,δ 是犯錯的概率。

我們可以近似理解為: k 越大,模型越複雜,(minhHϵ(h)) 會更小或者不變,因為可選擇的 h增多,有可能得到更好的 h ; 但是 k 增大的同時, 212mlog2kδ 也增大了,誤差的上限也就增大。所以也就是從數學的角度解釋了我們為什麼不能盲目讓我們的模型變得更復雜。

和上圖類似,具體的影響如下圖的曲線所表示。
image_1bs74qgcns661fivb25njkmg59.png-80.2kB