Help us understand the problem. What is going on with this article?

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

More than 3 years have 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 を入れた場合にどうなるかを試してみます。
t-tkd3a
機械学習 について実装できる位の理解を目指します。学ぶ過程の資料・成果を公開していきます。 また Linux での 開発環境・ツール類についても忘備録かねて記載していきます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした