发 帖  
原厂入驻New
网上首套系列的9点标定教程《龙哥手把手教你学视觉-运动篇》——视觉工程师进阶必学!

[经验] 【案例分享】基于BP算法的前馈神经网络

2019-7-21 04:00:00  212 算法 神经网络
分享
1
BP神经网络

首先给出只包含一个隐层的BP神经网络模型(两层神经网络):
BP神经网络其实由两部分组成:
1.png
  • 前馈神经网络:神经网络是前馈的,其权重都不回送到输入单元,或前一层输出单元(数据信息是单向传播的,不会回流),区别于循环神经网络RNN。
  • BP算法(Back Propagation):误差反向传播算法,用于更新网络中的权重。

BP神经网络思想:

  • 表面上:1. 数据信息的前向传播,从输入层到隐含层,最后到输出层。2. 误差的反向传播:输出结果与真实结果的误差值,从输出层传递到隐含层,最后到输入层。
  • 本质上:针对每个输入样本,采用随机梯度下降算法,动态更新网络中的权重和偏倚,以使网络的输出不断地接近期望的输出。

BP神经网络算法推导(更新权重和偏倚):
4_jpg_thumb.jpg

从上面推导可以发现:

对于任意从神经元i(输出神经元/隐层神经元)至 神经元j(隐层神经元/输出层神经元)的权重w ij  wijw_{ij},其权重更新量Δw ij  Δwij\Delta w_{ij}=学习步长η η\eta × ×\times 前一层神经元的输出(x i  xix_{i} 或y j  yjy_{j})× ×\times 后一层神经元(y j  yjy_{j}或o k  oko_{k})的误差
神经元偏倚的变化量:ΔΘ ΔΘ \Delta \Theta=学习步长η η\eta × ×\times 乘以神经元的误差

BP神经网络算法过程

网络的初始化:包括权重和偏倚的初始化
计算隐含层的输入输出
计算输出层的输入输出
误差的计算:隐层和输出层的误差
权值的更新:1. 输入层—隐层。2. 隐层—输出层
偏倚的更新:神经元的步长η η\eta × ×\times 相应的误差err
判断算法迭代是否结束:1.超过迭代次数,2.相邻的两次误差之间的差别小于阈值等。

误差的反向传播描述
反向传播过程是这样的:输出层每个节点都会得到一个误差e(d k −o k  dk−okd_{k}-o_{k}),把e作为输出层反向输入,这时候就像是输出层当输入层一样把误差往回传播,先得到输出层误差err k  errkerr_{k},然后将输出层err k  errkerr_{k}根据连接权重往隐层传输,得到隐层误差err j  errjerr_{j}。具体如下图所示(画的有点难看,将就看吧。。)

5.jpg
小庄老师 2019-7-23 15:06:33
如何用labview实现?
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表