神经网络的数学描述:
wljk
表示
l−1
层的第
k
个神经元到
alj
表示
l
层的第
所以:
alj=σ(∑kwljkal−1k+blj)
也可以用更简洁的描述:
al=σ(wlal−1+bl)
令:
zl=zlj=wlal−1+bl
则 zl 可以视为第 l 层神经元的带权重和偏移的输入.
代价函数(Cost Function)
代价函数的定义如下:
这里: n 是训练样本的个数,
Hadamard 积
Hadmard积的定义如下:
反向传播的基本概念
定义错误
δlj=∂C∂zlj
则:
δLj=∑k∂C∂aLk∂aLk∂zLj
因为 aLk 是第 L 层的第
∂aLk∂zLj=0,if k≠j
于是:
δLj=∂C∂aLj∂aLj∂zLj
所以, 反向传播公式一(BP1):
δLj=∂C∂aLjσ′(zLj)
继续来推导反向传播公式二 (BP2):
δlj=∂C∂zlj
于是:
δlj=∑k∂C∂zl+1k∂zl+1k∂zlj
继续推导:
δlj=∑k∂zl+1k∂zlkδl+1k
因为:
zl+1k=∑jwl+1jalj+bl+1j=∑jwl+1jσ(zlk)+bl+1j
所以:
∂zl+1k∂zlk=wl+1kσ′(zlk)
因此:
δlj=∑kwl+1kjδl+1kσ′(zlk)
这就是反向传播公式二BP2, 也可以简写为:
δl=(wl+1)Tδj+1σ′(zl)
于是, 如果我们已知 δl , 可以计算 δl−1 .
神经网络的学习过程最终需要调整
w
和
∂C∂wljk
和
∂C∂blj
。 这就是反向传播公式三和四(BP3 and BP4)
待续