4.BP算法的优点与局限性

4.BP算法的优点与局限性,第1张

优点:

(1)能够自适应、自主学习。这是BP算法的根本以及其优势所在,BP算法根据预设的参数更新规则,不断地调整神经网络中的参数,以达到最符合期望的输出。

(2)拥有较强的非线性映射能力。

(3)严谨的推导过程。误差的反向传播过程,采用的是已经非常成熟的链式法测,其推导过程严谨且科学。

(4)较强的泛化能力,即在BP算法训练结束之后,BP算法可以利用从原来知识中学到的知识解决新的问题。

缺点:

(1)由于BP神经网络中的参数众多,每次都需要更新数量较多的阈值和权值,故会导致收敛速度过慢。

(2)网络中隐含层节点个数尚无明确的公式,传统方法需要不断地设置隐含层节点数进行试凑,根据网络误差结果确定最终隐含层节点个数。

(3)从数学角度看,BP算法是一种速度较快的梯度下降算法,很容易陷入局部最小值的问题。当出现局部极小时,从表面上看,误差符合要求,但这时所得到的解并不一定是问题的真正解。所以BP算法是不完备的。

第0节、引例

本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在http://enwikipediaorg/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集:

有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。

  一种解决方法是用已有的数据训练一个神经网络用作分类器。

  如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。

第一节、神经网络基本原理

1 人工神经元( Artificial Neuron )模型

人工神经元是神经网络的基本元素,其原理可以用下图表示:

图1 人工神经元模型

图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:

  图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:

  若用X表示输入向量,用W表示权重向量,即:

X = [ x0 , x1 , x2 , , xn ]

  则神经元的输出可以表示为向量相乘的形式:

若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。

图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。

2 常用激活函数

激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。

(1) 线性函数 ( Liner Function )

(2) 斜面函数 ( Ramp Function )

(3) 阈值函数 ( Threshold Function )

以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。

(4) S形函数 ( Sigmoid Function )

  该函数的导函数:

(5) 双极S形函数

  该函数的导函数:

  S形函数与双极S形函数的图像如下:

图3 S形函数与双极S形函数图像

  双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。

  由于S形函数与双极S形函数都是可导的(导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)

具体http://blogcsdnnet/gongxq0124/article/details/7681000/

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/12179295.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存