BP神经网络是一种基于有监督的学习,使用非线性可导函数作为传递函数的前馈神经网络。
一、模型
BP神经网络由输入层、隐含层、输出层组成。训练过程分为网络输入信号正向传播和误差信号反向传播, 按有监督学习方式进行训练。
1、相邻层之间结点的连接有一个权重Wij,其值在[-1,1]之间;
2、每一个神经单元都有一定量的能量,我们定义其能量值为该结点j的输出值Oj;
3、除输入层外,每一层的各个结点都有一个输入值,其值为上一层所有结点按权重传递过来的能量之和加上偏置;
4、除输入层外,每一层都有一个偏置值,其值在[0,1]之间;
5、除输入层外,每个结点的输出值等该结点的输入值作非线性变换;
训练一个BP神经网络,实际上就是调整网络的权重和偏置这两个参数,BP神经网络的训练过程分两部分:
前向传输,逐层波浪式的传递输出值;
逆向反馈,反向逐层调整权重和偏置;
二、前向传输(Feed-Forward前向反馈)
前向传输的输出层的计算过程公式如下:
三、逆向反馈(Backpropagation)
通过更新权重和偏置,向后传播误差,它分为两种情况:
(1)对于输出层的第j个节点,误差的计算公式如下:
其中Ej表示第j个结点的误差值,Oj表示第j个结点的输出值,Tj是给定的目标输出值。
(2)对于隐含层的第j个节点,通过下一层的所有结点误差按权重累加,计算公式如下:
其中Wjk表示当前层的结点j到下一层的结点k的权重值,Ek下一层的结点k的误差率。
计算完误差率后,就可以利用误差率对权重和偏置进行更新,首先看权重的更新:
其中λ表示表示学习速率,取值为0到1,学习速率设置得大,训练收敛更快,但容易陷入局部最优解,学习速率设置得比较小的话,收敛速度较慢,但能一步步逼近全局最优解。
更新完权重后,还有最后一项参数需要更新,即偏置:
四、训练终止条件
停止条件有下面两种:
1、设置最大迭代次数,比如使用数据集迭代100次后停止训练
2、计算训练集在网络上的预测准确率,达到一定门限值后停止训练
五、举例
对于下面模型:
总结
从上面可以看出。整个过程分为三步:
(1)初始化权重和偏置
(2)向前传播输入
(3)向后传播误差
缺点:收敛速度慢,不具备全局搜索能力和容易陷入局部极小值。