BP神经网络

BP神经网络

最近打算学习卷积神经网络,发现关于BP算法都已经忘了,再来梳理一遍。

反向BP神经网络

  1. 正向传播
    输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。
  2. 反向传播
    反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。
    其实反向传播的核心计算就是,梯度下降+链式求导。

BP神经网络的算法流程

在反向传播算法应用于前馈多层网络时,采用Sigmoid为激发函数时,可用下列步骤对网络的权系数 Wij 进行递归求取。注意对于每层有n个神经元的时候,即有i=1,2,…,n;j=1,2,…,n。对于第k层的第i个神经元,则有n个权系数 Wi1Wi2Win ,另外取多—个 Win+1 用于表示阀值 θi ;并且在输入样本X时,取 x(X1X2Xn1)


  1. 对权系数 Wij 置初值,对各层的权系数 Wij 置一个较小的非零随机数,但其中 Wi,n+1=θ

  2. 输入一个样本 X(x1x2xn1) ,以及对应期望输出 Y(Y1Y2Yn)

  3. 计算各层的输出。对于第k层第i个神经元的输出 Xki ,有:

    Uki=j=1n+1WijXk1j,Xk1n+1=1,wi,n+1=θ

    Xki=f(Uki)

  4. 求各层的学习误差 dki ,对于输出层有k=m,有
    dmi=Xmi(1Xmi)(XmiYi)

    对于其他各层,有
    dki=Xki(1Xki)lWlidk+1l
  5. 修正权值系数和阈值 θ
    Wij(t+1)=Wij(t)ηdkiXk1j

    为了加快收敛速度,一般考虑上一次的权值系数,并以它作为本次修正的依据之一,修正后如下
    Wij(t+1)=Wij(t)ηdkiXk1j+αWij(t)
  6. 求出了各层的各个权值系数之后,可按指定的指标判断是否满足要求。如果满足要求则算法结束,如果未满足要求则返回3继续执行。

若修改了激发函数,则需要重新计算误差和权值阈值修改的公式,以上步骤中的推导,主要是对第5步中的权值阈值修改,这个公式的推导详见http://www.cnblogs.com/wengzilin/archive/2013/04/24/3041019.html

  • 一般激活函数会使用sigmoid或者tanh。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值