BP(梯度传播)算法 backpropagation

本文比较乱,仅适合本人自己查看

BP 算法由信号的正向传播和误创差的反向传播的两个过程组成的。正向传播的过程中,训练样本从输入层 进入网络,再经过隐含层输出到输出层。若输出层的实际输出与最后的期望输出有出入,则将误差(输出值与期望值的差值)方向传播,若误差为零,则结束学习算法。

     反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈值后,使误差信号减小到最低限度。

权值和阈值不断调整的过程,就是网络的学习与训练过程,经过信号正向传播与误差反向传播,权值和阈值的调整反复进行,一直进行到预先设定的学习训练次数,或输出误差减小到允许的程度。

基本思想如下:(摘自百度百科)

学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。

算法实行步骤:(摘自百度百科)

(1)组成输入模式由输入层经过隐含层向输出层的“模式顺传播”过程。
(2)网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层休整连接权的“误差逆传播”过程。
(3)由“模式顺传播”与“误差逆传播”的反复进行的网络“记忆训练”过程。
(4)网络趋向收敛即网络的总体误差趋向极小值的“学习收敛”过程。
在训练阶段中,训练实例重复通过网络,同时修正各个权值,改变连接权值的目的是最小化训练集误差率。继续网络训练直到满足一个特定条件为止,终止条件可以使网络收敛到最小的误差总数,可以是一个特定的时间标准,也可以是最大重复次数。

    不足(摘自百度百科)

虽然BP算法得到广泛的应用,但它也存在不足,其主要表现在训练过程不确定上,具体如下。
(1)训练时间较长。对于某些特殊的问题,运行时间可能需要几个小时甚至更长,这主要是因为学习率太小所致,可以采用自适应的学习率加以改进。
(2)完全不能训练。训练时由于权值调整过大使激活函数达到饱和,从而使网络权值的调节几乎停滞。为避免这种情况,一是选取较小的初始权值,二是采用较小的学习率。
(3)易陷入局部极小值。BP算法可以使网络权值收敛到一个最终解,但它并不能保证所求为误差超平面的全局最优解,也可能是一个局部极小值。这主要是因为BP算法所采用的是梯度下降法,训练是从某一起始点开始沿误差函数的斜面逐渐达到误差的最小值,故不同的起始点可能导致不同的极小值产生,即得到不同的最优解。如果训练结果未达到预定精度,常常采用多层网络和较多的神经元,以使训练结果的精度进一步提高,但与此同时也增加了网络的复杂性与训练时问。
(4)“喜新厌旧”。训练过程中,学习新样本时有遗忘旧样本的趋势


推导:


后面摘录自:https://www.cnblogs.com/HolyShine/p/6413653.html

多层网络的训练需要一种强大的学习算法,其中BP(errorBackPropagation)算法就是成功的代表,它是迄今最成功的神经网络学习算法。

今天就来探讨下BP算法的原理以及公式推导吧。

神经网络

  先来简单介绍一下神经网络,引入基本的计算公式,方便后面推导使用

图1 神经网络神经元模型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值