【學習筆記】斯坦福大學公開課(機器學習) 之學習理論.a

偏差與方差的權衡(Bias/variance tradeoff)

關於偏差與方差的概念:
https://www.zhihu.com/question/27068705/answer/35151681

在學習線性迴歸時,我們遇到這樣的問題,對於一個迴歸問題,我們是採用比較簡單的模型(y=θ0+θ1x )還是採用一個比較複雜的多項式模型(y=θ0+θ1x+θ5x5 )呢?
我們先看下面一個例子:
這裏寫圖片描述
作爲五階多項式來說(如最右圖),這不是一個好的模型,雖然它能夠很好的將訓練數據出來,但是這存在過擬合的現象,也就是說他的泛化性不好,即訓練出來的模型在訓練數據上有很好的表現,但是在其他數據集中就會表現欠佳。這裏有個泛化誤差(generalization error)的概念,它是指存在於測試集上而不在訓練集上存在的期望誤差。
這裏可以看到最左後兩張圖的泛化誤差都比較大。當然兩種模型一種是欠擬合,一種是過擬合。當我們用一個線性模型來預估一個不是呈線性模型的數據時,模型不會得到數據的正確特徵結構。一般的,我們就會定義一個模型的偏差(bias)來代表我們預測中的泛化誤差。
除了偏差(bias),這裏還有一個可以來組成泛化誤差的。它是由擬合模型的方差(variance)組成,就比如最右圖,五階多項式就有很高的過擬合風險,它能把我們有限的樣本數據集預測得很好,但是不能夠真正表示出xy 的關係。所以當用這個模型去預測數據時,會得到的結果會有很大的泛化誤差,就是因爲模型的方差太大造成的。
通常,偏差和方差之間有一個權衡,如果我們的模型過於簡單,擁有的參數比較少,那麼它可能會有比較大的偏差,那麼類似的,如果模型過於複雜,參數太多,它就是方差太大(而偏差較小),在上面的例子中,我們通過圖形可以看到,中間的二次多項式比其它兩者有更好的預測效果。

前言(Preliminaries)

接着,我們開始學習機器學習理論,我們會學習到針對不同的數據情況,怎樣來選取最佳的模型,我們也會對以下一些問題做一些探討:

  • 對於剛剛討論過的偏差和方差,我們應該如何權衡?這個問題最終會討論到究竟用幾次多項式來訓練數據。
  • 我們在訓練模型時,一般都很注意泛化誤差,但是所有模型都是通過訓練集來訓練模型的,爲什麼模型在訓練集上的表現也能看出一些泛化誤差的東西。或者說,模型在訓練集上的誤差與泛化誤差有什麼樣的關係?
  • 在哪些特定的條件下,能證明學習算法能表現得很好。

先來看幾個引理:

  1. 假設A1,A2,A3Ak 是k個不同的事件。那麼我們有概率:
    P(A1A2Ak)P(A1)+P(A2)P(Ak)
  2. Z1,Z2,Z3Zm 是m個獨立同分布事件,它們都服從伯努利分佈Bernoulli(ϕ)
    P(|ϕϕ^|>γ)2exp(2γ2m)

    其中γ>0ϕ^=(1/m)mi=1Zi
    在機器學習理論中,這個也叫作切諾夫界(Chernoff bound),從這個式子可以看出,如果我們把隨機變量的均值ϕ^ 當作我們的ϕ 的預測值,那麼真實概率值離這個預測值很遠的概率會比較小,只有m 足夠得大。

有了以上兩個引理,我們來看二分類問題。我們有訓練集S={(x(i),y(i));i=1,2,3m} ,他們是獨立同分布,並且服從概率分佈D ;對於一個假設函數h ,我們定義它的訓練誤差(training error)爲(有時也叫做經驗風險(empirical risk),經驗誤差(empirical error))

ε^(h)=1mi=1m1{h(xi)yi}

再定義泛化誤差:
ε(h)=P(x,y)D(h(x)y)

這個式子表示從概率分佈D 中抽取一個新的數據(x,y) ,用假設函數h 做分類結果錯誤h(x)y 的概率。
至於是線性模型,我們假設hθ(x)=1{θTx0} ,那麼我們怎麼樣來找到一個合理的方式來確定θ 參數?一種方法就是最小化訓練誤差:
θ^=argminθε^(h)

我們稱這個過程是經驗風險最小化(empirical risk minimization (ERM)),這個過程求出來的假設函數記爲h^=hθ^
現在把這個理論擴展到更通用的狀態,我們定義一個假設類(hypothesis class)H ,這個類中有所有機器學習可以用的分類器,ERM就可以看做是在假設類H 中,找到能最小化它的經驗誤差:
h^=argminhHε^(h)

有限函數集H 的情況

基於以上的討論,我們來證明一下h^ 的泛化誤差與訓練誤差有一定的聯繫。
證明思路大概有兩個步驟,首先,我們要證明訓練誤差ε^(h) 針對所有h 的泛化誤差ε(h) 都是可靠的估計,再由此引入一個h^ 的泛化誤差的上邊界。
思考有這樣一個伯努利分佈隨機的變量Z ,當我們從數據集D 中抽取一個樣本(x,y) ,那我們的隨機變量Z=1{hi(x)y} ,那麼同樣的,針對我們的訓練數據集Zj=1{hi(x(j))y(j)} ,因爲D 是獨立同分布,那麼我們的Z,Zj 也是同分布。
根據前面討論的,我們可以看到泛化誤差ε(hi)=P(x,y)D(hi(x)y) 恰好是伯努利分佈Z 的期望,而訓練誤差ε^(hi)=1mmi=1Zj 又是我們隨機變量Zj 的平均值,所以我們就可以運用我們前文所說的引理2得到:

P(|ε(hi)ε^(hi)|>γ)2exp(2γ2m)

可以看到針對我們特定的某個假設函數hi ,在訓練樣本數量m很大的情況下,訓練誤差和泛化誤差會有很高的概率相差無幾。但是我們需要證明的是針對所有的假設函數h 都此結論,而不是針對一個單一的假設函數hi
爲了進一步論證,我們把|ε(hi)ε^(hi)|>γ 假設成爲事件Ai ,那麼我們運用上文所說的引理1:
P(hiH.|ε(hi)ε^(hi)|>γ)=P(A1A2Ak)i=1kP(Ai)i=1k2exp(2γ2m)=2kexp(2γ2m)

等式兩邊同時用1做被減數(等式左邊有一個邏輯變換)
P(¬hiH.|ε(hi)ε^(hi)|>γ)=P(hH.|ε(hi)ε^(hi)|γ)12kexp(2γ2m)

所以可以看到對於H 集合中任何假設函數hi 的訓練誤差和泛化誤差之間的差異小於γ 的概率是大於12kexp(2γ2m)
在上面的不等式中,我們看到三個變量,γ,m 和關於誤差的概率值,這三個變量分別可以更加其他兩個變量來確定。
比如說,當樣本m 需要多大的時候,我們才能保證訓練出來的模型的訓練誤差和泛化誤差的差異在γ 以內的概率大於1δ ?我們可以代入以上的不等式中,求得:
m12γ2log2kδ

在機器學習算法中,我們把某一模型或算法需要達到特定表現時需要的樣本數量稱爲樣本複雜度(sample complexity)
同樣的,當我們知道另外兩個變量,要求變量γ 的時候,我們可以得到以下不等式:
|ε(hi)ε^(hi)|12mlog2kδ

我們如何來證明通過h^=argminhHε^(h) 得到的模型的泛化能力呢?
先定義h=argminhHε(h) 表示在H函數集中最好的模型,那麼我們就有:
ε(h^)ε^(h^)+γε^(h)+γε(h)+2γ

把以上的結論做一個定理:
|H|=k ,已知m,δ ,那麼
ε(h^)minhHε(h)+212mlog2kδ
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章