CS231n
3. Optimization: Stochastic Gradient Descent
Optimization
loss function は判定の間違い(と重み行列の要素の大きさ)の計量で,学習(train)とはtrain setとそのlabelsを固定したままW を変化させてloss functionを最小化すること.その最も重要な技法がgradient descent(最急降下法).
loss function f をW のみを変数とする関数と考えて,∇f|W=[∂f∂W1,1,...]T|W=W をどうにかして計算し,
W−η∇f|W を新たなW にする.
Computing the gradient
∇f|Wを計算する方法は
- 数値計算による方法
- 解析的な方法 (back propagation) がある.解析的な方法は高速だが実装が難しいので,普段は解析的に微分係数を求めて,数値計算でそれが正しいかどうか確かめる(gradient check).
Computing the gradient numericaly with finite differences
∂f(x1,...,xn)∂xi=limh→0f(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,...,xi−h,...,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|∑i∈trainLi
の形をしている時,一回の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 件のコメント:
コメントを投稿