深層神經網路的正則化問題

2021-08-13 10:20:29 字數 1012 閱讀 7169

1. 什麼是正則化

我們知道,在使用神經網路進行分類時,有時會出現「訓練集的分類效果很好而測試集的分類效果卻不理想」這種現象。這種現象稱之為「過擬合」,「正則化」的提出就是為了解決這個問題。那麼究竟什麼才是「正則化」呢?首先讓我們來看下面兩個公式:

(1)式是我們之前定義的代價函式,(2)式相對於(1)式而言增加了右邊一項,增加的那項稱之為「l2正則項」。那麼「l2正則項」是如何避免模型「過擬合」呢?下面我們來簡單分析一下:我們在訓練模型時,為了降低代價函式往往會盡可能擬合訓練集,這就使得我們訓練的模型變得複雜,而過於複雜的模型就不能很好的**未知資料(也就會出現「過擬合」現象),而「l2正則項」的出現就會制約著模型變得複雜(左邊項的值減少,模型變複雜就會使得右邊項的值增加),因此正則化可以解決「過擬合」問題。

2. 常見「正則項」

除了上面提及的「l2正則項」,還有一種常用的正則化方法——dropout正則化。dropout正則化的工作原理是:在每一次迭代中,通過設定keep_prob這一變數來隨機刪除(設定對應權值為0)若干個神經元,刪除的這些神經元對網路沒有作用,從而可以簡化網路。在使用dropout正則化時,有以下幾點需要注意:

3. 實驗比較

借助某一資料集,來比較未使用正則項、使用l2正則項和使用dropout這三種模型比較。實驗結果如下表所示:

model

train accuracy

test accuracy

3-layer nn without regularization

95%91.5%

3-layer nn with l2-regularization

94%93%

3-layer nn with dropout

93%95%

通過實驗結果來看,正規化會有損訓練集的表現,這是因為它限制了網路過度訓練集的能力。 但是由於它最終提供了更好的測試準確性,因此它是有用的。

4. 小結

神經網路的認識(二)深層神經網路

損失函式 神經網路優化演算法 神經網路進一步優化 深層學習有兩個非常重要的特性 多層和非線性 線性模型的侷限性,就是任意線性模型的組合仍然還是線性模型。所以引出啟用函式,經過啟用函式變換完的輸出就不再是線性的了。如果將每乙個神經元 也就是神經網路中的節點 的輸出通過乙個非線性函式,那麼整個神經網路的...

神經網路的正則化

神經網路的vc dimension的值與神經元的個數以及權重的個數有關。所以個數越多,神經網路模型越強大越複雜。相應的就有可能出現過擬合的現象。那麼如何預防過擬合呢,有兩種方法。正則化項,這是最常見的方法,不同的是,神經網路用梯度下降法優化權重,所以需要損失函式是可導得,如果使用l1正則化項,就不可...

Tensorflow 深層神經網路

維基百科對深度學習的定義 一類通過多層非線性變換對高複雜性資料建模演算法的合集.tensorflow提供了7種不同的非線性啟用函式,常見的有tf.nn.relu,tf.sigmoid,tf.tanh.使用者也可以自己定義啟用函式.3.1.1 交叉熵 用途 刻畫兩個概率分布之間的距離,交叉熵h越小,兩...