【神经网络】多层前馈神经网络——BP神经网络

本文详细介绍了多层前馈神经网络中的BP(误差反向传播)算法,包括模型结构、算法推导、计算步骤、讨论与应用。通过对激活函数、误差能量函数及权值更新的分析,揭示了BP算法如何通过梯度下降法最小化误差,用于训练神经网络。同时,文章探讨了学习曲线、过拟合、局部极值问题以及网络参数的确定方法,展示了BP网络在分类、模式识别、非线性函数逼近等问题上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多层前馈神经网络–BP神经网络

模型结构

  • 多层结构,L层( L ≥ 2 L\geq2 L2

  • 信息前向传播

  • 输入层不包含在总层数中,为第0层( L 0 L_0 L0

    • 输入层的输入样本数为 N 0 N_0 N0 x 1 ( t ) , x 2 ( t ) , . . . , x N 0 ( t ) x_1(t),x_2(t),...,x_{N_0}(t) x1(t),x2(t),...,xN0(t)
      每个输入都要分别输入给第一层的所有单元

    • 第一层 L 1 L_1 L1 N 1 N_1 N1个单元各自又有输出,为: y 1 1 ( t ) , y 2 1 ( t ) , . . . , y N 1 1 ( t ) y_1^1(t),y_2^1(t),...,y_{N_1}^1(t) y11(t),y21(t),...,yN11(t)

      第一层的所有输出继续作为第二层的输入

    • 第二层继续如此

      . . . ... ...

    • 最后一层L层有 N L N_L NL个单元,输出为: y 1 ( t ) , y 2 ( t ) , . . . , y N L ( t ) y_1(t),y_2(t),...,y_{N_L}(t) y1(t),y2(t),...,yNL(t)

    各层的权值可分别表示为: w 11 1 , w 11 2 , . . . , w 11 L w_{11}^1,w_{11}^2,...,w_{11}^L w111,w112,...,w11L(下标表示由前一层的哪个单元传到这一层的哪个单元, w j i w_{ji} wji j j j代表后一层的节点编号, i i i为前一层的节点编号)

    每层的每个单元同时都有门限值 θ \theta θ,分别表示为: θ 1 1 , θ 1 2 , . . . , θ 1 L \theta_1^1,\theta_1^2,...,\theta_1^L θ11,θ12,...,θ1L

    • 每个单元都有非线性激活函数 φ ( ) \varphi() φ(),输出为: y i l ( t ) = φ ( s j l ( t ) ) y_i^l(t)=\varphi(s_j^l(t)) yil(t)=φ(sjl(t))

      s j l ( t ) = ∑ i = 1 N l − 1 w j i l y i l − 1 ( t ) − θ j l = ∑ i = 0 N l − 1 w j i l y i l − 1 ( t ) = ( W l ) T Y l − 1 ( t ) s_j^l(t)=\sum_{i=1}^{N_{l-1}}{w_{ji}^ly_i^{l-1}(t)-\theta_j^l}=\sum_{i=0}^{N_{l-1}}{w_{ji}^ly_i^{l-1}(t)}=(W^l)^TY^{l-1}(t) sjl(t)=i=1Nl1wjilyil1(t)θjl=i=0Nl1wjilyil1(t)=(Wl)TYl1(t)

    • 非线性激活函数: φ ( s ) = 1 1 + e − s \varphi(s)=\frac{1}{1+e^{-s}} φ(s)=1+es1——Sigmoid 函数

      d φ ( s ) d s = φ ( s ) ( 1 − φ ( s ) ) \frac{d\varphi(s)}{ds}=\varphi(s)(1-\varphi(s)) dsdφ(s)=φ(s)(1φ(s))

      Sigmoid函数最小值为0,最大值为0,连续光滑可导

      φ ( s ) = t a n h ( s / 2 ) = e s / 2 − e − s / 2 e s / 2 + e − s / 2 \varphi(s)=tanh(s/2)=\frac{e^{s/2}-e^{-s/2}}{e^{s/2}+e^{-s/2}} φ(s)=tanh(s/2)=es/2+es/2es/2es/2和Sigmoid函数图像差不多,但最小值为-1,最大值为1,关于原点奇对称

BP算法(误差反向传播算法,Error Back Propagation Algorithm)

权值学习同样是通过迭代的办法得到: w j i l ← w j i l + Δ w j i l w_{ji}^l\larr w_{ji}^l+\Delta w_{ji}^l wjilwjil+Δwjil

关键问题:如何求 Δ w j i l \Delta w_{ji}^l Δwjil

  • 主要思路:

    条件:要给一定的输入矢量和他们的理想输出矢量K个: X ( k ) = [ x 1 ( k ) , . . . , x n ( k ) ] T , ( k = 1 , 2 , . . . , K ) X(k)=[x_1(k),...,x_n(k)]^T,(k=1,2,...,K) X(k)=[x1(k),...,xn(k)]T,(k=1,2,...,K)

    ​ 形成输入输出样本对: { X ( k ) , D ( k ) } , ( k = 1 , 2 , . . . , K ) \{X(k),D(k)\},(k=1,2,...,K) { X(k),D(k)},(k=1,2,...,K)

    通过训练达到最终目标 Y ( k ) → W D ( k ) Y(k)\xrightarrow{W}D(k) Y(k)W D(k)

  • 问题的本质: X ( k ) X(k) X(k) D ( k ) D(k) D(k)存在某种未知的函数关系,如 D ( K ) = f ( X ( k ) ) D(K)=f(X(k)) D(K)=f(X(k)),现在要用神经网络来逼近这个函数,要先收集和这个函数有关的输入输出,来训练该神经网络,使得给相同的输入后,输出能逼近理想结果。

  • 如何能达到 Y ( k ) → D ( k ) Y(k)\rarr D(k) Y(k)D(k)

    • 思路:构造目标函数 E ( W ) = 1 2 ∑ k ∑ j ( d j ( k ) − y j ( k ) ) 2 → W m i n E(W)=\frac{1}{2}\sum_k\sum_j(d_j(k)-y_j(k))^2\xrightarrow{W}min E(W)=21kj(dj(k)yj(k))2W min
    • 通过计算 W W W,使得误差平方和(误差能量) E ( W ) E(W) E(W)最小化

BP算法的推导

  • 初始化网络的权值,门限值,非线性激活函数

  • 信息前向传播过程:利用给出的样本对输入神经网络,经过每一层得到的输入再输入下一层,最后得到每个节点输出 Y l ( k ) Y^l(k) Yl(k)

    X ( k ) → Y 1 ( k ) → Y 2 ( k ) → . . . → Y L ( k ) ( = Y ( k ) ) X(k)\rarr Y^1(k)\rarr Y^2(k)\rarr...\rarr Y^L(k)(=Y(k)) X(k)Y1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值