Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ゼロから作るDeepLearning 第6章ざっくりまとめ

dproject21
February 06, 2017

ゼロから作るDeepLearning 第6章ざっくりまとめ

「ゼロから作るDeepLearning」もくもく読書会の事前資料です。

https://deeplearning-yokohama.connpass.com/event/49840/

dproject21

February 06, 2017
Tweet

More Decks by dproject21

Other Decks in Technology

Transcript

  1. この本のざっくりまとめです • 「ゼロから作るDeepLearning」斎藤 康毅 著 オライリー・ジャパンより2016年9⽉ 発⾏ https://www.oreilly.co.jp/books/9784873117584/ • 公式サポートページ

    https://github.com/oreilly-japan/deep-learning-from-scratch • 今回は第6章「学習に関するテクニック」です。 https://deeplearning-yokohama.connpass.com/
  2. パラメータの更新 " # " # 1 ℎ( ) 勾配 :

    すべての変数の偏微分をベクト ルでまとめたもの。 ニューラルネットワークでは、損失関 数の値ができるかぎり⼩さくなるベク トルを、勾配降下法を⽤いて求め、重 み付けを更新する。 = − これが、第4章でやった「勾配降下法」 (確率的勾配降下法:SGD)でした。
  3. パラメータの更新 " # " # 1 ℎ( ) SGDでは、⾮効率な学習になってしま うケースがある。そこで別の⼿法によ

    る勾配計算を⾏う。 3種類の計算⽅法が紹介されている。 ・Momentum ・AdaGrid ・Adam
  4. パラメータの更新 " # " # 1 ℎ( ) SGD =

    − Momentum 物理の「運動量」に関係している。 SGDのジグザグの動きを軽減させるた めの”摩擦”としてを⽤いるようにした。 ← − = +
  5. パラメータの更新 " # " # 1 ℎ( ) SGD =

    − AdaGrid 学習係数を減衰させる、というアイデ アから来ている。 ⼊⼒データのパラメータの要素ごとに 学習係数を調整する、というもの。 ℎ ← ℎ + ⨀ = − 1 ℎ 過去の勾配の⼆乗和を保持し、学習係 数を減衰させる。
  6. パラメータの更新 " # " # 1 ℎ( ) SGD =

    − Adam AdaGrid + Momentum というような⼿ 法。詳しくは原著論⽂を読んでくださ い。 (と書いてあります) 原著論⽂はこちら。 https://arxiv.org/pdf/1412.6980v9.pdf
  7. パラメータの更新 " # " # 1 ℎ( ) どれがいいの? どれも得意な問題、不得意な問題があ

    る。 最近はAdamが好まれている。 多くの研究では、いまでもSGDが使わ れている。 MomentumもAdaGridも試す価値のあ る⽅法。
  8. パラメータの更新 " # " # 1 ℎ( ) どれがいいの? どれも得意な問題、不得意な問題があ

    る。 最近はAdamが好まれている。 多くの研究では、いまでもSGDが使わ れている。 MomentumもAdaGridも試す価値のあ る⽅法。
  9. Sigmoid関数、tanh関数の場合は 「xavierの初期値」 " : のガウシアン ReLUの場合は 「Heの初期値」 # : のガウシアン

    を使うのがよい。 (両⽅ともnはノードの個数) 隠れ層の アクティベーションを⾒る 重みの初期値 … … … … … ⼊ ⼒ デ タ
  10. アクティベーションの分布 を強制的に調整する Batch Normalization (Batch Norm) … … … …

    … ⼊ ⼒ デ タ ミニバッチごとに、データの平均が0で 分散が1になるよう正規化を⾏う。 ・学習を早く進⾏させることができる ・初期値にそれほど依存しない ・過学習を抑制する という利点がある。 Affine → Batch Norm → ReLU となるようにする
  11. アクティベーションの分布 を強制的に調整する Batch Normalization (Batch Norm) … … … …

    … ⼊ ⼒ デ タ ミニバッチごとに、データの平均が0で 分散が1になるよう正規化を⾏う。 < ← 1 > @ A @B" # < ← 1 >(@ −< )# A @B" @ D ← @ − < # < + ミニバッチ = " , # , … , A を、平均 0、分散1のデータ " I, # I, … , @ D に変換 する。 Affine → Batch Norm → ReLU となるようにする
  12. アクティベーションの分布 を強制的に調整する Batch Normalization (Batch Norm) … … … …

    … ⼊ ⼒ デ タ ミニバッチごとに、データの平均が0で 分散が1になるよう正規化を⾏ったデー タに、固有のスケールとシフトで変換 を⾏う。 @ ← @ D + = 0, = 1の値からスタートして、学 習によって調整していく。 ここまでがニューラルネットワーク上 での順伝播。 Affine → Batch Norm → ReLU となるようにする
  13. 正則化 Weight decay(荷重減衰) 損失関数の値を⼩さくするため、 Weight decayを損失関数に加算する。 = " , #

    , … , : の重みに対して、L2ノルム ( " #, # #, … , : # )のWeight decay 1 2 # を損失関数に加算する。