重新認識過擬合於解決方法

2022-06-07 08:24:08 字數 1819 閱讀 9219

過擬合的主要原因就是訓練集樣本太少或樣本中存在雜訊。如果是樣本太少的原因,那直接增加訓練樣本就好了,但是訓練樣本不是你想加就能加的呀。所以我們能做的就是使用正則化技術來防止模型學到訓練樣本中的雜訊,從而降低過擬合的可能性,增加模型的魯棒性。

訓練 樣本中存在雜訊

京東面試題

l2 規範化是一種最為常用的正則化手段 —— 有時候被稱為權重衰減(weight decay)。l2 規範化的想法是增加乙個額外的項到代價函式上,這個項叫做規範化項。

\(c=c_+\frac \sum_ w^\)

在訓練神經網路時,我們知道我們的訓練目的就是優化權重,而且是使用反向傳播和梯度下降來優化的;那麼加入正則化項之後權重是如何優化的呢?將上述加l2正則項的代價函式對引數w進行求導:

\(\frac=\frac}+\frac w\)

\(\begin w & \rightarrow w-\eta \frac}-\frac w \\ &=\left(1-\frac\right) w-\eta \frac} \end\)

這和正常的梯度下降學習規則相同,只是多了乙個因子 [公式] 重新調整了權重w,這種調整稱為權重衰減。 粗看,這樣會導致權重會不斷下降到 0。但是實際不是這樣的,因為如果在原始代價函式中造成下降的話其他的項可能會讓權重增加。

那麼規範化因子 [公式] 如何設定呢?根據調節因子 [公式] ,我們知道,如果訓練資料很多時,也就是n比較大,那麼調節因子將接近1,從而使得權重衰減效果不明顯,導致規範化效果降低。因此,我們可以針對大資料集將規範化引數設定大一點,對小資料集將規範化引數設定的小一些。【zhihu】

因此,我們可以看出,不管是l1還是l2正則,他們的基本思想就是希望通過限制權重的大小,使得模型不能擬合任意的雜訊資料,從而達到防止過擬合的目的。 因為更小的權重意味著網路的行為不會因為我們隨便改變了乙個輸入而改變太大。這會讓規範化網路學習區域性雜訊的影響更加困難。將它看做是一種讓單個的證據不會影響網路輸出太多的方式。相對的,規範化網路學習去對整個訓練集中經常出現的證據進行反應。對比看,大權重的網路可能會因為輸入的微小改變而產生比較大的行為改變。所以乙個無規範化的網路可以使用大的權重來學習包含訓練資料中的雜訊的大量資訊的複雜模型。簡言之,規範化網路受限於根據訓練資料中常⻅的模式來構造相對簡單的模型,而能夠抵抗訓練資料中的雜訊的特性影響。我們的想法就是這可以讓我們的網路對看到的現象進行真實的學習,並能夠根據已經學到的知識更好地進行泛化。

l1和l2正則也有不同之處,l1正則會讓引數變得更稀疏,而l2不會。所謂引數變得稀疏是指會有更多的引數變為0,這樣可以達到類似特徵選取的功能。而之所以l2不會讓引數變得稀疏的原因是因為引數很小時,比如0.001,它的平方基本可以忽略,於是模型也就不會進一步的讓其變得更小而調整為0。其次,l2正則項可導,l1正則項不可導,這樣使得帶l2正則項的損失函式更方便更容易優化,而帶l1正則項的損失函式的優化就比較複雜。

另外,值得注意的是規範化中並沒有對偏置項進行規範化,因為即使對偏置進行規範化操作也並不會對結果改變太多,所以,在某種程度上,對不對偏置進行規範化其實就是一種習慣了。然》而,需要注意的是,有乙個大的偏置並不會像大的權重那樣會讓神經元對輸入太過敏感。所以我們不需要對大的偏置所帶來的學習訓練資料的雜訊太過擔心。同時,允許大的偏置能夠讓網路更加靈活 —— 因為,大的偏置讓神經元更加容易飽和,這有時候是我們所要達到的效果。所以,我們通常不會對偏置進行規範化。

to

過擬合的解決方法

overfitting就是過擬合,其直觀的表現如下圖所示,隨著訓練過程的進行,模型複雜度增加,在training data上的error漸漸減小,但是在驗證集上的error卻反而漸漸增大 因為訓練出來的網路過擬合了訓練集,對訓練集外的資料卻不work,這稱之為泛化 generalization 效能...

過擬合及解決方法

在機器學習演算法中,我們經常將原始資料集分為三部分 訓練集 training data 驗證集 validation data 測試集 testing data 1.validation data是什麼?它事實上就是用來避免過擬合的。在訓練過程中,我們通經常使用它來確定一些超引數 比方,依據vali...

過擬合及解決方法

過擬合,指的是模型在訓練集上表現的很好,但是在交叉驗證集合測試集上表現一般,也就是說模型對未知樣本的 表現一般,泛化 generalization 能力較差。通俗一點地來說過擬合就是模型把資料學習的太徹底,以至於把雜訊資料的特徵也學習到了。在機器學習演算法中,我們常常將原始資料集分為三部分 trai...