BP神经网络-matlab神经网络

  BP神经网络是包含多个隐含层的网络,具备处理线性不可分问题的能力。

  20世纪80年代中期,Rumelhart,McClelland等成立了Parallel Distributed Procession(PDP)小组,提出了著名的误差反向传播算法(Error Back Propagtion,BP)。

  BP和径向基网络属于多层前向神经网络。广泛应用于分类识别、逼近、回归、压缩等领域。

  BP神经网络一般是多层的,隐层可以是一层或多层。BP神经网络具有如下特点:

  (1)网络由多层构成,层与层之间全连接,同一层之间的神经元无连接。

  (2)BP网络的传递函数必须可微。所以感知器的二值函数不能用,一般采用Sigmoid函数,可分为Log-Sigmoid和Tan-Sigmoid函数。

                        

     其中x的范围包含整个实数域,函数值再0~1之间。具体应用时可以增加参数,以控制曲线的位置和形状。

  sigmoid函数可以将输入从负无穷到正无穷的范围映射到(-1,1)和(0,1)之间,具有非线性放大功能。

  (3)采用误差反向传播算法(Back-Propagation)进行学习。再BP网络中,数据从输入层经隐含层逐层向后传播,训练网络权值时,则沿着减少误差的方向,从输出层经过中间各层逐层向前修正网络连接权值。

      (与反馈神经网络不同,BP是误差信号反向传播,网络根据误差从后向前逐层进行修正)

二、BP网络的学习算法

  BP网络的学习属于有监督学习,需要一组已知目标输出的学习样本集。

  最速下降法:

  又称为梯度下降法,是一种可微函数的最优化算法。

  LMS算法即最小均方误差算法,又称Δ规则或Windrow-Hoff LMS算法。

  LMS算法体现了纠错规则,与最速下降法本质没有差别。最速下降法可以求某指标(目标函数)的极小值,若将目标函数取为均方误差,就得到了LMS算法。

  最速下降BP法:

  调整规则可以总结为:

  权值调整量Δω=学习率η*局部梯度δ*上一层输出信号v。

  推荐使用feedforwardnet(hiddenSizes,trainFcn);

  训练函数trainFcn 默认hrainlm (traingdm是带动量的梯度下降法,trainlm是指L-M优化算法,trainscg是指量化共轭梯度法,除此之外还有traingdx、traingda等,都是权值的训练算法。看MATLAB结合神经网络的基础书上都有介绍。
                  tansig和logsig  统称Sigmoid函数,logsig是单极性S函数,tansig是双极性S函数,也叫双曲正切函数,purelin是线性函数,是节点的传输函数。)

原文地址:https://www.cnblogs.com/eclipSycn/p/6067360.html