權重衰減 L2正則化

2021-10-09 05:46:25 字數 1164 閱讀 8312

正則化方法:防止過擬合,提高泛化能力

避免過擬合的方法有很多:early stopping、資料集擴增(data augmentation)、正則化(regularization)包括l1、l2(l2 regularization也叫weight decay),dropout。

權重衰減(weight decay)

l2正則化的目的就是為了讓權重衰減到更小的值,在一定程度上減少模型過擬合的問題,所以權重衰減也叫l2正則化。

其中c0代表原始的代價函式,後面那一項就是l2正則化項,它是這樣來的:所有引數w的平方的和,除以訓練集的樣本大小n。λ就是正則項係數,權衡正則項與c0項的比重。另外還有乙個係數1/2,1/2 1/211經常會看到,主要是為了後面求導的結果方便,後面那一項求導會產生乙個2,與1/2相乘剛好湊整為1。係數λ就是權重衰減係數。

為什麼可以對權重進行衰減

我們對加入l2正則化後的代價函式進行推導,先求導:

可以發現l2正則化項對b的更新沒有影響,但是對於w的更新有影響:

在不使用l2正則化時,求導結果中w前係數為1,現在w前面係數為1-ηλ/n,因為η、λ、n都是正的,所以1-ηλ/n小於1,它的效果是減小w,這也就是權重衰減(weight decay)的由來。當然考慮到後面的導數項,w最終的值可能增大也可能減小。

另外,需要提一下,對於基於mini-batch的隨機梯度下降,w和b更新的公式跟上面給出的有點不同:

對比上面w的更新公式,可以發現後面那一項變了,變成所有導數加和,乘以η再除以m,m是乙個mini-batch中樣本的個數。

權重衰減(l2正則化)的作用

作用:權重衰減(l2正則化)可以避免模型過擬合問題。

思考:l2正則化項有讓w變小的效果,但是為什麼w變小可以防止過擬合呢?

原理:(1)從模型的複雜度上解釋:更小的權值w,從某種意義上說,表示網路的複雜度更低,對資料的擬合更好(這個法則也叫做奧卡姆剃刀),而在實際應用中,也驗證了這一點,l2正則化的效果往往好於未經正則化的效果。(2)從數學方面的解釋:過擬合的時候,擬合函式的係數往往非常大,為什麼?如下圖所示,過擬合,就是擬合函式需要顧忌每乙個點,最終形成的擬合函式波動很大。在某些很小的區間裡,函式值的變化很劇烈。這就意味著函式在某些小區間裡的導數值(絕對值)非常大,由於自變數值可大可小,所以只有係數足夠大,才能保證導數值很大。而正則化是通過約束引數的範數使其不要太大,所以可以在一定程度上減少過擬合情況。

正則化與權重衰減

1.權重衰減 weight decay l2正則化的目的就是為了讓權重衰減到更小的值,在一定程度上減少模型過擬合的問題,所以權重衰減也叫l2正則化。其中c0代表原始的代價函式,後面那一項就是l2正則化項,它是這樣來的 所有引數w的平方的和,除以訓練集的樣本大小n。就是正則項係數,權衡正則項與c0項的...

L1正則化和L2正則化

為了降低過擬合風險,需要控制模型複雜度,自然想到減少引數個數,但是這個問題不易直接解決,可以通過放寬條件控制。新增優化條件 這會使引數條件空間有明顯的凸角,這些突出點顯然會成為聯合優化時的最優解,但同時這些這些凸點中又會有較多的0值 由其限制條件可見,凸點都在座標軸上 因此l1範數會更易得到稀疏解,...

L1正則化和L2正則化

l1標準化與l2標準化 參考 l1 l2標準化及其python 實現 我們知道,正則化的目的是限制引數過多或者過大,避免模型更加複雜。l1 與 l2 解的稀疏性 以二維情況討論,上圖左邊是 l2 正則化,右邊是 l1 正則化。從另乙個方面來看,滿足正則化條件,實際上是求解藍色區域與黃色區域的交點,即...