用語集 · 機械学習

勾配降下法

別名:Gradient descent、SGD、stochastic gradient descent、Adam、backpropagation、optimiser、確率的勾配降下法、誤差逆伝播法、バックプロパゲーション、オプティマイザー、最適化手法

ニューラルネットワークを学習させる基本の方法です。損失が減る方向に、すべてのパラメーターを少しずつ動かすことを繰り返します。

勾配 ∇θL\nabla_\theta L は、各パラメーターを変えたときに損失がどれだけ変わるかを並べたベクトルです。これは上り坂の方向を指しています。勾配降下法はその逆向きに1歩進みます。

θ←θ−η ∇θL(θ)\theta \leftarrow \theta - \eta \, \nabla_\theta L(\theta)

η\eta は学習率です。霧の立ちこめた山腹を、いつもいちばん急な下り方向に足を踏み出しながら下りていく様子を思い浮かべてください。

確率的勾配降下法

全データで正確な勾配を計算するのは時間がかかります。確率的勾配降下法(SGD)は、小さなランダムなミニバッチから勾配を推定し、正確な数歩の代わりに、安くてノイズの多い歩みをたくさん重ねます。データ全体を一巡することをエポックと呼びます。

誤差逆伝播法

層の多いニューラルネットワークでは、勾配は**誤差逆伝播法(バックプロパゲーション)**で計算します。微積分の連鎖律を出力層から入力に向かって逆向きに適用し、途中の計算を使い回します。コストは、ネットワークを順方向に2回走らせるのとほぼ同じです。

Adam

私たちのものを含め、ほとんどの深層学習は Adam オプティマイザー(Kingma と Ba 2015)を使います。各パラメーターの勾配 mm とその2乗 vv の移動平均を保ち、それで各ステップの大きさを調整します。

m←β1m+(1−β1) g,v←β2v+(1−β2) g2,θ←θ−η m^v^+ϵm \leftarrow \beta_1 m + (1-\beta_1)\,g, \qquad v \leftarrow \beta_2 v + (1-\beta_2)\,g^2, \qquad \theta \leftarrow \theta - \eta\,\frac{\hat{m}}{\sqrt{\hat{v}} + \epsilon}

(m^\hat{m} と v^\hat{v} はバイアス補正したものです。)勾配が安定しているパラメーターは自信を持って動き、ノイズの多いものは慎重に動きます。

このプロジェクトでは

PPO の各イテレーションでは、集めたバッチの上を、512サンプルのミニバッチで Adam を使って8回通ります。

関連用語

この用語が出てくる記事

← すべての用語