2 1 2 Dropout正則化以及其他正則化

2021-08-18 21:17:26 字數 2287 閱讀 8230

除了l2正則化之外,還有乙個很重要的正則化方法叫隨機失活(dropout),下面,我們來了解一下。

如圖所示,假設網路中的每一層的節點都以拋硬幣的形式來設定概率,每乙個節點得以保留和消除的概率都是0.5。

設定完節點之後,我們會刪除得分是0分節點,然後刪除從該節點進出的連線。最後得到乙個節點更少,規模更小的網路。之後我們用反向傳播演算法進行訓練。

其他樣本,我們也按照這個方法進行訓練,即刪除一些節點,然後用一些精簡的網路進行訓練。對於每乙個樣本,我們都用精簡的網路進行訓練。

實施dropout的方法有很多,最常見的是反向隨機失活(inverted dropout)

如圖所示,我們使用三層神經網路舉例。

d3表示乙個三層的dropout向量,keep-prob是乙個具體的數,比如說上個例子中的0.5,這個例子我們用0.8來表示。這個數表示的是保留某個隱藏單元的概率

d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep-prob
這行**表示的是它消除任意乙個隱藏單元的概率是0.2,它的作用就是生成乙個隨機矩陣。也就是對於每乙個隱藏單元而言,d3的值是1的概率都是0.8,而對應的值是0的概率是0.2。

接下來我們要做的是從第三層獲取啟用函式。

a3 = np.multiply(a3, d3)
他的作用就是過濾d3中所有等於0的元素。乘法運算最終把d3中的相應元素歸零。

最後,我們進行

a3 /= keep-prob
他的功能是比如就像圖中下面部分說的z[

4]=w

[4]a

[3]+

b[4]

如果a3的值減少了20%,那麼直接計算的話z的值一定會受到影響。為了不影響這個z的值得話,我們對a3除以乙個keep-prob。

這個就是dropout的反向隨機失活(inverted dropout)實現,不管keep-prob的值是多少,確保a3的期望值不變

在測試階段,我們不使用dropout,因為在測試階段,我們不希望輸出的值是隨機的。如果在測試階段使用dropout函式,那麼**值就會收到干擾。

dropout可以隨機的刪除神經網路中的節點,這一做法實在是有點瘋狂。但是為什麼正則化可以發揮這麼大的作用,我們一起來了解一下。

如圖所示,神經網路下面的每乙個引數是keep-prob的不同的數值,他代表了每一層保留單元的概率。所以不同層的keep-prob值是可以變化的。對於第二層而言,w的矩陣比較大,所以我們可以把keep-prob的值設定的低一些。

因此,如果你擔心某些層可能比其他的層更容易發生過擬合,那麼你可以把這個層的引數設定的更低一些。

但是我們要注意的是,除非演算法發生了過擬合,一般不建議使用dropout。dropout的一大缺點就是cost function不再明確定義了,每次迭代都會隨機的移除一些節點。這樣就不太容易去檢查梯度下降的效能了。通常不移除節點的話cost function的值是在不斷下降的,但是移除了節點之後就不好說了。不一定可以保證j單調遞減。

我們先來介紹一下early stopping的概念。

如圖所示,梯度下降過程中cost function的值在不斷減小。然而驗證集的誤差可能會像紫色曲線。

early stopping的概念就是說,乙個神經網路在這一點之前迭代的很好,我們在此刻停止訓練吧,得到的驗證集誤差。

這是什麼原因呢?

因為你的神經網路在還沒有迭代很多次的時候,你的引數w的值接近於0。而在迭代過程中w的值會逐漸變得越來越大。

因此early stopping要的就是我們在此刻停止迭代過程,得到乙個較小的w。避免了神經網路的過擬合。

但是early stopping也有不足之處

我們在訓練乙個機器學習模型的時候,通常希望他的成本函式(cost function)盡可能的小,同時又不要過擬合,然而early stopping因為早早的就停止了迭代過程,所以他無法保證我的j盡可能的小。

dropout的比例 Dropout正則化原理

1 dropout 如何工作 典型的神經網路其訓練流程是將輸入通過網路進行正向傳導,然後將誤差進行反向傳播。dropout就是針對這一過程之中,隨機地刪除隱藏層的部分單元,進行上述過程。步驟如下 隨機刪除網路中的一些隱藏神經元,保持輸入輸出神經元不變將輸入通過修改後的網路進行前向傳播,然後將誤差通過...

正則化及dropout

綜合stanford university cs231n 課堂 及google 機器學習簡介課程,進行了小小的記錄 正則化 regularization 有助於防止出現過擬合 分為 dropout 丟棄 通常,將正則化率設為0.5 一般是在全連線層使用。有時也用在卷積層,不過,不是隨機把某個神經元上...

dropout的正則化理解

dropout是hintion最近2年提出的,源於其文章improving neural newworks by preventing co adaptation of feature detectors.中文的意思 通過阻止特徵檢測器的共同作用來提高神經網路的效能 dropout效果同於baggi...