

由上图可知,神经元参数的变化会导致损失函数数值的变化。因此,对于输出层第1个神经元,定义
w1n+1=(w1,w2,w3,w4),b1n+1=b1
由于J是一个标量,标量对向量的求导等于标量对向量中各个元素求导,则:
dw1n+1=∂w1n+1∂J=[∂w1∂J∂w2∂J∂w3∂J∂w4∂J]
db1n+1=∂b1∂J
由上图可知,n+1层第一个神经元权值w1n+1的变化引起的连锁变化为:
w1n+1−>z1n+1−>(a1n+1,a2n+1,a3n+1)−>J
所以:
dw1n+1=∂w1n+1∂J=∂a1n+1∂J∂z1n+1∂a1n+1∂w1n+1∂z1n+1+∂a2n+1∂J∂z1n+1∂a2n+1∂w1n+1∂z1n+1+∂a3n+1∂J∂z1n+1∂a3n+1∂w1n+1∂z1n+1
定义:
A=a1a3a5a2a4a6Z=z1z3z5z2z4z6Y=y1y3y5y2y4y6
z1n+1=(z1,z2),a1n+1=(a1,a2)
z2n+1=(z3,z4),a2n+1=(a3,a4)
z3n+1=(z5,z6),a3n+1=(a5,a6)
Z的第一列是第一个样本对应3个神经元的线性输出。
[∂a1∂J∂a2∂J]这个是横着看,同一个神经元的输出,两个样本,就是a1n+1
分别计算dw1n+1的每一项:
∂a1n+1∂J∂z1n+1∂a1n+1∂w1n+1∂z1n+1=[∂a1∂J∂a2∂J][∂z1∂a1∂z1∂a2∂z2∂a1∂z2∂a2][∂w1∂z1∂w2∂z1∂w3∂z1∂w4∂z1]
∂a3n+1∂J∂z1n+1∂a3n+1∂w1n+1∂z1n+1=[∂a5∂J∂a6∂J][∂z1∂a5∂z1∂a6∂z2∂a5∂z2∂a6][∂w1∂z1∂w2∂z1∂w3∂z1∂w4∂z1]
∂a2n+1∂J∂z1n+1∂a2n+1∂w1n+1∂z1n+1=[∂a3∂J∂a4∂J][∂z1∂a3∂z1∂a4∂z2∂a3∂z2∂a4][∂w1∂z1∂w2∂z1∂w3∂z1∂w4∂z1]
J=y1⋅loga1+y3loga3+y5loga5+y2loga2+y4loga4+y6loga6
a1=ez1+ez3+ez5ez1a3=ez1+ez3+ez5ez3a5=ez1+ez3+ez5ez5




