您的位置:首页 > 理论基础 > 计算机网络

BP神经网络算法

2016-01-20 21:07 656 查看
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)向后传播误差

缺点:收敛速度慢,不具备全局搜索能力和容易陷入局部极小值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: