方便起见,本文仅以三层的神经网络举例。
- 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