处理过拟合问题-Regularization
數(shù)學(xué)中的Regularization是為了解決overfitting問題而引入的一種方法。所謂overfitting就是在一些數(shù)學(xué)模型中由于過于復(fù)雜,有太多的觀測參數(shù),以至于一點點微小的誤差都回產(chǎn)生巨大的影響,任何微小的數(shù)據(jù)擾動都會帶來巨大的改變。在一些訓(xùn)練模型中用來fitting的data也會因為結(jié)構(gòu)問題而Overfitting。
?
一般來說有兩種克服Overfitting的方法:一是補償模型的某些部分(如Regularization);二是根據(jù)潛在的問題提供而外的數(shù)據(jù)來訓(xùn)練。
?
下面介紹Tikhonov Regularization作為例子。
?
在如下方程中:
Ax = b
要求解x的標準方法是最小二乘法:
Min || Ax – b ||^2
求解這個方程除了overfitting外,還有overdetermined (underdetermined)的問題。所謂overdetermined (underdetermined),是指方程組中未知數(shù)的個數(shù)與方程數(shù)不不一致。如果把一個未知數(shù)看成一個自由度的話,每個單獨的方程可以看成一個對應(yīng)的constraint,當(dāng)constraint的數(shù)目比未知數(shù)還多時,有可能找不到符合方程組的解;當(dāng)方程的數(shù)目少于未知數(shù)時,可能有無窮多組解。顯然當(dāng)A不是方陣的時候肯定overdetermined(underdetermined)的。
A可能是奇異陣,這也是一個問題。
為了獲得在某種條件下的解,加入regularization項如下:
|| Ax – b ||^2 + || Rx ||^2
其中,||.||是Euclidean norm,即平方和的根。
在很多情況下,R可以直接取單位陣。加入R之后可解如下:
x = (A^TA + RTR)^(-1)A^Tb
?
一些另外的取法。令R = a*L,L是對稱Laplace-Beltrami算子。
L = V^(-1/2) * C * V^(-1/2)
V是一個voronoi area對角陣,C是一個系數(shù)對稱cotangentweight矩陣。(cot(Betai,j) + cot(Betai,j)^-)/2, Beta是相鄰三角形的角度。
?
可以把L作特征值分解,L = QBQ^T,Q為正交矩陣。因為正交矩陣不改變Frobenius norm,所以:
|| RU || = || aLU || = a|| QBQ^TU || = a|| BQ^TU||
一、過擬合:是指因過分強調(diào)對訓(xùn)練樣本的效果導(dǎo)致過度擬合,使得對未知預(yù)測樣本效果就會變差的一種情況。
擬合度就是說這個模型和你想象的理想情況差多少。試想如果所有的點都在直線上,一點也沒有離開直線,那就說明擬合度很好,是1。就是能夠完全解釋。而現(xiàn)實情況肯定沒有這樣的。就比如你的努力程度和歷次考試成績,雖然越努力成績越好,但是你不能保證自己沒有失誤 啊。這個失誤就是殘差,但是失誤肯定不是主要部分,所以R平方還是很大的。R方?jīng)]有很明確的界限,說什么就是好什么就是不好,有的時候時間序列的擬合程度都不是很好,甚至只有0.3到0.4,所 以要綜合來看,沒有很確定的界限二、什么情況下出現(xiàn)過擬合:
? 當(dāng)你擬合的函數(shù)中,一些特征權(quán)重階數(shù)越高時,過度擬合的情況越有可能發(fā)生,反之階數(shù)越小,過擬合發(fā)生概率越小,甚至?xí)窋M合。
? 比如有三個擬合函數(shù):
? ? a0 +?a1x1+ a2x2?
? ? ?a0?+?a1x1+ a2x2?+ a3x12?+ a4x22
? ? a0?+?a1x1+ a2x2 + a3x12 + a4x22?+ a5x13 + a6x23
? 則最后這個過擬合的可能最高。
三、如何解決過擬合問題:
1. ?將那些特征權(quán)重階數(shù)高的特征刪除。比如在上面的例子中刪除特征x13?、x23。
? ? ?刪除方式有兩種:
一種:人工查看樣本集合篩選
? ? ?另一種:有機器學(xué)習(xí)的規(guī)則用于篩選這種特征,后續(xù)才會講到。
2. 正則化:特征全部保留,但特征系數(shù)進行最小優(yōu)化。
? ? ?設(shè)一般情況下的成本函數(shù)為costFucntion(a,x,y)
? ? ?為了時特征系數(shù)減小,以使axj變小,新的成本函數(shù)為 costFunction_reg(a,x,y) = costFunction(a,x,y) + sum(aj2)?
我們將這種處理叫做正則化
新增的正則化項為 a02 + a12 + ... + an2, ?慣例上不要a02這項(他是1的系數(shù)),但即使加上效果影響不大。
四、正則化的線性回歸問題
? ? ?成本函數(shù):costFunction(a,X,y) = 1/2m *sum((h(a,X)-y).^2), 其中h(a,X)=Xa;
? ? ? ? ? 正則化后:costFunctionReg(a,X,y) =?costFunction(a,X,y) + lambda*sum(aj2)
? ? ?梯度下降法:aj = aj - 1/m *alpha * ( h(a,X)-y ) * Xj
? ? ? ? ? 正則化后:aj?= aj?- 1/m *?alpha * ( h(a,X)-y ) * Xj ?-?1/m * alpha * lambda?* aj
? ? ?正規(guī)方程組解法 a =?(XT*X)-1*XT*y
? ? ? ? ? 正則化后:a =?(XT*X - lambda * I )-1*XT*y
五、logistic分類問題過擬合解決
成本函數(shù):costFunction(ha(x),y) = -y*log( ha(x) ) - (1-y)*log( 1- ha(x))
正則化后:costFunctionReg(ha(x),y) =?costFunction(ha(x),y) ?+??lambda*sum(aj2)
梯度下降法:aj?=aj?-?1/m*(ha(x)-y?)* Xj;
正則化后:aj?=aj?-?1/m*(ha(x)-y?)* Xj?-1/m*lambda*a
總結(jié)
以上是生活随笔為你收集整理的处理过拟合问题-Regularization的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在Postfix中设置邮件转发
- 下一篇: 20个正则表达式