方便起见,本文仅以三层的神经网络举例。
- f(⋅):表示激励函数
- xi:表示输入层;
- yj:表示中间的隐层;
- yj=f(netj)
- netj=∑i=0nvijxi
- ok:表示输出层,dk 则表示期望输出;
- ok=f(netk)
- netk=∑j=0mwjkyj
- vij,wjk 分别是连接输入层-隐层,隐层和输出层的权值矩阵;
BP 既然称为 error back propagation 算法,我们首先来看 error 的一种常见定义:
E=12(d⃗ −o⃗ )2=12∑k=1ℓ(dk−ok)2
三层神经网络下,将其展开至隐层:
E==12∑k=1ℓ(dk−ok)212∑k=1ℓ⎛⎝dk−f⎛⎝∑j=0mwjkyj⎞⎠⎞⎠2
进一步展开至输入层:
E===12∑k=1ℓ(dk−ok)212∑k=1ℓ⎛⎝dk−f⎛⎝∑j=0mwjkyj⎞⎠⎞⎠212∑k=1ℓ⎛⎝dk−f⎛⎝∑j=0mwjkf(∑i=0nvijxi)⎞⎠⎞⎠2