BP神经网络初识

来源:互联网 发布:恒指用什么软件看盘 编辑:程序博客网 时间:2024/06/01 16:52

人工神经网络

    来自某科的介绍:人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

人工神经元( Artificial Neuron )模型

人工神经元模型

    图中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为负,则称神经元处于抑制状态。
    图中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。

常用激活函数

线性函数 ( Liner Function ): f(x) = k*x+c
斜面函数 ( Ramp Function ): f(x) = T if x > c; f(x) = k * |x| if |x|<=c ; f(x)=-T if x < -c
阈值函数 ( Threshold Function ): f(x) = 1(x >= c) f(x) = 0(x < c)
S形函数 ( Sigmoid Function ) : 这里写图片描述
双极S形函数 : 这里写图片描述

神经网络模型

前馈神经网络 ( Feedforward Neural Networks );反馈神经网络 ( Feedback Neural Networks ) ; 自组织网络 ( SOM ,Self-Organizing Neural Networks )

BP神经网络

BP(Back Propagation)神经网络分为两个过程
(1)工作信号正向传递子过程
(2)误差信号反向传递子过程
    在BP神经网络中,单个样本有个输入,有个输出,在输入层和输出层之间通常还有若干个隐含层。实际上,1989年Robert Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近,这就是万能逼近定理。所以一个三层的BP网络就可以完成任意的维到维的映射。即这三层分别是输入层(I),隐含层(H),输出层(O)。
    在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少才合适呢?实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层节点数目,如下:

这里写图片描述

    其中为隐含层节点数目,为输入层节点数目,为输出层节点数目,为之间的调节常数。

正向传递子过程

现在设节点i和节点j之间的权值为Wij,节点j的阀值为bj,每个节点的输出值为xj,而每个节点的输入值是根据上层所有节点的输出值、当前节点与上一层所有节点的权值和当前节点的阀值还有激活函数来实现的。具体计算方法如下:

这里写图片描述

反向传递子过程

在BP神经网络中,误差信号反向传递子过程比较复杂,它是基于Widrow-Hoff学习规则的。假设输出层的所有结果为,误差函数如下:

这里写图片描述

而BP神经网络的主要目的是反复修正权值和阀值,使得误差函数值达到最小。Widrow-Hoff学习规则是通过沿着相对误差平方和的最速下降方向,连续调整网络的权值和阀值,根据梯度下降法,权值矢量的修正正比于当前位置上E(w,b)的梯度,对于第个输出节点有:

这里写图片描述

根据梯度下降法,那么对于隐含层和输出层之间的权值和阀值调整如下:

这里写图片描述

对于输入层和隐含层之间的权值和阀值调整同样有:

这里写图片描述

BP神经网络Attention

BP神经网络一般用于分类或者逼近问题。如果用于分类,则激活函数一般选用Sigmoid函数或者硬极限函数,如果用于函数逼近,则输出层节点用线性函数,即f(x)=x。
标准BP神经网络的缺陷:

(1)容易形成局部极小值而得不到全局最优值。BP神经网络中极小值比较多,所以很容易陷入局部极小值,这就要求对初始权值和阀值有要求,要使得初始权值和阀值随机性足够好,可以多次随机来实现。
(2)训练次数多使得学习效率低,收敛速度慢。
(3)隐含层的选取缺乏理论的指导。
(4)训练时学习新样本有遗忘旧样本的趋势。

BP算法的改进:

(1)增加动量项,引入动量项是为了加速算法收敛(动量因子一般选取0.1~0.8),即如下公式
这里写图片描述
(2)自适应调节学习率
(3)引入陡度因子

通常BP神经网络在训练之前会对数据归一化处理,即将数据映射到更小的区间内,比如[0,1]或[-1,1]。

以上内容来自下面两位博客:

http://blog.csdn.net/acdreamers/article/details/44657439
http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html

0 0
原创粉丝点击