過擬合是深度學習中十分常見的問題,乙個模型如果過擬合了就無法很好的適用於實際的業務場景中。
防止過擬合的方法:
(1)引入正則化
(2)dropout
(3)提前終止訓練
(4)增加樣本量
下面一一作出詳細的介紹:
模型過擬合極有可能是模型過於複雜造成的。模型在訓練的時候,在對損失函式進行最小化的同時,也需要對引數新增限制,這個限制也就是正則化懲罰項。
假設模型的損失函式為:
加入正則項
l後,損失函式為
常用的正則化方法有兩種:
l1正則:
其中w代表模型的引數,k代表模型引數的個數。l1正則化是指權值向量
w中各個元素的
絕對值之和,通常表示為||
w||1
l2正則:
l2正則化是指權值向量
w中各個元素的
平方和然後再求平方根
,通常表示為||
w||2
它們的區別在於l1更容易得到稀疏解。
假設我們模型只有 w1
,w2兩個引數,上圖中左圖中黑色的正方形是l1正則項的等值線,而彩色的圓圈是模型損失的等值線;右圖中黑色圓圈是l2正則項的等值線,彩色圓圈是同樣模型損失的等值線。因為我們引入正則項之後,我們要在模型損失和正則化損失之間折中,因此我們取的點是正則項損失的等值線和模型損失的等值線相交處。
通過上圖我們可以觀察到,使用l1正則項時,兩者相交點常在座標軸上,也就是 w1
,w2中常會出現0;而l2正則項與等值線常相交於象限內,也即為 w1
,w2非0。因此l1正則項時更容易得到稀疏解的
。該方法由hinton提出的。hinton認為在神經網路產生過擬合主要是因為神經元之間的協同作用產生的。因此在神經網路進行訓練的時候,讓部分神經元失活,這樣就阻斷了部分神經元之間的協同作用,從而強制要求乙個神經元和隨機挑選出的神經元共同進行工作,減輕了部分神經元之間的聯合適應性。
dropout的具體流程如下:
(1)對
l層第
j個神經元產生乙個隨機數 r(
l)j∼
bern
ouli
(p)(2)將
l層第
j個神經元的輸入乘上產生的隨機數作為這個神經元新的輸入:x(
l)∗j
=x(l
)j∗r
(l)j
(3)此時第
l層第
j個神經元的輸出為:
其中,k為第l層神經元的個數,f為該神經元的啟用函式,b為偏置,w為權重向量。
在對模型進行訓練時,我們可以將我們的資料集分為三個部分,訓練集、驗證集、測試集。我們在訓練的過程中,可以每隔一定量的step,使用驗證集對訓練的模型進行**,一般來說,模型在訓練集和驗證集的損失變化如下圖所示:
可以看出,模型在驗證集上的誤差在一開始是隨著訓練集的誤差的下降而下降的。當超過一定訓練步數後,模型在訓練集上的誤差雖然還在下降,但是在驗證集上的誤差卻不在下降了。此時我們的模型就過擬合了。因此我們可以觀察我們訓練模型在驗證集上的誤差,一旦當驗證集的誤差不再下降時,我們就可以提前終止我們訓練的模型。
增加樣本量是最實在的方法。
過擬合可以理解為我們的模型對樣本量學習的太好了,把一些樣本的特殊的特徵當做是所有樣本都具有的特徵。
參考:[1]
深度學習 過擬合問題
overfitting 表現 策略 1.正則化措施 a.權值衰減 weight decay b.多模型ensemble c.資料增強 d.雜訊 e.dropout 更多參考資料 訓練集好測試集不好 1 資料增多 2 模型簡化 3 正則化 regularization 以訓練效能為代價 思路是為了將權...
深度學習 過擬合問題
1 過擬合問題 欠擬合 根本原因是特徵維度過少,模型過於簡單,導致擬合的函式無法滿足訓練集,誤差較大 解決方法 增加特徵維度,增加訓練資料 過擬合 根本原因是特徵維度過多,模型假設過於複雜,引數過多,訓練資料過少,雜訊過多,導致擬合的函式完美的 訓練集,但對新資料的測試集 結果差。過度的擬合了訓練資...
深度學習(七) 過擬合欠擬合
整體 從標準正態分佈中隨機抽取資料組成張量,形狀由sizes定義 函式原型 torch.randn sizes,out none 應用 features torch.randn n train n test,1 生成200 1的張量在給定維度上對輸入的張量序列seq進行連線操作。0為行,1為列。對輸...