2017年3月27日月曜日

CS231n 3. Optimization: Stochastic Gradient Descent

Notebook

CS231n

3. Optimization: Stochastic Gradient Descent

Optimization

loss function は判定の間違い(と重み行列の要素の大きさ)の計量で,学習(train)とはtrain setとそのlabelsを固定したままW を変化させてloss functionを最小化すること.その最も重要な技法がgradient descent(最急降下法).
loss function f をW のみを変数とする関数と考えて,f|W=[fW1,1,...]T|W=W をどうにかして計算し, Wηf|W を新たなW にする.

Computing the gradient

f|Wを計算する方法は

  1. 数値計算による方法
  2. 解析的な方法 (back propagation) がある.解析的な方法は高速だが実装が難しいので,普段は解析的に微分係数を求めて,数値計算でそれが正しいかどうか確かめる(gradient check).
Computing the gradient numericaly with finite differences

f(x1,...,xn)xi=limh0f(x1,...,xi+h,...,xn)h

計算機上では極限の計算ができないないので,hを十分小さな数として, f(x1,...,xi+h,...,xn)f(x1,...,xi,...,xn)h=f(x1,...,xn)xi+fxi(x1,...,xn)h+o(h3)
この計算の誤差は1次.一方 f(x1,...,xi+h,...,xn)f(x1,...,xih,...,xn)2h=f(x1,...,xn)xi+12fxixi(x1,...,xn)h2+o(h4)
誤差は2次で,計算量はおよそ2倍になるが遥かに精度が高くなるので,ふつうはこちらの式で偏微分係数を計算する.

Computing the gradient analytically with Calculus

次章

Gradient Descent

vanilla Gradient Descent

loss functionが,全てのtrain setに対するものであるとき,すなわち L=1|train|itrainLi

の形をしている時,一回のWの更新に非常に時間がかかる場合がある.

Mini-batch Gradient Descent

train setを適当に分割してminibatchesをつくり,minibatchごとのloss function の勾配を計算してW を更新していく.これをstochastic gradient descentと呼ぶこともある

Stochastic(online) Gradient Descent

train setのexample1つごとにloss function の勾配を計算してW を更新していく方法.

0 件のコメント:

コメントを投稿