LoginSignup
5
9

More than 5 years have passed since last update.

dying ReLU について学ぶ

Last updated at Posted at 2017-05-24

シンプルなNNを実装し 重みの変化 を可視化した所、無反応になるパーセプトロンを観測しました。dying ReLU と呼ばれている現象の様です。

dying ReLU

・活性化関数ReLUは負の領域では値が0=勾配がない。
・学習時に大きく負側に重みが更新された場合、ReLU関数で活性化する事がなくなる可能性がある。

現象の画像

Weight の Epoch 毎の変化画像

  • 画像上に256個ある四角形それぞれが パーセプトロンの重み を示しています。
  • 映像下段の Cnt はminibatch回数を示してます。 600cnt = 1epoch です。

dW の Epoch 毎の変化画像

  • 映像下段の B は、2epoch期間以上 $dw$の値がフラット(最大値=最小値)のまま変化なしのパーセプトロン の数です。
  • 画像上に白四角でB の位置を示してます。

NNの構成

全結合 隠れ層1層 のシンプルなNNです。
01_NN.PNG

  • 上図の赤枠の Waight と 赤矢印の dw を可視化したものが、先の動画です。
  • ガウス分布に用いる乱数の種値 は 先の映像のKで示しています。

正解率

NNL2_L1P256_AF0_20170523-161328-96.png

  • 先の映像での測定データです。
  • グラフ上側は 学習時とテスト時の正解率の推移です。
  • グラフ下側は 先の画像での B の数の推移です。

Wの初期値 ガウス分布に用いる乱数の種値を変えた場合

Matome_RandKey.png

  • 先の映像の種値は 20170523 です。
  • グラフ上側は テスト時の正解率の推移、グラフ下側は B の推移です。
  • 種値を変えると B の推移は変化します。 発生してない場合もあります。

考察

  • B としてカウントするパーセプトロンは、dwがフラット化し、Wが変化しなくなっており、dying ReLU と解釈しています。
  • ReLUが1段のシンプルなNNでも、データや乱数種値によって発生するのですね...。
  • MiniBatchSize で変化するか、LeakyReLU を用いるとどうなるかも 後日みてみます。→dying ReLU について学ぶ (その2) Leaky ReLU

おまけ: 種値を変えた場合の dw の推移映像

種値 20100705

NNL2_L1P256_AF0_20170523-145854-69.png

種値 20120424

NNL2_L1P256_AF0_20170523-142547-134.png

5
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
9