在阅读本文之前,请确保您已经有了一定的神经网络基础(具体的介绍可以看西瓜书)。
本文采用的是标准的BP算法,即每次仅针对一个样例更新权重和阈值。
本文将搭建用于分类的双隐层BP神经网络
一、理论部分
1.1 正向计算
符号说明
设我们的双隐层BP神经网络有m个输入神经元,n个输出神经元,第一个隐层有p个隐层神经元,第二个隐层有q个隐层神经元。
- 权重:第
个输入神经元到第
个第一个隐层的神经元的权重记为
, 第
个第一个隐层的神经元到第j个第二个隐层的神经元的权重记为
,第
个第二个隐层的神经元到第
个输出神经元的权重记为
;
- 阈值:第
个第一个隐层的神经元的阈值记为
,第
个第二个隐层的神经元的阈值记为
,第
个输出神经元的阈值记为
;
- 输入:第
个输入神经元接收到的输入为记为
,第
个第一个隐层的神经元接收到的输入值为
,第
个第二个隐层的神经元接收到的输入值为
,第
个输出神经元接收到的输入值为
;
-
输出:第
个第一个隐层的神经元的输出记为
,第
个第二个隐层的神经元的输出记为
,第
个输出神经元的输出记为
。
记,激活函数为
,我们定义:
公式推导
则有
再令,
,从而