機械学習
DeepLearning
MNIST

dying ReLU について学ぶ (その2) Leaky ReLU

More than 1 year has passed since last update.

dying ReLU の発生が MiniBatchSize, LeakyReLU でどう変わるかが気になり調査しました。結果をここでまとめます。参考になれば幸いです。

前回の「dying ReLU について学ぶ」からの続きです。

MiniBatchSizeを変化させた場合

NNの構成 と 測定内容

02_MiniBatch.PNG

  • 注目するのは、無反応になるパーセプトロン(dying ReLU)の数。
  • 前回の測定では MiniBatchSize を 100 固定とし、Weightの初期値の乱数の種値を振り、発生数の違いを見ました。
  • 今回は乱数の種値を 20170523 に固定。(前回の測定内で最多発生の値)
  • MiniBatchSizeの値を振り、無反応になるパーセプトロンの数がどう変わるかを見ます。

測定結果

Matome_MiniBatchSize.png
* 上側グラフは 横軸epoch数 縦軸「正解率」
* 下側グラフは 横軸epoch数 縦軸「dyingReLUの発生数」

正解率

  • MiniBatchSizeが大きいほど、正解率が低いように見える。

dyingReLU の発生数

  • どの MiniBatchSizeの値でも発生はしている。
  • MiniBatchSize 10 の時が 最多6 となったが、以後の 50,100,200,500 と発生数に相関はないように見える。(比例や反比例のような関係を期待してました)
  • MiniBacheSizeを大きくしても、dyingReLUの抑制には効かなさそう。(大きくするメリットはなさそう)

dW 変化動画

  • 画像は四角一つが1パーセプトロンの重みの変化(dW)を示してます。
  • パーセプトロンの四角は、一辺が28ピクセルの計784(=MNIST)
  • 各パーセプトロン内の max~min を 輝度255~0 と変換し表示してます。
  • 変換式   $xはdwの各値$   $yは変換後の輝度値$   $iは1~784$
y_i = \frac{x_i - min}{max-min+ 0.0001} × 255 
  • 0.0001 は0除算防止。 
  • max-min が 0.0255未満になると、max値でも 輝度255にならないが、max-minが小さい事が見た目でわかるのでそれはそれで。

  • 動画容量の都合で、100epochまでの尺がなく、60epoch まで位しかありません...。

MiniBatchSize 500

NNL2_L1P256_AF0_20170524-114123-963.png

MiniBatchSize 200

NNL2_L1P256_AF0_20170524-112557-807.png

MiniBatchSize 50

NNL2_L1P256_AF0_20170523-233738-976.png

MiniBatchSize 10

NNL2_L1P256_AF0_20170523-192048-149.png

  • グラフ真っ青...。 MiniBatchSize 10ですから 10枚中の1枚を外すと、正解率90%になりますね...。

LeakyReLU を用いた場合

NNの構成 と 測定内容

03_LeakyReLU.PNG

  • 負側にも傾きがある LeakyReLUを用いて、dyingReLU の 発生数を見ます。
  • 負側の傾きによって、正解率に違いがでるか見ます。
  • MiniBatchSize は 100で固定。 乱数種値は20170523で固定。

測定結果

Matome_Leaky.png

  • 上側グラフは 横軸epoch数 縦軸「正解率」
  • 下側グラフは 横軸epoch数 縦軸「dyingReLUの発生数」

正解率

  • 0.5 でも 学習は進み 他とだいたい同じか 0.003 位低い値になっている(もっと極端に差がでるかと思ってました)

dyingReLU の発生数

  • dyingReLU は 発生してない。

dW 変化動画

Leaky ReLU 負側傾き: 0.001

NNL2_L1P256_AF1_20170523-180754-496.png

Leaky ReLU 負側傾き: 0.01

NNL2_L1P256_AF1_20170524-002329-792.png

Leaky ReLU 負側傾き: 0.18

NNL2_L1P256_AF1_20170524-005222-228.png

Leaky ReLU 負側傾き: 0.5

NNL2_L1P256_AF1_20170524-015716-348.png

考察

  • LeakyReLU では、dyingReLUは発生しなかったが、dwの推移動画をみると 変化がなくなったようなパーセプトロンが存在しているようにも見える。
  • 後日、Batch Normalization を入れた場合にどうなるかを試してみます。