DeepML. Neural Network - 1
3963 ワード
scores function
s=f(x;W)=Wxs = f(x; W) = Wxs=f(x;W)=Wx
sssはscore vector(output)、xxxはinputです.
SVM loss
Li=∑j≠yimax(0,sj−syi+1)L_i =\sum_{j\ne y_i}\text{max}(0, s_j - s_{y_i} + 1)Li=∑j=yimax(0,sj−syi+1)
data loss + regularization
L=1N∑i=1NLi+∑kWk2L =\begin{matrix} 1\over N\end{matrix}\sum_{i=1}^N L_i +\sum_k W_k^2L=N1∑i=1NLi+∑kWk2
ここで私たちが望んでいるのは
▽WL\bigtriangledown_W L▽WL
損失を最適化するパラメータWWWを探すことである.
Optimization
ベストなWWを探しています.

勾配が負の方向、すなわち傾斜が下がる方向を繰り返し解くことができ、それによって下向きで損失が最小の方向を見つけることができる.
[Vanilla Gradient Descent]
while True:
weights_grad = evaluate_gradient(loss_fun, data, weights)
weights += -step_size * weights_grad
Gradient descent
df(x)dx=limh→0f(x+h)−f(x)h\begin{matrix} df(x)\over dx\end{matrix} =\lim_{h\rightarrow 0}\begin{matrix} f(x+h) - f(x)\over h\end{matrix}dxdf(x)=h→0limhf(x+h)−f(x)
Computational graphs
任意の複雑な関数を用いて勾配を計算し,計算図を用いる方法について議論する.

上記の例はinputがxxx,WWWの線形分類器である.
計算図を用いて関数を表現することにより,勾配を得るために計算図内部のすべての変数に対してチェーン規則を再使用する逆伝搬と呼ばれる技術を用いることができる.
Convolutional Network
[AlexNet]

[Neural Turing Machine]


Backpropagation sample example 1
f(x,y,z)=(x+y)zf(x, y, z) = (x+y)zf(x,y,z)=(x+y)z
eg. x=-2, y=5, z=-4

関数fが出力する変数の勾配を見つけたい.
q=x+y∂q∂x=1,∂q∂y=1q = x + y\qquad\begin{matrix}\begin{matrix}\partial{q}\over\partial{x}\end{matrix} = 1,\begin{matrix}\partial{q}\over\partial{y}\end{matrix} =1\end{matrix}q=x+y∂x∂q=1,∂y∂q=1
f=qz∂f∂q=z,∂f∂z=qf= qz\qquad\begin{matrix}\begin{matrix}\partial{f}\over\partial{q}\end{matrix} = z,\begin{matrix}\partial{f}\over\partial{z}\end{matrix} =q\end{matrix}f=qz∂q∂f=z,∂z∂f=q
私達は∂fx部分xfy部分fffffffffffffz部分\over部分zfffffffzzfを求めたいです.
逆伝播はchain ruleの再帰的な応用であり,後で始まる.

∂f∂z\partial{f}\over\partial{z}∂z∂f

∂f∂q\partial{f}\over\partial{q}∂q∂f

∂f∂y\partial{f}\over\partial{y}∂y∂f
fffはyyyに直接影響を及ぼさないため,微分式を変化させた.

∂f∂x\partial{f}\over\partial{x}∂x∂f
fffはxxxに直接影響しないため,微分式を変更した.

整理する

Backpropagation sample example 2
f(w,x)=11+e−(w0x0+w1x1+w2)f(w,x) =\begin{matrix} 1\over 1+ e^{-(w_0x_0 + w_1x_1+w_2)}\end{matrix}f(w,x)=1+e−(w0x0+w1x1+w2)1

上記の式にsigmoidのような関数を加えることもできます.

pattern in backward flow

上のノードの演算を簡単にまとめ,以下に示す.
Reference
この問題について(DeepML. Neural Network - 1), 我々は、より多くの情報をここで見つけました https://velog.io/@dyeudsla/DeepML.-Neural-Networkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol