為什麼在普通神經網路中,訓練的誤差實際上是隨著網路層數的加深,先減小再增加

時間 2021-05-30 19:09:46

1樓:好逸惡勞

如果最後訓練集誤差很小,而驗證集誤差偏大,一般就是過擬合,在網路容量不變的情況下,可以加入dropout,引數正則化等,再去試一下看看驗證誤差有沒有減小。判斷一下是不是過擬合的問題。

前幾天我在寫乙個簡單的卷積網路時也發現了類似的問題,測試集準確率先公升後降,後來調整了學習率後就好了。

2樓:淺小思

先說對不對,再說為什麼。首先,這種說法是不對的,在單層引數個數一致的情況下,越深的網路層數,其所能表徵的對映函式越複雜,擬合能力也越好。所以在訓練樣本充足的情況下,越深的網路結構表現的訓練誤差越小。

而在樣本數量固定的情況下,就會面臨著過擬和欠擬的折衷而出現V字形了。

3樓:[已重置]

可以這麼理解,網路深度決定了網路的複雜度,乙個演算法的複雜度可以認為是演算法空間中測地線的長度,所以乙個深度網路可以理解為一條有一定長度的曲線。然後你通過資料訓練調整引數改變曲線的形狀,用這條曲線去構造一條從恒等變換到目標變換的路徑。這裡就有乙個曲線長度和目標變換複雜度的匹配問題,網路複雜度逐漸增加,就是曲線由短變長,顯然只有在長度和問題複雜度匹配的時候效果最好,過短過長都不好。

這就是你觀察到的現象。

至於ResNet,因為這個結構是模擬乙個微分方程,其每個模組是乙個區域性差分,差分的步長實際上是可以自適應的,也就是說這個結構的曲線的長度可以通過調整網路引數達到自適應調整,所以其效能更穩定也更靈活,比一般的網路結構好。但是也不是越長越好,不信你用一萬層試試。

在卷積神經網路中卷積核為什麼都是方形的?

智星雲服務 Why convolutions always use odd numbers as filter size 卷積運算,簡單地說,是兩個矩陣的元素乘積的組合。只要這兩個矩陣在維度上是一致的,就不應該有問題,所以我可以理解你的查詢背後的動機。然而,卷積的意圖是根據濾波器或核心對源資料矩陣 ...

為什麼要用GPU來訓練神經網路而不是CPU?

小M同學 GPU在浮點數的運算上要快於CPU。神經網路訓練往往需要處理大量的資料,GPU高效能會節省訓練的時間。而且選擇 GPU 還需要考慮視訊記憶體的大小。推薦選擇視訊記憶體大於 8GB 的 GPU,這一點很重要,因為在執行大型神經網路時,系統預設將網路節點全部載入視訊記憶體,如果視訊記憶體不足,...

為什麼多層的卷積神經網路訓練時不用深度學習方法訓練,難道誤差 梯度不會逐層擴散和消失?

Monstarxtt 理論上講深度學習是通過稀疏自編碼求得有用特徵向量之後輸入網路中的。但目前這種非監督學習方法效能不夠好,所以像cnn這種深度學習方法其實也是通過分類監督學習的,優化方法跟普通神經網路差不多。無非網路比較大而已。資料充足的情況下網路越大最終結果越好這一點也沒啥辯駁的。網路雖然很大但...