偏差與方差的權衡(Bias/variance tradeoff)
關於偏差與方差的概念:
https://www.zhihu.com/question/27068705/answer/35151681
在學習線性迴歸時,我們遇到這樣的問題,對於一個迴歸問題,我們是採用比較簡單的模型(
我們先看下面一個例子:
作爲五階多項式來說(如最右圖),這不是一個好的模型,雖然它能夠很好的將訓練數據出來,但是這存在過擬合的現象,也就是說他的泛化性不好,即訓練出來的模型在訓練數據上有很好的表現,但是在其他數據集中就會表現欠佳。這裏有個泛化誤差(generalization error)的概念,它是指存在於測試集上而不在訓練集上存在的期望誤差。
這裏可以看到最左後兩張圖的泛化誤差都比較大。當然兩種模型一種是欠擬合,一種是過擬合。當我們用一個線性模型來預估一個不是呈線性模型的數據時,模型不會得到數據的正確特徵結構。一般的,我們就會定義一個模型的偏差(bias)來代表我們預測中的泛化誤差。
除了偏差(bias),這裏還有一個可以來組成泛化誤差的。它是由擬合模型的方差(variance)組成,就比如最右圖,五階多項式就有很高的過擬合風險,它能把我們有限的樣本數據集預測得很好,但是不能夠真正表示出
通常,偏差和方差之間有一個權衡,如果我們的模型過於簡單,擁有的參數比較少,那麼它可能會有比較大的偏差,那麼類似的,如果模型過於複雜,參數太多,它就是方差太大(而偏差較小),在上面的例子中,我們通過圖形可以看到,中間的二次多項式比其它兩者有更好的預測效果。
前言(Preliminaries)
接着,我們開始學習機器學習理論,我們會學習到針對不同的數據情況,怎樣來選取最佳的模型,我們也會對以下一些問題做一些探討:
- 對於剛剛討論過的偏差和方差,我們應該如何權衡?這個問題最終會討論到究竟用幾次多項式來訓練數據。
- 我們在訓練模型時,一般都很注意泛化誤差,但是所有模型都是通過訓練集來訓練模型的,爲什麼模型在訓練集上的表現也能看出一些泛化誤差的東西。或者說,模型在訓練集上的誤差與泛化誤差有什麼樣的關係?
- 在哪些特定的條件下,能證明學習算法能表現得很好。
先來看幾個引理:
- 假設
A1,A2,A3⋯Ak 是k個不同的事件。那麼我們有概率:
P(A1∪A2⋯Ak)≤P(A1)+P(A2)⋯P(Ak) Z1,Z2,Z3⋯Zm 是m個獨立同分布事件,它們都服從伯努利分佈Bernoulli(ϕ) :
P(|ϕ−ϕ^|>γ)≤2exp(−2γ2m)
其中γ>0 ,ϕ^=(1/m)∑mi=1Zi
在機器學習理論中,這個也叫作切諾夫界(Chernoff bound),從這個式子可以看出,如果我們把隨機變量的均值ϕ^ 當作我們的ϕ 的預測值,那麼真實概率值離這個預測值很遠的概率會比較小,只有m 足夠得大。
有了以上兩個引理,我們來看二分類問題。我們有訓練集
再定義泛化誤差:
這個式子表示從概率分佈
至於是線性模型,我們假設
我們稱這個過程是經驗風險最小化(empirical risk minimization (ERM)),這個過程求出來的假設函數記爲
現在把這個理論擴展到更通用的狀態,我們定義一個假設類(hypothesis class)
有限函數集H 的情況
基於以上的討論,我們來證明一下
證明思路大概有兩個步驟,首先,我們要證明訓練誤差
思考有這樣一個伯努利分佈隨機的變量
根據前面討論的,我們可以看到泛化誤差
可以看到針對我們特定的某個假設函數
爲了進一步論證,我們把
等式兩邊同時用1做被減數(等式左邊有一個邏輯變換)
所以可以看到對於
在上面的不等式中,我們看到三個變量,
比如說,當樣本
在機器學習算法中,我們把某一模型或算法需要達到特定表現時需要的樣本數量稱爲樣本複雜度(sample complexity)
同樣的,當我們知道另外兩個變量,要求變量
我們如何來證明通過
先定義
把以上的結論做一個定理: