ReLU激活功能並不完美。 它有一個被稱為 “ReLU 死區” 的問題:在訓練過程中,一些神經元會“死亡”,即它們停止輸出 0 以外的任何東西。在某些情況下,你可能會發現你網絡的一半神經元已經死亡,特別是使用大學習率時。 在訓練期間,如果神經元的權重得到更新,使得神經元輸入的加權和為負,則它將開始輸出 0 。當這種情況發生時,由於當輸入為負時,ReLU函數的梯度為0,神經元就只能輸出0了。
為了解決這個問題,你可能需要使用 ReLU 函數的一個變體,比如 leaky ReLU。這個函數定義為LeakyReLUα(z)= max(αz,z)。超參數
α
定義了函數“leak”的程度:它是z < 0
時函數的斜率,通常設置為 0.01。這個小斜率保證 leaky ReLU 永不死亡;他們可能會長期昏迷,但他們有機會最終醒來。