丟棄法為什麼可以防止過擬合

2021-10-02 04:35:56 字數 409 閱讀 1029

丟棄法為什麼和weight decay(l2 norm)一樣也能達到防止過擬合的效果。

什麼是丟棄法:

當我們對該隱藏層使⽤丟棄法時,該層的隱藏單元將有⼀定概率被丟棄掉。設丟棄概率為p,那麼

有p 的概率hi 會被清零,有1 ? p 的概率hi 會除以1 ? p 做拉伸。丟棄概率是丟棄法的超引數。

h1,h2,h3,h4, h5是五個隱藏層的神經元。

在反向傳播時,與這兩個隱藏單元相關的權重的梯度均為0。由於在訓練中隱藏層神經元的丟棄是隨機的,即h1; : : : ; h5

都有可能被清零。這樣輸出層的計算都⽆法過度依賴h1; : : : ; h5 中的任⼀個,從而在訓練模型時,

起到正則化的作⽤,並可以⽤來應對過擬合。在測試模型時,我們為了拿到更加確定性的結果,

⼀般不使⽤丟棄法。

為什麼正則化可以防止過擬合?

為什麼正則化有利於預防過擬合呢?為什麼它可以減少方差問題?我們通過兩個例子來直觀體會一下。左圖是高偏差,右圖是高方差,中間是just right,這幾張圖我們在前面課程中看到過。直觀上理解就是如果正則化引數設定得足夠大,權重矩陣被設定為接近於0的值,直觀理解就是把多隱藏單元的權重設為0,於是基本上消...

為什麼正則化可以防止過擬合?

加上正則化項之後的損失函式 j w l b l 1m i 1 ml y y 2m l 1 l w l f2j w b frac sum ml y y frac sum l w 2 f j w l b l m 1 i 1 m l y y 2m l 1 l w l f2 f表示frobenius範數 縮...

使用丟棄法應對模型過擬合

從零實現 匯入包和模組 matplotlib inline import torch import torch.nn as nn import numpy as np import sys import d2lzh pytorch as d2l print torch.version def dro...