1
5

More than 3 years have passed since last update.

[ゼロから作るDeep Learning]ニューラルネットワークの主なパラメータ更新手法

Posted at

はじめに

この記事はゼロから作るディープラーニング 7章学習に関するテクニックを自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。

SGD

SGDは、今までのように勾配を求めたら学習係数をかけて現在のパラメータと引き算をする事でパラメータを更新する手法です。
スクリーンショット 2019-11-13 15.30.35.png
この方法は単純で実装もしやすいのですが、勾配が示す向き=正確な最小値への方向ではないので、損失関数の最小値となるパラメータの地点までギザギザと効率の悪い探索をしてしまうのが弱点です。

Momentum

速度という概念が追加された手法。勾配から現在の地点の損失関数の最小値の地点に転がっていく速度を求めて、それをパラメータに加算する事でパラメータを更新します。
スクリーンショット 2019-11-13 15.38.21.png
スクリーンショット 2019-11-13 15.38.33.png
SGDのようにジグザクな探索をしてしまいますが、SGDよりもジグザグが軽減されて丸みを帯びたジグザク探索になるので、効率の悪さは軽減されている。

AdaGrad

最初は学習係数を大きくして更新を行い、どんどん学習係数を小さくして更新を行う学習係数の減衰というテクニックを使った手法。
最初は大きくパラメータが更新され、徐々にパラメータの更新は小さくなっていく。
スクリーンショット 2019-11-13 15.53.06.png
スクリーンショット 2019-11-13 15.53.13.png
この手法を使う事で、さらにジグザグ探索を軽減することができ、効率の良い探索をすることができる。

Adam

2015年に提唱された新しい手法で、MomentumとAdaGradを合体させたような手法。
複雑な為ここでは説明は控えるが、すごく効率の良い探索をすることができる。

現在主に使われている手法は、単純なSGDとすごく効率は良いが複雑なAdamである。

1
5
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
1
5