浅谈BP(Back Propagation Neuron Network)

BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。

1.BP神经网络工作信号正向传递

BP

BP网络由输入层、隐层、输出层组成。 神经元是以生物研究及大脑的响应机制而建立的拓扑结构网络,模拟神经冲突的过程,多个树突的末端接受外部信号,并传输给神经元处理融合,最后通过轴突将神经传给其它神经元或者效应器。

神经元的拓扑结构如图:
在这里插入图片描述

图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:
在这里插入图片描述
在这里插入图片描述
图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,例如wi0=-1,x0=θ,则上面的式子可以简化为:
在这里插入图片描述
在这里插入图片描述
若用X表示输入向量,用W表示权重向量,即:X = [ x0 , x1 , x2 , … , xn ]
在这里插入图片描述
则神经元的输出可以表示为向量相乘的形式:
在这里插入图片描述
在这里插入图片描述
若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。

图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。

2. 常用激活函数

激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。
(1) 线性函数 ( Liner Function )
在这里插入图片描述
(2) 斜面函数 ( Ramp Function )

在这里插入图片描述

(3) 阈值函数 ( Threshold Function )

在这里插入图片描述

以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。

(4) S形函数 ( Sigmoid Function )
在这里插入图片描述
该函数的导函数:
在这里插入图片描述
(5) 双极S形函数
在这里插入图片描述
该函数的导函数:
在这里插入图片描述

S形函数与双极S形函数的图像如下:

在这里插入图片描述
双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。

由于S形函数与双极S形函数都是可导的(导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)

3. 隐层节点数的选择

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐层节点个数不确定,那么应该设置为多少才合适呢?实际上,隐层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐层节点数目,如下
在这里插入图片描述

其中h为隐含层节点数目,m为输入层节点数目,n为输出层节点数目,α为1~10之间的调节常数。

4. 误差信号反向传递

在BP神经网络中,误差信号反向传递过程比较复杂,它是基于Widrow-Hoff学习规则的。假设输出层的结果为dj,误差函数如下
在这里插入图片描述
而BP神经网络的主要目的是反复修正权值和阀值,使得误差函数值达到最小。Widrow-Hoff学习规则是通过沿着相对误差平方和的最速下降方向,连续调整网络的权值和阀值,根据梯度下降法,权值矢量的修正正比于当前位置上E(w,b)的梯度,对于第j个输出节点有
在这里插入图片描述
求得梯度后,再更新参数的值。
在这里插入图片描述
在这里插入图片描述

5. BP反向传递计算实例

在这里插入图片描述
以上图三层BP神经网络为例,首先求得输出y1和y2的值。
在这里插入图片描述

在这里插入图片描述该BP神经网络的激活函数选用的是softmax函数,为的是使得输出节点满足概率和为1的分布,适用于多分类问题。
在这里插入图片描述
该BP神经网络的误差计算使用下图所示公式1计算。
在这里插入图片描述
在这里插入图片描述
得到误差损失后,我们需要使用梯度下降法更新参数,以图中w11(2)为例,求出误差对w11(2)求偏导得到的梯度。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
求得梯度后,更新为新的值。在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值