はじめに 深層学習の勾配法には様々な手法が提唱されています。その中で、どの手法を用いるのが適切であるか自分でもあまり理解できていない部分があり、今回は勾配法の中でも実際に深層学習で主に用いられている手法(SGD, Momentum SGD, AdaGrad, RMSprop, AdaDelta, Adam)について、実装することを前提に調べてまとめてみました。実装フレームワークはChainerを想定しています。 SGD SGD(Stochastic Gradient Descent : 確率的勾配降下法)は、Optimizerの中でも初期に提唱された最も基本的なアルゴリズムです。重み$\mathbf{w}$の更新は以下のように行っております。このとき、$E$は誤差関数、$\eta$は学習係数を表しています。 \mathbf{w}^{t + 1} \gets \mathbf{w}^{t} -
![Optimizer : 深層学習における勾配法について - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e5d04e21706c8d55b594b8ee398a8d69d59ad956/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9T3B0aW1pemVyJTIwJTNBJTIwJUU2JUI3JUIxJUU1JUIxJUE0JUU1JUFEJUE2JUU3JUJGJTkyJUUzJTgxJUFCJUUzJTgxJThBJUUzJTgxJTkxJUUzJTgyJThCJUU1JThCJUJFJUU5JTg1JThEJUU2JUIzJTk1JUUzJTgxJUFCJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz0yYThiNWY0ZWNiNWM5NjBhNTg5NzU1NjZjYWMyMjk1Ng%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0b2trdW1hbiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9YjdkNGIzYzhjOTEyMmIxZDIzZjY3YzM2M2U3NjZjZjM%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D06d9a7b45062c051cb7c3e00c6252dd8)