Neural-Networks

神經網絡可以處理負輸入和零輸入嗎?

  • December 22, 2021

正如標題所示,我有幾個值為 -1、0 或 1 的特徵。如果我將這些數據輸入到神經網絡中,ReLu用作隱藏層的激活函數,負值和 0 值是否會構成NN的問題?

我聽說過死亡神經元,其中使用ReLuwhich 是一個逐步函數,導致任何小於或等於 0 的輸入神經元停止學習並變得死亡。因此,如果一個具有激活函數的 NNReLu輸入 0 或負輸入,這些神經元就會自然死亡。

現在我的數據包含幾個具有 0 和負值的特徵。在這種情況下該怎麼辦?我應該使用LeakyReLu還是其他一些變體ReLu?或者我應該轉換我的數據以便只保留正值嗎?

**編輯 1:**如果負輸入和 0 輸入不會導致神經元死亡,那麼是什麼導致神經元死亡?那麼為什麼我們有激活函數,LeakyReLu如果單獨可以處理死神經元呢?PReLu``ELU``ReLu

  • (其他答案已經說過)當輸入的線性組合小於0時,ReLu激活函數的梯度等於0(因此它停止學習),而不是當輸入本身為0時
  • (其他答案也已經說過)NN的輸入通常在0左右歸一化,因此某些值為0是完全正常的,每個神經元的權重通常(隨機)初始化為0左右,這意味著當它是時候計算線性組合了,一些隨機輸入值會切換符號,這是意料之中的
  • ReLu 函數實際上旨在為低於 0 的值產生一個空梯度,不要為此感到壓力,當該神經元的所有輸入導致一個空梯度時,就會出現死神經元的問題。討論這不是一個微不足道的問題,所以我將討論它,但這與簡單地在輸入中包含一些負值無關。正如 HitLuca 在他的評論中指出的那樣,在學習過程中讓神經元參數變為零會導致神經元死亡。
  • 當然,其他永遠不會導致零梯度的激活函數(如leaky ReLu)將完全避免死神經元。

引用自:https://stats.stackexchange.com/questions/557994

comments powered by Disqus

相關問答