1、梯度计算
在最小化神经网络的代价函数时,我们可以采用之前的提到的任意一种优化算法,比如梯度下降。而使用这些优化算法最重要的就是计算代价函数对于各个参数的偏导项 ∂ J ( Θ ) ∂ Θ i j ( l ) \frac{\partial J(\Theta)}{\partial{\Theta^{(l)}_{ij}}} ∂Θij(l)∂J(Θ)。接下来我们看看后向传播算法是怎么计算这些偏导项的。
(1)给定一个训练样本 ( x , y ) (x,y) (x,y),然后喂入神经网络进行前向传播:
x = a ( 1 ) x=a^{(1)} x=a(1)
z ( 2 ) = Θ ( 1 ) a ( 1 ) z^{(2)}=\Theta^{(1)}a^{(1)} z(2)=Θ(1)a(1)
a ( 2 ) = g ( z ( 2 ) ) a^{(2)}=g(z^{(2)}) a(2)=g(z(2))
z ( 3 ) = Θ ( 2 ) a ( 2 ) z^{(3)}=\Theta^{(2)}a^{(2)} z(3)=Θ(2)a(2)
a ( 3 ) = g ( z ( 3 ) ) a^{(3)}=g(z^{(3)}) a(3)=g(z(3))
z ( 4 ) = Θ ( 3 ) a ( 3 ) z^{(4)}=\Theta^{(3)}a^{(3)} z(4)=Θ(3)a(3