在前幾年的分割實驗中偶爾會碰到模型訓練完后輸出全是0的情況,前幾天又碰到了一次,於是想着干脆把這個頻發問題開個隨筆記錄和總結一下。
先說結論,一般來說導致這個問題的原因可能有:
-
lr太大了。這是個看起來比較弱智的原因,但是有的時候確實是這樣的。對於一些結構特殊的模型按照往常的經驗設置lr往往會導致該問題
-
自己設計網絡時忘記使用normalization或者激活函數了。也是個比較弱智的原因,但是我會犯
-
數據集的問題。比如說label的值域沒有調整好,訓練和測試的input的格式不一樣等等
-
網絡結構本身就不合理。這個是比較難以說明白的東西,多試幾次總全0的話我一般就認為是結構本身太過於離譜
原先覺得深度學習就是胡亂設計一通模型然后瘋狂訓練就完事了,覺得非常水。但現在再看一些結構會發現其中獨特的結構還是有着合理的思想的,因此設計網絡本身還是要圍繞着一些基本法來的,天馬行空四處架設連接不一定是好事。網絡結構整體的簡潔有時候往往是有效性和泛化性的保證。