神经网络之BP(反向传播算法)的原理介绍

反向传播是人工神经网络中的一个重要算法,这个方法可以对网络中所有权重计算损失函数的梯度,然后这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

反向传播算法的原理

我们先直观的看一下反向传播的原理,假设有一个网络:
在这里插入图片描述
这是一个三层的神经网络,我们以这个网络为例子,展示下BP算法的过程。
在这里插入图片描述
其中,每个神经元有两个单元,第一个单元是对其输入信号和对应的权重的乘积求和,第二单元就是激活函数,它的输出就是整个神经元的输出。
在这里插入图片描述
上图展示了信号在神经网络中是怎么传播的,符号   w ( x m ) n \ w_{(xm)n}  w(xm)n 表示输入层第n个神经元和输入信号   x m \ x_m  xm 之间连接的权重,   y n \ y_n  yn ​表示神经元n的输出信号。
在这里插入图片描述
当信号通过隐含层时,   w m n \ w_{mn}  wmn ​表示神经元m和下一层中神经元n之间连接的权重,上一层的输出是该层的输入。
在这里插入图片描述

然后信号传播到输出层,信号加权求和然后通过激活函数计算,输出最终结果。

以上就是前向传播的过程,接下来是计算误差的向前传播时,每个神经元所贡献的误差,反向传播的名字也由此而来。
在这里插入图片描述
神经网络模型的预测结果是y,而真实值是z,那么最终的误差为 δ = z − y δ=z-y δ=zy
在之前,几乎不可能直接计算中间层的神经元的误差,因为它们的输出值是未知的,而反向传播算法解决了这个问题,从最终结果的误差,一步步反推中间神经元的误差。
在这里插入图片描述
输出层的误差 δ,经连接反向传回第二层,经权重   w 46 \ w_{46}  w46   w 56 \ w_{56}  w56分配,第二层的两个神经元误差分别变为   δ w 46 \ δw_{46}  δw46   δ w 56 \ δw_{56}  δw56 ,信号是正向在神经网络中流动,而误差是反向流动,其余计算过程两者是相同的。

在这里插入图片描述
在从第二层到第一层,当每个神经元的误差都被计算出来后,神经元之间连接的权重就可以被更新了。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的 η 表示学习速率,是人为设置的一个参数,而 [公式] ,表示的是神经元激活函数的导数。这里可以理解为,新的权重,在之前的基础上,在神经元的梯度方向上前进一小步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值