问题1 机器学习篇 如何解决过拟合(overfiting)?
向自己提問題是一個很好的學(xué)習(xí)方式。
問題: 如何解決過擬合(overfiting)?
在解決這個問題之前先明確問題是什么.這涉及到另外一些問題,什么是過擬合?過擬合與什么因素有關(guān)?等等
答:
1)直觀理解過擬合
先說說經(jīng)驗誤差,學(xué)習(xí)器在訓(xùn)練集上的預(yù)測值和真實值之間的差異稱為經(jīng)驗誤差。我們希望經(jīng)驗誤差越小越好,但是當(dāng)經(jīng)驗誤差太小,以至于精確度約為100%時,我們就懷疑這個模型出現(xiàn)了過擬合。
所謂的過擬合就是學(xué)習(xí)器從數(shù)據(jù)中學(xué)得太多,已經(jīng)把訓(xùn)練樣本的某一些特點當(dāng)作是所有潛在樣本都會具有的一般性質(zhì)。
2)從數(shù)學(xué)上理解過擬合
在監(jiān)督學(xué)習(xí)中,我們所說的模型實際上是一個決策函數(shù),對于給定的輸入X,函數(shù)給出預(yù)測值f(X),f(X)f(X)與真實值可能一致也可能不一致,通常使用損失函數(shù)(loss function)或者代價函數(shù)(cost function)來 衡量預(yù)測錯誤的程度,記為L(Y,f(X))L(Y,f(X))。常用的的損失函數(shù)有一下幾種:
如果我們把輸入和輸出都看做隨機變量,那么這兩個隨機變量會有聯(lián)合分布P(X,Y), 考慮其損失函數(shù)的期望, 即平均意義下的損失,也稱為風(fēng)險函數(shù)或者期望損失:
實際中我們并不能得到期望損失,因為我們不知道聯(lián)合分布。
我們總是訓(xùn)練模型,用模型的經(jīng)驗損失去近似期望損失。經(jīng)驗損失是模型上訓(xùn)練集的平均損失,表示為
只有在數(shù)據(jù)量大的時候,使用模型的經(jīng)驗損失去近似期望損失才會比較理想,當(dāng)數(shù)據(jù)量小的時候,這個近似并不理想。
解決辦法是經(jīng)驗風(fēng)險最小化和結(jié)構(gòu)風(fēng)險最小化策略。
經(jīng)驗風(fēng)險最小化可以使用下式表示:
極大似然估計是經(jīng)驗風(fēng)險最小的一個例子。
使用經(jīng)驗風(fēng)險最小策略的問題: 當(dāng)樣本不足或者很小時,經(jīng)驗風(fēng)險最小化學(xué)習(xí)的效果不一定好,會產(chǎn)生過擬合。
這里從另外一個角度理解什么是過擬合。
3) 解決方法:
防止過擬合的方法就是使結(jié)構(gòu)風(fēng)險最小化,等價于正則化。
結(jié)構(gòu)風(fēng)險是在經(jīng)驗風(fēng)險上加上表示模型復(fù)雜度的正則化或者罰項,如下式:
模型越復(fù)雜,復(fù)雜度J(f)J(f)越大,反之越小。復(fù)雜度表示對模型的懲罰。
λ≥0λ≥0用于衡量經(jīng)驗風(fēng)險和模型復(fù)雜度。
這個策略認(rèn)為結(jié)構(gòu)風(fēng)險最小的模型是最優(yōu)模型,從而把監(jiān)督學(xué)習(xí)問題變成了經(jīng)驗風(fēng)險函數(shù)或者結(jié)構(gòu)風(fēng)險函數(shù)的最優(yōu)化問題。
4)一個多項式擬合問題
使用M次多項式對10個數(shù)據(jù)點進行擬合:
我們會發(fā)現(xiàn)當(dāng)M=9時,沒有任何誤差,已經(jīng)過擬合。
5) one more thing
李航的書中還提到模型復(fù)雜度和預(yù)測誤差的關(guān)系,這也涉及到泛化能力的問題。
更進一步,什么是欠擬合?如何解決欠擬合?
參考:
周志華《機器學(xué)習(xí)》
李航《統(tǒng)計學(xué)習(xí)方法》
轉(zhuǎn)載于:https://www.cnblogs.com/siucaan/p/9623174.html
總結(jié)
以上是生活随笔為你收集整理的问题1 机器学习篇 如何解决过拟合(overfiting)?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROStopic 通信方式
- 下一篇: 题目:两个排序数组的中位数(C++)