一. 前向传播
定义:按顺序(从输入层到输出层)计算和存储神经网络中每层的结果。
第一层:
z
=
W
(
1
)
x
,
\mathbf{z}= \mathbf{W}^{(1)} \mathbf{x},
z=W(1)x,
激活函数:
h
=
ϕ
(
z
)
.
\mathbf{h}= \phi (\mathbf{z}).
h=ϕ(z).
第二层:
o
=
W
(
2
)
h
.
\mathbf{o}= \mathbf{W}^{(2)} \mathbf{h}.
o=W(2)h.
loss:
L
=
l
(
o
,
y
)
.
L = l(\mathbf{o}, y).
L=l(o,y).
正则化项:
s
=
λ
2
(
∥
W
(
1
)
∥
F
2
+
∥
W
(
2
)
∥
F
2
)
,
s = \frac{\lambda}{2} \left(\|\mathbf{W}^{(1)}\|_F^2 + \|\mathbf{W}^{(2)}\|_F^2\right),
s=2λ(∥W(1)∥F2+∥W(2)∥F2),
目标函数:
J
=
L
+
s
.
J = L + s.
J=L+s.
二. 反向传播
反向传播(backward propagation或backpropagation)指的是计算神经网络参数梯度的方法。
通过链式规则计算,从输出层遍历到输入层。求偏导。
三. 计算图
总结:
- 前向传播按顺序计算和存储中间变量
- 反向传播按相反顺序计算和匆匆中间变量和参数的梯度。
- 训练过程中二者交替使用
- 巡礼比预测需要更多的内存。