关闭

深度学习之BP神经网络

标签: 神经网络深度学习算法
1883人阅读 评论(0) 收藏 举报
分类:

深度学习之BP神经网络

BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。

这里写图片描述

BP神经元

这里写图片描述

第j个神经元的净输入值Sj为:
这里写图片描述
净输入 通过传递函数(Transfer Function)f (·)后,便得到第j个神经元的输出:
这里写图片描述
式中f是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。

事实上,对于单个神经元而言,若忽视传递函数,其本质上就是LR算法。

反向传播

反向传输是BP神经网络的特点,故详细说明此部分。
1)误差函数
第p个样本的误差:
这里写图片描述
其中,tp为期望输出,yp为经过网络后的输出,有p个学习样本,m个输出节点。
全局误差:
这里写图片描述
此处不做具体的公式推导,改用较为直观的的方式解释,如下图:
这里写图片描述

情况一:
当误差对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。
情况二:
当误差对权值的偏导数小于零时,权值调整量为正,实际输出小于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。

BP神经网络优缺点

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

问题:
(1) BP算法的学习速度很慢,其原因主要有:
① 由于BP算法本质上为梯度下降法,而它所要优化的目标函数又非常 复杂,因此,必然会出现“锯齿形现象”,这使得BP算法低效;
② 存在麻痹现象,由于优化的目标函数很复杂,它必然会在神经元输出 接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;
③ 为了使网络执行BP算法,不能用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法将引起算法低效。
(2) 网络训练失败的可能性较大,其原因有:
① 从数学角度看,BP算法为一种局部搜索的优化方法,但它要解决的问题为求解复杂非线性函数的全局极值,因此,算法很有可能陷入局部极值,使训练失败;
② 网络的逼近、推广能力同学习样本的典型性密切相关,而从问题中选取典型样本实例组成训练集是一个很困难的问题。
(3) 难以解决应用问题的实例规模和网络规模间的矛盾。这涉及到网络容量的可能性与可行性的关系问题,即学习复杂性问题;
(4) 网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定。为此,有人称神经网络的结构选择为一种艺术。而网络的结构直接影响网络的逼近能力及推广性质。因此,应用中如何选择合适的网络结构是一个重要的问题;
(5) 新加入的样本要影响已学习成功的网络,而且刻画每个输入样本的特征的数目也必须相同;
(6) 网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Deep Learning(深度学习)整理,RNN,CNN,BP

 申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2、初级(浅层)特征...
  • justdoithai
  • justdoithai
  • 2016-04-16 21:47
  • 9129

深度学习框架Caffe学习笔记(8)-BP神经网络算法

BP神经网络的计算流程为,先根据输入数据各个节点的权重偏向,计算出神经网络的输出(前向传播计算),通过计算输出与理想输出比较得到误差,再根据误差函数再各个节点的偏导数计算出各权重、偏向的调整量(反向传...
  • u013407923
  • u013407923
  • 2016-11-14 14:15
  • 3561

深度学习BP算法 BackPropagation以及详细例子解析

反向传播算法是多层神经网络的训练中举足轻重的算法,本文着重讲解方向传播算法的原理和推导过程。因此对于一些基本的神经网络的知识,本文不做介绍。在理解反向传播算法前,先要理解神经网络中的前馈神经网络算法。...
  • win_in_action
  • win_in_action
  • 2016-09-29 19:53
  • 4357

深度学习BP算法的推导(附加RNN,LSTM的推导说明)

注:这篇文章主要参考Alex Graves的博士论文《Supervised Sequence Labelling with Recurrent Neural Networks》 详细介绍其关于BP算法...
  • ChangHongJian
  • ChangHongJian
  • 2014-12-09 13:57
  • 43848

深度学习BP算法的推导(附加RNN,LSTM的推导说明)

注:1)这篇文章主要参考Alex Graves的博士论文《Supervised Sequence Labelling with Recurrent Neural Networks》 详细介绍其关于BP...
  • zhuanshenweiliu
  • zhuanshenweiliu
  • 2014-12-30 16:28
  • 41199

深度学习算法实践8---BP算法详解

BP算法是关于误差的反向传播算法,就是从输出层开始,将结果与预期结果相比较,求出误差,然后按照梯度最大下降方向,调整神经元的联接权值,然后依次逐层调整各层之间的连接权值,对于批量学习方式而言,不断重复...
  • Yt7589
  • Yt7589
  • 2016-08-24 19:06
  • 4611

基本BP算法

BP算法        又称为BP网络.BP学习算法是一种有效的学习方法,但由于在权值调整上采用梯度下降法作为优化算法,容易陷入局部最小,不能保证得到全局最优解。非循环多级网络的训练算法 弱点:训练...
  • bellajo
  • bellajo
  • 2013-11-28 12:31
  • 1035

深度学习(deep learning)之一步一步实现编写深度神经网络(DNN)

本文将以matlab为工具介绍下如何实现深度神经网络,以方便初学者,神经元激活函数为 ReLU。 ReLU函数的数学公式很简单ReLU(x)=max(x,0),但其对DNN的贡献是巨大的。 若DN...
  • tandyky
  • tandyky
  • 2015-03-10 23:19
  • 19423

神经网络和深度学习-学习总结

1. 简介     神经网络和深度学习是由Michael Nielsen所写,其特色是:兼顾理论和实战,是一本供初学者深入理解Deep Learning的好书。 2. 使用神经网络识别手写数字...
  • MyArrow
  • MyArrow
  • 2016-05-05 14:19
  • 19648

深度学习笔记(三)back propagation(BP) 原理和求解过程

上一章分析基本神经网络以及怎么训练网络过程。里面有用到提到BP (反向传播的求解) 1)BP 其实是一种思想 首先我们看一个计算式子e=(a+b)∗(b+1)的...
  • chenfenggang
  • chenfenggang
  • 2017-08-24 22:52
  • 242
    个人资料
    • 访问:8877次
    • 积分:429
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    最新评论