深度学习之BP神经网络

                                   
                       

深度学习之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) 网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾。一般情况下,训练能力差时,预测能力也差,并且一定程度上,随训练能力地提高,预测能力也提高。但这种趋势有一个极限,当达到此极限时,随训练能力的提高,预测能力反而下降,即出现所谓“过拟合”现象。此时,网络学习了过多的样本细节,而不能反映样本内含的规律。

                   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习中的BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络。BP算法的基本思想是学习过程由信号的正向传播和误差的反向传播两个过程组成。正向传播是指输入信号从输入层经过隐藏层传递到输出层的过程,而反向传播是指根据输出层的误差信号,通过调整网络中的权重和偏置来更新网络参数的过程。 在BP神经网络中,每个神经元都有一个激活函数,用于将输入信号转换为输出信号。常用的激活函数有sigmoid函数、ReLU函数等。通过正向传播,输入信号经过一系列的线性变换和激活函数的作用,最终得到输出信号。然后,通过计算输出信号与期望输出之间的误差,利用误差反向传播的方法,将误差逐层传播回网络,根据误差信号调整每个神经元的权重和偏置,以减小误差,使得网络的输出逼近期望输出。 然而,在深度学习中,由于网络层数的增加,学习信号在传播过程中可能会逐渐减小,导致梯度消失的问题。梯度消失指的是学习信号随着网络传播逐渐减小,经过多层传播后,学习信号接近于0,使得权重调整接近于0,参数无法优化,整个网络无法再进行学习。 为了解决梯度消失的问题,深度学习中提出了一些改进的方法,如使用ReLU等激活函数、批量归一化、残差连接等。这些方法可以有效地缓解梯度消失问题,使得深度神经网络能够更好地进行训练和学习。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值