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よりも良い結果を経験しています。

関連する問題