BP反向传播算法原理及公式推导

BP(Back Propagation)神经网络通常是指具有三层网路结构的浅层神经网络。

                                               

反向传播算法

1.什么是BP 算法?
BP算法全称叫作误差反向传播(error Back Propagation,或者也叫作误差逆传播)算法。BP神经网络是由一个输入层、一个输出层和一个或多个隐层构成的,它的激活函数采用sigmoid函数。在这其中,输入信号经输入层输入,通过隐层计算由输出层输出,输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。
2.为什么要使用BP算法?直接使用梯度下降不行吗?
梯度下降可以应对带有明确求导函数的情况,或者说可以应对那些可以求出误差的情况,比如逻辑回归,我们可以把它看做没有隐层的网络;但对于多隐层的神经网络,输出层可以直接求出误差来更新参数,但其中隐层的误差是不存在的,因此不能对它直接应用梯度下降,而是先将误差反向传播至隐层,然后再应用梯度下降,其中将误差从末层往前传递的过程需要链式法则(Chain Rule)的帮助,因此反向传播算法可以说是梯度下降在链式法则中的应用。 

                                                 

这个网络只有3层,分别是蓝色的输入层、绿色的隐藏层和红色的输出层。

假设给了m个训练样本,第i个输入输出对表示为:
其中,x和y是3维向量。对于输入x,我们把g称作神经网络的预测(输出)值。

对于每个训练样本来说,有:

给定输入x,我们要找到使得预测值g与输出值y相等或比较相近的一组网络权重。因此,我们加入了误差函数,定义如下:

我们推广到一般情况,而不是之前的3个输出单元。假设输出层有任意数量的输出单元,设为n,对于这种情况此时的总误差(损失函数)为:

用z来代表某个输出单元的总输入,求出下面公式的值:

但是,g是关于z的函数,应用链式法则,把它重写为:

g作为Logistic函数,z是它的输入,所以可以表示为:

进而得到:

设绿色单元的预测值为g’,绿色层中的单元k与红色层(输出层)中的单元j之间的连接权重设为:

图中,黄色输出单元对应的总输入z。为了计算这个总输入,先获得每个绿色单元的输出值,在把其与连接绿色单元和黄色单元的红色箭头权重相乘,并将它们全部相加。

                                               

进行推广,假如有任意数量的绿色单元,设为n,这个n与上面定义的不同,可以表示为:

推导还没有完成,我们仍需要计算误差相对于第一层和第二层连接权重的导数。接下来,计算误差与第k个绿色单元输出值的变化关系:

由于第k个单元有j个连接权重,我们也考虑在内:

推导到这里结束,我们得到了总误差相对于某个单元输出值的导数。现在,我们可以忽略红色输出层,把绿色层作为网络的最后一层,并重复上述所有步骤来计算总误差E相对于输入权重的导数。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值