【超入門】勾配降下法とは?

2020年05月25日

勾配降下法とは

勾配降下法とは、重みを少しずつ更新して勾配が最小になる点を探索するアルゴリズムです。ディープニューラルネットワークにおける損失関数、コスト関数、誤差関数を最小化することに利用されます。一般的な勾配降下法として、最急降下法、バッチ勾配降下法があります。他の勾配降下法と区別するために本記事では「バッチ勾配降下法」といいます。

 

勾配降下法の流れ

勾配降下法の流れは以下となります。

  1. 重みとバイアスを初期化する
  2. データ(バッチ)をニューラルネットワークに入力し出力を得る
  3. ネットワークの出力と正解ラベルとの誤差を計算する
  4. 誤差をへらすように重み(バイアス)を修正
  5. 最適な重みやバイアスになるまで繰り返す

 

勾配降下法における問題

勾配降下法はディープニューラルネットワークのパラメータの最適化手法の一つですが、利用する際に気をつけるべき問題点がいくつかあります。まず、勾配降下法は、局所的最適解 (local optimization) へ収束しやすく、全体の最適化に到達できない場合もあります。

また、パラメータの更新量を決める学習率の決定は重要です。例えば、学習量が小さすぎると、収束が遅くなるなどの問題が生じます。この場合は、スタッキングなど、様々な調整方法が提案されています。

パラメータの勾配を数値的に求めると、計算量が膨大となってしまう問題もあります。この場合は、誤差逆伝播 (back propagation) で対処します。

 

確率的勾配降下法

確率的勾配降下法(stochastic gradient descent)は一部のデータのみを用いて、パラメータの更新を逐次行う方法です。「オンライン勾配降下法」とも呼ぶ。

 

ミニバッチ勾配降下法

ミニバッチ勾配降下法は、バッチ勾配降下法と確率的勾配降下法の中間を取った方法です。全データの誤差の和でもなく、1つのデータの誤差でもなく、いくつかのデータの誤差の和を使う方法です。

以下の表が、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法を比較したものです。

 

参考文献

教師データの作成やアノテーションサービスを提供し、AI研究開発を支援いたします。

メディア掲載結果

    AI・機械学習の最新情報をお届けします!

    Lionbridge AIのブログで紹介している事例記事やトレンドニュースといったビジネスに役立つ情報はもちろん、オープンデータセット集なども合わせてメール配信しております。