dropout及過擬合詳解

2021-10-24 12:16:44 字數 972 閱讀 2467

過擬合的定義:

在訓練集上表現效果好,在交叉驗證集上表現較差,也就是說在未知的樣本上表現一般,泛化能力較差。

常常存在於資料少,資料網路深度長或者複雜(也就是引數多)的情況,導致過擬合問題。

出現過擬合的原因:

從圖中可以看出,最左邊是欠擬合的,中間是正好,最右邊是過擬合的。

過擬合也就是說網路複雜,資料過於簡單導致的。   我們常用的資料集常常分為訓練集,驗證集和測試集,

驗證集的作用就是為了防止過擬合。。 如果只有訓練集和測試集,訓練好的資料準確率很高,到測試集的時候可能會存在準確率很低的情況。。

如何避免過擬合問題:(這個先留個概念,可以其他期再說。)

1. early stopping  在網路迭代收斂前停止,防止過度學習     。

2. 正則化   l1和l2正則

3.dropout

4.資料增強  

#dropout的定義:

也就是整體的網路結構中「隨機」丟棄一些神經元(也就是部分網路權重不更新,不被丟棄的時候再更新)進行訓練,這樣子可以以比整體網路結構輕量的情況下實現資料的訓練。由於每次丟棄神經元是隨機的,所以基本多次迭代可以保證大部分的神經元都被訓練到,防止引數過多導致的過擬合問題。也就是說,每個神經元都會有個被丟棄的概率問題。

@@需要注意的是,dropout只有在訓練的時候才會用到,**的時候不會用到。

從右圖可以看出,淺色的神經元就是被隨機丟棄的。

dropout的作用:

1.防止過擬合, 

dropout防止過擬合

l1 l2正則化是通過修改代價函式來實現的,而dropout則是通過修改神經網路本身來實現的,它是在訓練網路時用的一種技巧 trike 它的流程如下 假設我們要訓練上圖這個網路,在訓練開始時,我們隨機地 刪除 一半的隱層單元,視它們為不存在,得到如下的網路 保持輸入輸出層不變,按照bp演算法更新上圖...

dropout解決過擬合

原理就是在第一次學習的過程中,隨即忽略一些神經元和神經的鏈結。使得神經網路變得不完整。一次一次。每一次得出的結果不依賴某乙個引數。這樣就解決了過擬合問題。import tensorflow as tf from sklearn.datasets import load digits from skl...

Dropout與過擬合

假設我們要訓練這樣乙個神經網路 輸入是x輸出是y,正常的流程是 我們首先把x通過網路前向傳播,然後把誤差反向傳播以更新引數讓網路進行學習。使用dropout之後過程變成 隨機 臨時 刪掉網路中一半的隱藏神經元,輸入輸出神經元保持不變 下圖中虛線為部分臨時被刪除的神經元 把輸入x通過修改後的網路前向傳...