Warning: file_exists(): open_basedir restriction in effect. File(/www/wwwroot/www.shawanolakecottagemartzke-cmy/wp-content/plugins/imwpcache-dist//bootstrap/index.php) is not within the allowed path(s): (/www/wwwroot/www.shawanolakecottagemartzke.com-root/:/tmp/) in /www/wwwroot/www.shawanolakecottagemartzke.com-root/index.php on line 1
多层神经网络BP算法解释-沙沙资源网
沙沙资源网 IT教程 多层神经网络BP算法解释

多层神经网络BP算法解释

bp神经网络算法

# 多层神经网络BP算法解释 ## 前向传播 *** * 该项目采用反向传播算法描述了多层神经网络的教学过程。 为了说明这个过程,使用了具有两个输入和一个输出的三层神经网络,如下图所示:

  • 每个神经元由两个单元组成。
  • 第一单元添加权重系数和输入信号的乘积。
  • 第二个单元实现非线性功能,称为神经元激活功能。
  • 信号 e ” role=”presentation”> e e 是加法器输出信号.
  • y = f ( e ) ” role=”presentation”> y=f(e) y = f ( e ) 是非线性元件的输出信号。
  • 信号 y ” role=”presentation”> y y 也是神经元的输出信号。
  • 训练数据由(期望输出) z ” role=”presentation”> z z 和输入信号 x 1 ” role=”presentation”> x1 x 1 和 x 2 ” role=”presentation”> x2 x 2 组成。
  • 神经网络训练是一个迭代过程。 在每次迭代中,使用来自训练数据集的新数据来修改节点的权重系数 w ” role=”presentation”> w w 。
  • 使用下面描述的算法计算修改:每个教学步骤从强制来自训练集的两个输入信号开始。 在此阶段之后,我们可以确定每个网络层中每个神经元的输出信号值。
  • 下面的图片说明了信号如何通过网络传播,符号 w ( x m ) n ” role=”presentation”> w(xm)n w ( x m ) n 表示输入层中网络输入 x m ” role=”presentation”> xm x m 和神经元 n ” role=”presentation”> n n 之间的连接权重。 符号 y n ” role=”presentation”> yn y n 表示神经元 n ” role=”presentation”> n n 的输出信号。

y 1 = f 1 ( w ( x 1 ) 1 ∗ x 1 + w ( x 2 ) 1 ∗ x 2 ) ” role=”presentation”> y1=f1(w(x1)1∗x1+w(x2)1∗x2) y 1 = f 1 ( w ( x 1 ) 1 ∗ x 1 + w ( x 2 ) 1 ∗ x 2 )

y 2 = f 2 ( w ( x 1 ) 2 ∗ x 1 + w ( x 2 ) 2 ∗ x 2 ) ” role=”presentation”> y2=f2(w(x1)2∗x1+w(x2)2∗x2) y 2 = f 2 ( w ( x 1 ) 2 ∗ x 1 + w ( x 2 ) 2 ∗ x 2 )

y 3 = f 3 ( w ( x 1 ) 3 ∗ x 1 + w ( x 2 ) 3 ∗ x 2 ) ” role=”presentation”> y3=f3(w(x1)3∗x1+w(x2)3∗x2) y 3 = f 3 ( w ( x 1 ) 3 ∗ x 1 + w ( x 2 ) 3 ∗ x 2 )

* 其中 f ( ) ” role=”presentation”> f() f ( ) 函数可以是 s i g m o d ” role=”presentation”> sigmod s i g m o d 函数

e x . f ( z ) = 1 1 + e − z ” role=”presentation”> ex.f(z)=11+e−z e x . f ( z ) = 1 1 + e − z

/p> *** * 通过隐藏层传播信号。 * 符号 w m n ” role=”presentation”> wmn w m n 表示下一层中神经元 m ” role=”presentation”> m m 的输出与神经元 n ” role=”presentation”> n n 的输入之间的连接的权重。

## BP网络 *** * 将神经网络的输出信号 y ^ ” role=”presentation”> y^ y ^ 与在训练数据集中找到的真实值( y ” role=”presentation”> y y )进行比较。 该差异被称为输出层神经元的误差信号 δ ” role=”presentation”> δ δ 。

δ = y − y ^ ” role=”presentation”> δ=y−y^ δ = y − y ^

与下图片对应关系为 y = z ” role=”presentation”> y=z y = z , y ^ = y ” role=”presentation”> y^=y y ^ = y

  • 无法计算直接计算隐藏层的真实值和误差,因为该过程在实际生产中不存在,或不可得。
  • 为此,八十年代中期,提出了 BP算法

  • 上一条是重点,重点,重点。

  • 注意 下图公式有误 ,正确表达为
  • δ 4 = w 46 ∗ δ ∗ d f 6 ( e ) d e = − w 46 ∗ δ ∗ y ^ ∗ ( 1 − y ^ ) ” role=”presentation”> δ4=w46∗δ∗df6(e)de=−w46∗δ∗y^∗(1−y^) δ 4 = w 46 ∗ δ ∗ d f 6 ( e ) d e = − w 46 ∗ δ ∗ y ^ ∗ ( 1 − y ^ )

  • 其他的同类表达式也需要类似的修改,请注意。
  • 对于有多条边连接的节点, δ ” role=”presentation”> δ δ 为每条边结果的和。

  • 获得每个神经元的误差信号后,可以利用误差来修改每个神经元输入节点的权重系数。
  • 下面的公式

    ∂ ( δ 2 ) ∂ e = ∂ ( y − y ^ ) 2 ∂ e = − ( y − y ^ ) ∗ y ^ ∗ ( 1 − y ^ ) ” role=”presentation”> ∂(δ2)∂e=∂(y−y^)2∂e=−(y−y^)∗y^∗(1−y^) ∂ ( δ 2 ) ∂ e = ∂ ( y − y ^ ) 2 ∂ e = − ( y − y ^ ) ∗ y ^ ∗ ( 1 − y ^ )

    表示神经元激活函数的导数残差

  • δ 2 ” role=”presentation”> δ2 δ 2 即为 损失函数
  • 又因为对 d e d θ ” role=”presentation”> dedθ d e d θ 有
  • d e d θ = ∂ θ T x ∂ θ = x ” role=”presentation”> dedθ=∂θTx∂θ=x d e d θ = ∂ θ T x ∂ θ = x

  • 由于链式法则
  • ∂ ( δ 2 ) ∂ θ = ∂ ( y − y ^ ) 2 ∂ e d e d θ = − ( y ^ − y ) ∗ y ^ ∗ ( 1 − y ^ ) ∗ x = − δ ∗ y ^ ∗ ( 1 − y ^ ) ∗ x ” role=”presentation”> ∂(δ2)∂θ=∂(y−y^)2∂ededθ=−(y^−y)∗y^∗(1−y^)∗x=−δ∗y^∗(1−y^)∗x ∂ ( δ 2 ) ∂ θ = ∂ ( y − y ^ ) 2 ∂ e d e d θ = − ( y ^ − y ) ∗ y ^ ∗ ( 1 − y ^ ) ∗ x = − δ ∗ y ^ ∗ ( 1 − y ^ ) ∗ x

  • y ^ ” role=”presentation”> y^ y ^ 表示输出值

  • y ” role=”presentation”> y y 表示真实值
  • x ” role=”presentation”> x x 代表上一层的输出或者原始的输入
  • δ ” role=”presentation”> δ δ 表示误差 这里用到了上一节BP中的假设
  • 通过这部分化简,我们利用误差 δ ” role=”presentation”> δ δ 代替了的 y − y ^ ” role=”presentation”> y−y^ y − y ^ 从而避开了隐藏层中的未知量 y ” role=”presentation”> y y
  • 最后利用标准的* 梯度下降公式*:

    w ^ = w − η ∗ ∇ = w + η ∗ δ ∗ y ^ ∗ ( 1 − y ^ ) ∗ x = w + η ∗ δ ∗ ∂ y ∂ e ∗ x ” role=”presentation”> w^=w−η∗∇=w+η∗δ∗y^∗(1−y^)∗x=w+η∗δ∗∂y∂e∗x w ^ = w − η ∗ ∇ = w + η ∗ δ ∗ y ^ ∗ ( 1 − y ^ ) ∗ x = w + η ∗ δ ∗ ∂ y ∂ e ∗ x

转载请注明出处,csdn的markdown还是很迷的。

参考

参考资料来源

神经网络——动态图和静态图

目前神经网络框架分为静态图框架和动态图框架,PyTorch和TensorFlow、Caffe等框架最大的区别就是他们拥有不同的计算图表现形式。Te

动态模糊神经网络用于自学习

动态模糊神经网络 动态模糊神经网络 输入语言变量 系统输出 是第个输入变量的第个隶属函数 表示第条模糊规则 是第个归一化

神经网络和深度学习基本原理

这是看到的一篇对神经网络的讲解的文章,我觉得写得很好,也仔细学习了学习,最近我可能也得用这个东西,现在确实是很火啊,也很实用。 神

二、人工神经网络(上)

                                                                    人工神经网络(上) 神

BP神经网络

后向传播学习的前馈型神经网络(BPNN)BPNN基本思想 1.前馈型网络结构再输入样本的时候,从输入层输入,向前把结果输出到第一隐含层,然后

文章回顾

大家看了本文多层神经网络BP算法解释的精彩教程资源内容,是不是对多层神经网络BP算法解释了解更多,真心希望多层神经网络BP算法解释能帮助到你, 小编会一直给你带来更多教程资源文章信息。

声明:本站内容和图片来源于网络和读者投稿,本站无法甄别投稿用户享有著作权,根据《信息网络传播权保护条例》,如果转载的作品侵犯了您的权利,请在一个月内通知我站及时删除(serviceaffair#outlook.com #改成@)。https://www.shawanolakecottagemartzke.com/127988.html
返回顶部