wljk 表示 l−1 层的第 k 个神经元到l层的第 j 个神经元输入的权重. blj表示 l 层的第j个神经元的偏移 alj 表示 l 层的第j个神经元的输出 所以:
alj=σ(∑kwljkal−1k+blj) 也可以用更简洁的描述: al=σ(wlal−1+bl) 令: zl=zlj=wlal−1+bl 则 zl 可以视为第 l 层神经元的带权重和偏移的输入.代价函数的定义如下: C=12n∑x||y(x)−aL(x)||2 这里: n 是训练样本的个数, y(x)是期望的输出, L 是神经网络的总层数, aL=aL(x)是神经网络当输入样本为 x 时的输出.
Hadmard积的定义如下:
定义错误δlj: δlj=∂C∂zlj 则: δLj=∑k∂C∂aLk∂aLk∂zLj 因为 aLk 是第 L 层的第k个神经元, 只有当 j=k 时, 跟 zLj 有关, 所以 ∂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 和b, 所以我们需要计算 ∂C∂wljk 和 ∂C∂blj 。 这就是反向传播公式三和四(BP3 and BP4) 待续