BP神经网络算法

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)向后传播误差

缺点:收敛速度慢,不具备全局搜索能力和容易陷入局部极小值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值