7

我正在訓練一個神經網絡數據,它以負值&正值表示。ReLU可以處理負面輸入嗎?

有什麼方法可以將數據輸入到ReLU網絡中,而不必將其全部轉換爲正數,並有單獨的輸入來說明數據是負數還是負數?

我看到的問題是,在輸入層的負輸入意味着除非你已經初始化你的權重爲負值,否則ReLU節點永遠不會被激活並永遠死亡。

回答

4

我不是100%確定你在問什麼,因爲有很多激活功能,你可以很容易地編寫你自己的代碼。如果你不希望自己的代碼,也許嘗試一些替代方案:

破RELU

enter image description here

Parameteric RELU

enter image description here

基本上,看看here enter image description here

+0

對不起,沒有在輸入層,但第一層。由於ReLU權重從小的正值開始初始化,因此它幾乎迫使我的ReLU始終輸出0.我嘗試使用Leaky ReLU,但它不起作用。但我想這是一個單獨的問題,因爲從概念上講,泄漏的ReLU應該起作用。 鏈接到新問題... http://stackoverflow.com/questions/43371117/relu-not-learning-to-handle-negative-inputs-keras-tensorflow –

0

如果你真的在輸入層使用激活函數,我會建議使用ELU等其他激活函數,或者將數據轉換到範圍[0,1]。 如果ReLU函數位於某個隱藏層中,則ReLU函數應該只是暫時失效。

假設您在前饋網絡的最後一個隱藏層中具有ReLU功能。使用反向傳播算法,應該有可能改變先前隱藏層的輸出,使得最終ReLU函數的輸入再次變爲正值。那麼ReLU不會再死了。有可能是我在這裏失去了一些東西。

無論如何,你一定要給ELU一試!與ReLU相比,我獲得了更好的結果。

相關問題