BETA

ゼロから作るDeepLearning 第六章 勾配法アルゴリズム

投稿日:2019-08-23
最終更新:2019-08-23

画像

勾配法

DNNでは、モデルのパラメータを修正して、目的地をきちんと求めることを目的としている。

よって、パラメータをどう調整するか?が大切である(ネットワークの重みなど)

このとき、学習においては出力損失関数値$L$の微分を利用して重みを修正するが、この重みの修正アルゴリズムには複数あるのでそれを見ていく。

SGD

Stochastic Gradient Descent, 確率勾配法。

ミニバッチを作ってそのデータで得られた勾配方向に進んでいく。
最も単純だが局所解に陥りやすい

Momentum

物理の慣性を利用したもの。
前回の移動速度をある程度維持しながら勾配を利用する。
学習率は1より小さいので探索に連れいずれは収束する。

AdaGrad

最初は大胆に、後半は落ち着いたパラメータ調整をするのは
Momentumと同じだが、
特徴として、各重みのパラメータごとに学習率のようなものを調整する。
というものがある。

毎回求める勾配の2乗を足し合わせていく。つまり広義単調増加をしていく。
そして、重みの修正率を、この勾配のルートで割ることで変化すればするほど、後半の変化は小さくなる。

これによって、各パラメータごとに柔軟な修正を行うことでより良い探索が行える。

Adam

Adam = Momentum + AdaGradのイメージらしい。

ちょっとまだ分かってない

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

競プロなどをします。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!