0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

最適化手法って?パラメータ更新との関係

Last updated at Posted at 2020-02-14

「最適化手法を用いてパラメータを更新する」
最適化手法とはパラメータを更新するための方法のこと

最適化手法とは?

深層学習においてニューラルネットワークを学習させるには,損失関数の値をできるだけ小さくするようなパラメータ(重み,バイアス)を求める必要があります.損失関数の値を小さくする最適なパラメータを求める問題を解くことを最適化と言います.そして,いくつか存在しているその問題の解き方,公式のようなものを最適化手法と言います.高校の数学の授業で勉強した二次関数の最小値を求める方法の発展ver.みたいなものです.損失関数は,高校数学のようにxとyの二つのパラメータからなる関数ではなく,もっと多くのパラメータからなる関数なので,簡単に最適解を求めることはできません.そこで,最適化手法を使って,できるだけ最適な解を求めよう!ってなるわけです.

勾配に着目して最適解を求める

y = x^2のような二次関数におけるパラメータxの勾配とは,傾きのことです.傾きはyをxで微分したy' = 2xとなり,x = 0の時は傾きが0, x = 1の時は傾きが2のようになりますよね.傾きは,任意の点xにおいて,xを少しだけ大きくしたら,yがどれだけ変化するのかを表しています.深層学習で考えるべきは最小値です.つまり損失関数がy = x^2だとすると,傾きが正ならxを少し小さく,傾きが負ならxを少し大きくすれば,yの値が小さくなります.このようにxの値を少しずつ変化させながら最適な解を見つけていきます.損失関数が複雑でパラメータすうが膨大になっても基本的な考え方は同じです.ただし,実際は最適解ではなく,局所最適解(極小値)を求めてしまう問題などもあるため難しい.Figure_1.png
損失関数は推測したパラメータの値の精度を示している.
つまり,学習すべきパラメータは推測後にはある特定の値をもっている.
例えば,損失関数がy = x^2とすると,一回目の推測でパラメータxはx = 4という特定の値になったとする.損失関数におけるx = 4のときの勾配を求め,損失関数を小さくする方向へ少しxを進めることがパラメータ更新である.パラメータを何度も更新することでx = 0という最適解へ近づくことができる.

最適化手法の種類

  • 最急降下法(勾配降下法)
    • バッチ学習(全データまとめて学習)
  • 確率的勾配降下法(SGD: stochastic gradient descent)
    • ミニバッチ学習(ミニバッチごとに学習)
      • 確率的に無作為に選び出したデータ(ミニバッチ)に対して勾配降下法を適用
  • Momentum
  • Adam
  • AdaGrad
     

など

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?