适用场景:

BP神经网络在函数逼近、模式识别、数据压缩等领域有着更为广泛的应用,目前实际应用的90%的神经网络系统都是基于BP算法。


算法思想:

BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。

正向传播时,输入样本从输入层传人,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。

误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。

这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。

BP算法具体有这么几个步骤:

  • ● 先计算每一层的状态和激活值,直到最后一层(即信号是前向传播的)
  • ● 计算每一层的误差,误差的计算过程是从最后一层向前推进的(这就是BP算法名字的由来)
  • ● 更新参数(目标是误差变小)
  • ● 迭代前面两个步骤,直到满足停止准则(比如相邻两次迭代的误差的差别很小)



案例1:

在超市买了2个100日元/个的苹果,消费税10%,计算支付金额的过程则可以表示成下图:


这里"自左向右进行计算"叫做正向传播,从计算图的出发点到结束点的传播,如果从图中自右向左看的方式叫做"反向传播",反向传播可以用于导数计算。
计算图的反向传播,假设存在函数y = f(x),将这个局部导数乘以上游传过来的值(E),然后传给前面的节点。


举一个具体的例子,如果某次计算图一个加法节点的正向传播如左,从上游两个节点分别传来10和15正向传播传递15给下 游;反向传播如右,上游传来1.3,则改节点将1.3和1.3传给下游2个节点


乘法节点的反向传播,这里考虑z=xy,导数如下




案例2:

根据国内男子跳高运动员各项素质指标,预测序号跳高成绩。将前14组国内男子跳高运动员各项素质指标作为输入,即(30m行进跑,立定三级跳远,助跑摸高,助跑4-6步跳高,负重深蹲杠铃,杠铃半蹲系数,100m,抓举),将对应的跳高成绩作为输出。

设计网络结构如下图所示:



补充说明:

多层前向BP网络的优点:

  • ● 网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题
  • ● 网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力
  • ● 网络具有一定的推广、概括能力

多层前向BP网络的问题:

  • ● 由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常复杂,因此,必然会出现“锯齿形现象”,这使得BP算法低效
  • ● 存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿
  • ● 为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效

关于优必杰教育 | 擎课堂 | AI教学平台 | 嘉定集散地 | 余杭集散地 | 常用工具

©2017-2020 上海优必杰教育科技有限公司 · 沪ICP备17047230号-3