深度學習中的網絡設計技術(二)——正則化技術

一、過擬合、欠擬合

1. 什麼是過擬合?什麼是欠擬合?

  1. 過擬合其實就是在訓練樣本內能夠很好的擬合數據,而在訓練樣本外(沒有參與訓練的樣本)擬合效果很差,這樣的現象就是過擬合。如果你在訓練網絡的過程中發現,模型準確率很高,但是在測試的時候發現準確率很低,那麼有可能就是發生了過擬合現象。也就是數過擬合沒有好的泛化能力。
  2. 泛化:指一個模型應用到新樣本的能力,新樣本就是指沒有參與訓練的樣本數據。
  3. 欠擬合:無論在訓練樣本還是訓練樣本外,都不能很好的擬合數據的現象。

2. 過擬合形成的原因。

過擬合的發生是有過多的特徵變量,但是有非常小的訓練數據,就會發生過擬合。過擬合發生後一般有兩種解決方法:

  1. 儘量減少特徵變量的數量。

在衆多的特徵變量中,有的特徵對模型的預測沒有大的影響,但有的特徵又比較重要,此時就要考慮哪些特徵值得保留,哪些特徵應該放棄,這就需要模型的一些選擇算法來判斷哪些需要保留,哪些需要放棄。

  1. 正則化技術的使用

主要的正則化技術有:L1正則化、、L2正則化、dropout正則化、其他正則化方法。
下面介紹減少過擬合的一些正則化方法。

二、正則化

  1. 正則化思想

假設函數: y = a0 + a1 * x + a2 * x^2 +a3 * x ^3 + a4* x^4
其中: a0, a1, a2, a3, a4 是參數(可以理解爲權重), x 表示輸入的特徵。
假設後兩項對模型的影響並不是很大,如果直接丟棄在這兩個特徵並不是一種很好的選擇,因爲對模型的影響不大並不代表對模型沒有影響,這時候我們不希望直接刪除這兩個特徵的,而是加入懲罰項使得參數a3, a4足夠小。

上面的例子其實就是正則化背後的思想,加入正則化(懲罰項)後,相當於儘量去簡化這個模型,這些參數越小,得到的函數就會越平滑,也就越簡單。所以使得參數儘量的小,就能使得模型更簡單的直觀原因。
目的:限制參數過多或者過大,避免模型更加複雜

  1. 爲什麼加入懲罰項後,能防止過擬合?

過擬合產生原因就是因爲參數過多。如果極端的假設,加入懲罰項後能構使得參數足夠小,那麼也就是數參數無限趨於0,這樣是不是就相當於減少了參數量。按照這種極端的假設是不是可以防止過擬合。總之參數儘量的小,就能使得模型簡單。下面看下爲什麼加入懲罰項後,參數會變小?
代價函數 在這裏插入圖片描述
反向傳播過程中更新參數: 在這裏插入圖片描述
由公式2可以看出更新參數時加了一項 λ / m 這項的加入減小了參數,所以更新後的參數(權重)比原來未加入懲罰項後的參數(權重)更小。這樣也就使得模型變的簡單,從而一定程度上防止了過擬合。

注意:公式中λ參數的作用是用來控制縮小每個參數(權重)的。那麼正則化的時候選擇一個合適的正則化因子lamda則顯得十分重要。

  1. L1 正則化
    在這裏插入圖片描述
  2. L2 正則化
    在這裏插入圖片描述

三、Dropout正則化

  1. Dropout 正則化的簡單理論在我的博客《深度學習中的網絡設計技術(一) ——理論概述》中有簡介。
  2. 如何實施dropout?
    使用反向隨機失活(inverted dropout), 參數:keep-prob:它表示保留某個神經元結點的概論。
  3. 測試階段:測試階段應用dropout函數會使得預測受到干擾,所以測試階段不用dropout,但是要加入nn.eval()函數來參數。
  4. 每次迭代後,神經網絡都會變得比以前更小,因此採用一個較小神經網絡和使用正則化的效果一樣。另外,從單個神經元入手,它的輸出不依賴單純的某個輸入,所以不會給任何一個輸入加上太多的權重。
  5. dropout會產生壓縮權重的效果,它類似於L2正則化,與L2正則化不同的是被應用的方式不同,dropout也會有所不同。
  6. 如何使用dropout? 可以在一些認爲會發生過擬合的層中間加入,有的層不用加入dropout. 另一種方法是,根據層數大小的變化加入dropout,層數比較深的時候可以使得keep-prob變的小一點,也就是刪除結點的概率大點,如果層數比較淺,則將keep-prob設置大一點。
  7. dropout 的一大缺點是,代價函數不再被明確定義,每次迭代都會隨即移除一些結點。某種程度上很難計算,所以失去了調節工具。

其他正則化方法:

  1. 通過擴增訓練數據集解決過擬合,但是數據集的收集成本比較高,一般可以通過水平翻轉,變換,裁切,放大等手段來擴充數據集。所以擴充數據集也可以作爲正則化方法使用。
  2. 另一種方法是early stopping. 就是提前停止訓練神經網絡。當驗證集上的損失曲線和訓練集上的損失曲線距離發生偏離時可以提前停止。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章