第五章 神经网络理论基础
(Artificial Neural Networks, ANN )
主要内容
神经网络的基本原理
单神经元网络
感 知 器
BP网络及其算法
RBF神经网络
回归神经网络
人工神经网络
Artificial Neural Network
人工神经网络(简称神经网络,Neural Network,NN)是模拟人脑思维方式的一种数学模型。它可以用电子或光电元件实现,也可以用软件在计算机上仿真。
NN是一种具有大量连接的并行分布式处理器,它具有通过学习获取知识并解决问题的能力,且知识是分布储存在连接权中。
神经网络的基本原理
神经网络的生物背景
神经网络的模型分类
神经网络的学习方法
神经网络的特征
神经网络控制的研究领域
神经网络的发展
神经网络的生物背景
一、生物神经元结构理论基础
生物神经元 神经元(Neuron)又称神经细胞,是组成人脑的最基本单元,它能够接收并处理信息。
人脑大约由1011~1012个神经元组成,每个神经元又与104~105个神经元通过突触连接。因此,人脑是一个复杂的信息并行处理巨系统。
生物神经元在结构上由
细胞体(Cell body)
树突(Dendrite)
轴突(Axon)
突触(Synapse)
四部分组成,用来完成神经元间信息的接收、传递和处理。
树突和轴突负责传入和传出信息,兴奋性的冲动沿树突抵达细胞体,在细胞膜上累积形成兴奋性电位;相反,抑制性冲动到达细胞膜则形成抑制性电位。两种电位进行累加,若代数和超过某个阈值,神经元将产生冲动。
人类大脑与其他动物大脑的比较
生物神经网络
由多个生物神经元以确定方式和拓扑结构相互连接即形成生物神经网络。
生物神经网络的功能不是单个神经元信息处理功能的简单叠加。
神经元之间的突触连接方式和连接强度不同并且具有可塑性,这使神经网络在宏观呈现出千变万化的复杂的信息处理能力。
二、人工神经元模型
在对生物神经元的主要功能和特性进行抽象的基础上,模仿生物神经元产生冲动的过程,可以建立一个典型的人工神经元数学模型。
Yi — 神经元的输出;θi — 神经元的阈值
X、U— 外部输入; wi,vi — 连接权系数;
F [·] — 激励函数
…
…
wi1
wij
vi1
vik
X1
Xj
U1
Uk
F [·]
Ui
θi
Yi
∑
求和单元
激励函数
阈值
人工神经元的数学模型
人工神经元模型的三个基本要素
一组连接权(权值大小表示连接强度,“+”表示激励,“--”表示抑制);
一个求和单元(用于求取各个输入信息的加权和);
一个非线性激励函数(起非线性映射作用,并限制神经元输出幅度在一定范围内)。
常用的激励函数
1)阈值型函数
2)饱和型函数
3)双曲函数
4)S型函数
5)高斯函数
三、人工神经网络
大量人工神经元经广泛互连,就构成人工神经网络。它可用来模拟神经系统的结构和功能。
人工神经网络是生物神经网络的一种模拟与近似。它主要从两个方面进行模拟。一是从生理结构和实现机理方面;二是从功能上加以模拟。
智能控制领域讨论的人工神经网络着重于功能上的模拟,即尽量是人工神经网络具有生物神经网络的学习、识别、控制等功能。
神经网络的发展
神经网络研究经历了兴起、低潮和重新崛起三个阶段。
1. 兴起(20世纪40年代)
— 1943年,美国心理学家McCulloch和数学家Pitts合作,发表了著名的“神经活动中所蕴含思想的逻辑运算”一文,首次提出了神经元和神经网络的数学模型,后经修正为著名的MP模型――阈值逻辑模型。
— 1949年,心理学家Hebb从心理学角度提出了Hebb学习法则;
—1958年, Rosenblatt提出了著名的感知器模型(Perceptron)。
—1962年,Widrow和Hoff提出了自适应性神经网络,并提出了 学习规则。
神经元被看成逻辑元件,由此把脑的思维过程视为一个可操作过程,即认为任何复杂的思想都可以还原为基本逻辑电路的基本操作的组合。
这种纯粹用硬件结构来模拟人类智能的方法,即结构主义的仿生学方法很快陷入困境。
原因:
对大脑的认识还并不清楚;
没有条件对已有认识进行结构模拟;
计算机的发展水平还难以对感知机网络进行仿真分析。
2. 低潮(20世纪60年代中期)
简单的线性感知机的功能有限,不能实现“异或”的逻辑关系。要解决这个问题,必须加入隐层结点。但对于多层网络,如何找到有效的学习算法是难于解决的问题。
因此,整个70年代神经网络的研究处于低潮。
3. 重新崛起(20世纪80年代)
— 1982年,J. Hopfield提出循环网络。
用Lyapunov函数作为网络性能判定的能量函数,建立ANN稳定性的判别依据;
阐明了ANN与动力学的关系;
用非线性动力学的方法来研究ANN的特性;
指出信息被存放在网络中神经元的联接上;
— 1984年, J. Hopfield设计研制了后来被人们称为Hopfield网的电路。较好地解决了著名的TSP问题,找到了最佳解的近似解,引起了较大的轰动。
— 1985年,UCSD的Hinton、Sejnowsky、Rumelhart等人所在的并行分布处理(PDP)小组的研究者在Hopfield网络中引入了随机机制,提出所谓的Boltzmann机。
— 1986年,并行分布处理小组的Rumelhart等研究者重新独立地提出多层网络的学习算法——BP算法,较好地解决了多层网络的学习问题。
— 国内首届神经网络大会于1990年12月在北京举行。
建立在联结主义基础上的神经网络在结构上打破了原有模型“神经元数量少而且联结简单”的局限性,追求具有一定规模、特别是具有复杂灵活联结关系的网络。
每个神经元都是一个多输入单输出的非线性运算单元,神经元之间的突触强度或权重大小可以根据需要在0到1之间调整;0表示不联结,1表示全联结,其他数值表示处于中间状态的联结强度。
因此,只要调整这些权重就可以改变网络的实际拓扑结构与行为。
通过调整权重来改变整个网络的联结关系,从而改变网络的功能,就是“联结主义”概念的基本内涵。
神经网络研究中的联结主义,使神经网络在向人脑神经网络的自学习、自组织、自适应的功能方面靠近了一大步。
揭示大脑的奥秘、阐明智能的本质始终是神经网络研究追求的目标。
神经网络的分类
根据网络的拓扑结构(即连接方式)的不同,神经网络主要分为三类:
前馈网络
反馈网络
自组织网络
(1)前馈网络
神经元分层排列,组成输入层、隐含层和输出层。每一层的神经元只接受前一层神经元的输入。输入模式经过各层的顺次变换后,由输出层输出。在各神经元之间不存在反馈。
从系统观点看,前馈网络是一种静态非线性映射,它是学习型网络,因而它的分类能力和模式识别能力较强!
(2)反馈网络
该网络结构在输出层到输入层存在反馈,即每一个输入节点都有可能接受来自外部的输入和来自输出神经元的反馈。这种神经网络是一种反馈动力学系统,它需要工作一段时间才能达到稳定。
稳定性是反馈网络中最重要的问题之一!如果能找到网络的Lyapunov函数,则能保证网络从任意初始状态都能收敛到局部最小点。
Hopfield神经网络是反馈网络中最简单且应用最广泛的模型,它具有联想记忆的功能,如果将Lyapunov函数定义为寻优函数,Hopfield神经网络还可以解决寻优问题。
(3) 自组织网络
网络结构如图所示。Kohonen网络是最典型的自组织网络。Kohonen认为,当神经网络在接受外界输入时,网络将会分成不同的区域,不同区域具有不同的响应特征,即不同的神经元以最佳方式响应不同性质的信号激励,从而形成一种拓扑意义上的特征图,该图实际上是一种非线性映射。这种映射是通过无监督的自适应过程完成的,所以也称为自组织特征图。
Kohonen网络通过无导师的学习方式进行权值的学习,稳定后的网络输出就对输入模式生成自然的特征映射,从而达到自动聚类的目的。
神经网络的学习方法
神经网络能够通过对样本的学习训练,不断改变网络的连接权值以及拓扑结构,以使网络的输出不断地接近期望的输出。这一过程称为神经网络的学习或训练,其本质是可变权值的动态调整。
人工神经网络最具有吸引力的特点是它的学习能力。
1962年,Rosenblatt给出了人工神经网络著名的学习定理:人工神经网络可以学会它可以表达的任何东西。
人工神经网络的学习过程就是对它的训练过程。
神经网络学习算法是神经网络智能特性的重要标志,神经网络通过学习算法,实现了自适应、自组织和自学习的能力。
目前神经网络的学习方式有多种,按有无导师分类,可分为:
有导师学习(Supervised Learning)
无导师学习(Unsupervised Learning)
再励学习(Reinforcement Learning)
有导师的学习(监督学习)
网络的输出和期望的输出(即导师信号)进行比较,然后根据两者之间的差异调整网络的权值,最终使差异变小。
无导师的学习(非监督学习)
在无导师的学习方式中,系统完全按照输入数据的某些统计规律来调节自身参数和结构,以表示外部输入的某种固有特性(如聚类、统计分布特性等),使网络最终具有模式分类等功能。
再励学习(强化学习)
这种学习介于上述两种学习方式之间,外部环境对系统输出结果只给出评价信息(奖或罚),而不是给出正确答案。
学习系统通过强化那些受奖励的动作来改善自身的性能。它最适合控制系统应用领域。
学习系统
环境
输出
输入
动作
状态
评价
神经网络学习算法(学习规则)
(1)Hebb学习规则
Hebb学习规则是一种联想式学习算法。生物学家Hebb基于对生物学和心理学的研究,认为“当某一连接两端的神经元同步激活时,连接强度应增强,反之应减弱”。
这一论述的数学描述被称为Hebb学习规则。
其中, 为连接从神经元 到神经元 的当前权值, 和 为神经元的激活水平。
Hebb学习规则是一种无导师的学习方法,它只根据神经元连接间的激活水平改变权值,因此,这种方法又称为相关学习或并联学习。
(2)Delta(δ)学习规则
令 yk(n) 为输入 xk(n) 时,神经元 k 在 n 时刻的实际输出,dk(n) 表示应有的输出(可由训练样本给出),则误差信号可写为:
δ学习的最终目的是使某一基于误差信号的目标函数达到最小,以使网络的实际输出最逼近于期望输出。定义目标函数为:
这时学习就成为一个典型的最优化问题。用 J 在时刻 n 的瞬时值ξ(n) 代替 J,即
问题变为求对目标函数对权值的极小值。根据梯度下降法可得
其中,η——学习步长;f( · )为激活函数。
神经网络的特征
神经网络具有以下几个特征:
(1)能逼近任意非线性函数;
(2)信息的并行分布式处理与存储;
(3)可以多输入、多输出;
(4)便于用超大规模集成电路(VISI)或光学集成电路系统实现,或用现有的计算机技术实现;
(5)能进行学习,以适应环境的变化。
神经网络控制的研究领域
(1)基于神经网络的系统辨识
① 将神经网络作为被辨识系统的模型,可在已知常规模型结构的情况下,估计模型的参数。
② 利用神经网络的线性、非线性特性,可建立线性、非线性系统的静态、动态、逆动态及预测模型,实现非线性系统的建模和辨识。
(2) 神经网络控制器
神经网络作为实时控制系统的控制器,对不确定、不确知系统及扰动进行有效的控制,使控制系统达到所要求的动态、静态特性。
(3) 神经网络与其他算法相结合
将神经网络与专家系统、模糊逻辑、遗传算法等相结合,可设计新型智能控制系统。
(4) 优化计算
在常规的控制系统中,常遇到求解约束优化问题,神经网络为这类问题的解决提供了有效的途径。
目前,神经网络控制已经在多种控制结构中得到应用,如PID控制、模型参考自适应控制、前馈反馈控制、内模控制、预测控制、模糊控制等。
单神经元网络
单神经元模型
图中 为神经元的内部状态, 为阈值,
为输入信号, , 为表示从单
元 到单元 的连接权系数, 为外部输入信号。
单神经元模型可描述为:
通常情况下,取
即
常用的神经元非线性特性有以下四种:
(1)阈值型
阈值型函数
(2)分段线性型
分段线性函数
(3)Sigmoid函数型
Sigmoid函数
单神经元自适应PID控制器
由具有自学习和自适应能力的单神经元构成的单神经元自适应PID控制器,不但结构简单,而且能适应环境变化,有较强的鲁棒性。
单神经元自适应控制器通过对权系数的调整来实现自适应、自组织功能。
权系数的调整可以按照不同的学习规则实现。
无监督的Hebb学习规则
有监督的Delta学习规则
有监督的Hebb学习规则
有监督的Hebb学习规则
感知器
感知器(Perceptron)是一个具有单层计算神经元的前馈神经网络,由线性阈值单元组成。
感知器特别适用于简单的模式分类问题(线性可分),也可用于基于模式分类的学习控制和多模态控制中。
一、单层感知器网络
y1
y2
ym
x1
x2
xn
w11
w12
w13
wmn
wm1
yj
x1
x2
wj1
wj2
若有n个输入样本xi(i=1,2,…,n),经过该感知器的输出yj只有两种可能,即1和-1,从而说明它将输入模式分为两类。
线性可分与线性不可分
对于一般情况可描述为,已知输入输出样本{xp,dp},如何设计感知器网络的连接权 ,以使该网络能实现正确的分类。也就是说,如何根据样本对连接权和阈值进行学习和调整。这里样本相当于“教师”,所以这是一个有监督的学习问题。
二、单层感知器的学习算法
(1) 给定一组权系数的初值wi (0) (i=0,1,2,…,n),为较小的随机非零值。
(2) 任取一组样本(xp,dp),计算感知器输出
(3) 调整权值:
t ——第t次调整权值;
η—— 学习率,在(0,1)区间取值,用于控制权值调整速度;
xpi —— 样本输入(训练信号);
dp —— 期望输出(教师信号);
yp(t) —— 实际输出。
(4) 选取另一组样本,并让t+1→t,返回步骤(2);
(5) 如果 则学习结束;否则,返回(3)。
该学习算法收敛的充要条件是输入样本是线性可分的;
学习速率的选取十分关键。
三、单层感知器网络的
MATLAB仿真
[例1] 简单的分类问题
0
0
1
1
输出矢量
+
+
+
输入矢量
对应于目标0的输入矢量用符号“o”表示,对应于目标1的输入矢量用符号“+”表示。
设一平面上的两类模式,如表所示:
采用两个输入,单输出的单个感知器神经元进行分类。
训练结束后得到的分类线将两类输入矢量分开。
P = [ ; 1 ];
T = [ 1 1 0 0 ];
% 初始化
[ R, Q ] = size (P);
[S, Q ] =size (T);
[W,b] = rands ( S, R )
max_epoch = 20;
% 表达式
B = cat(2,b,b,b,b); % b变成一个S×Q的矩阵B
A = hardlim ( W*P + B )
for epoch = 1 : max_epoch % 开始循环训练、修正权值过程
if all ( A == T ) % 当 A = T 时结束
epoch = epoch - 1;
break
end
% 学习
e = T - A;
dW = learnp([],P,[],[],[],[],e); %求权值的修正值
db = learnp(b,ones(1,S),[],[],[],[],e); %求偏差的修正值
W = W + dW; %修正后的权值
B = B + db; %修正后的偏差
A = hardlim ( W*P + B )% 计算权值修正后的网络输出
end
W =
b =
epoch = 1
W =
b =
A = 0 0 0 0
epoch = 2
W =
b =
A = 1 1 1 1
epoch = 3
W =
b =
A = 1 0 0 0
epoch = 4
W =
b =
A = 1 1 0 0
初始值
第1步调整值
第2步调整值
第3步调整值
第4步调整值
[例2] 多个感知器神经元的分类问题
输入样本有10组:
P=[ ;
];
要将输入样本分为4类,对应的目标向量为:
T=[1 1 1 0 0 1 1 1 0 0;
0 0 0 0 0 1 1 1 1 1];
输入向量:
与目标值00对应的输入向量用符号“o”表示;
与目标值01对应的输入向量用符号“*”表示;
与目标值10对应的输入向量用符号‘+”表示;
与目林值11对应的输入向量用符号“×”表示。
建立一个感知器网络,网络具有2输入,两个神经元。
输入样本位置分布图
训练结束后的分类结果
用训练好的感知器网络对输入向量p=[; ]进行分类。
[例3] 奇异样本对训练结果的影响
训练样本如表2、表3表示。
0
+
1
+
0
1
1
输出矢量
+
+
输入矢量
表 2
0
+
1
+100
-80
0
1
1
输出矢量
+
+
输入矢量
表 3
表2样本分类结果
表3样本分类结果
局部放大图
结果比较
65
6
训练步数
是
是
完成分类
表3中的
奇异样本
表2中的
正常样本
结论:
当训练样本中某组数据的数值远远大于其他输入数组时,训练时间增加;训练困难,很可能不能正确地进行分类。
[例4] 线性不可分输入向量
输入向量如下表4所示
0
+
0
0
+
0
1
1
输出矢量
+
+
输入矢量
表 4
0
+
1
0
0
1
1
输出矢量
+
+
+
输入矢量
表 2
与表2相比较
分类结果
Minsky等人通过对单层感知器的研究指出,单层感知器存在着局限性。
由于感知器的激活函数采用阈值函数,输出矢量只能取0或1,所以只能用它来解决简单的分类问题;
感知器只能对线性可分的输入矢量进行分类;
当输入矢量中有一个数比其他数都大或小很多时,可能导致较慢的收敛速度。
BP网络及其算法
1986年,Rumelhart等提出了一种利用误差反向传播训练算法的神经网络,简称BP网络(Back Propagation)。
该网络是一种单向传播的多层前向网络,系统地解决了多层网络中隐含单元连接权值的学习问题。
如果网络的输入节点数为M,输出节点数为L,则此神经网络可看成是从M维空间到L维空间的映射。这种映射是高度非线性的。主要用于:
模式识别与分类
函数逼近(非线性系统建模)
数据压缩
主 要 内 容
BP网络结构
BP网络特点
BP网络的逼近
BP算法
BP网络的设计分析
BP网络的训练与设计
BP网络的应用举例
BP网络结构
含一个隐含层的BP网络结构如下图所示。
BP网络的特点
(1)一种多层网络,包括输入层、隐含层和输出层;
(2)层与层之间采用全互连方式,同一层神经元之间不连接;
(3)权值通过Delta学习算法进行调节;
(4)神经元激发函数为S函数,因此输出量为[0,1]的连续量;
(5)学习算法由正向传播和反向传播组成;
(6)层与层的连接是单向的,信息的传播是双向的。
BP网络的逼近
BP网络逼近的结构如下图所示:
k为网络的迭代步骤,u(k)和y(k)为逼近器的输入。BP为网络逼近器,y(k)为被控对象实际输出,yn(k)为BP的输出。
将系统输出 y(k) 及输入 u(k) 的值作为逼近器BP的输入,将系统输出与网络输出的误差作为逼近器的调整信号。
…
用于逼近的BP网络如下图所示。
BP算法
BP学习算法的基本原理是梯度最速下降法。它的中心思想是调整权值使网络总误差最小。
也就是采用梯度搜索技术,使网络的实际输出与期望输出的误差均方值为最小。
网络学习的过程是一种误差边向后传播边修正权值的过程。
BP算法的学习过程由正向传播和反向传播两个阶段组成。
在正向传播过程中,输入信息从输入层经隐层逐层处理,并传向输出层,每层神经元(节点)的状态只影响下一层神经元的状态。
如果在输出层不能得到期望的输出,则转至反向传播,将误差信号(理想输出与实际输出之差)按联接通路反向计算,由梯度下降法调整各层神经元的权值,使误差信号减小。
(1)正向传播:计算网络的输出
隐层神经元的输入为所有输入的加权之和:
隐层神经元的输出采用S函数激发,则隐层神经元的输出为:
输出层神经元的输出:
网络输出与理想输出误差为:
误差性能指标函数为:
现在的问题是如何调整连接权系数以使误差指标函数E最小。
优化计算的方法很多,比较典型的是采用一阶梯度法,及最速下降法。
(2)反向传播:采用δ学习算法,调整各层间的权值。
根据梯度下降法,权值的学习算法如下:
输出层及隐层的连接权值学习算法为:
k+1时刻网络的权值为:
隐层及输入层连接权值学习算法为:
其中
k+1时刻网络的权值为:
学习速率,
如果考虑上次权值对本次权值变化的影响,需要加入动量因子 ,此时的权值为:
其中, 为动量因子, 。
BP算法的程序实现
1)初始化;
4)计算各层误差信号;
5)调整各层权值;
6)检查是否对所有样本完成一次
轮训;
7)检查网络总误差是否达到精
度要求。
2)输入训练样本对X Xp、d dp
计算各层输出;
3)计算网络输出误差;
初始化
V
、
W
、
E
min
,
、
η
q=1
,
p=1
,E=0
输入样本,计算各层输出:
m
2
1
j
f
y
T
j
j
,...,
,
),
(
=
=
X
V
l
2
1
k
f
o
T
j
k
,...,
,
),
(
=
=
Y
W
计算误差:
å
å
=
=
-
=
P
1
p
l
1
k
2
k
k
o
d
2
1
E
)
(
计算各层误差信号:
l
2
1
k
o
o
1
o
d
k
k
k
k
,...,
,
,
)
)(
(
δ
o
k
=
-
-
=
m
2
1
j
y
y
1
w
j
j
l
1
k
jk
o
k
y
j
,...,
,
)
)(
(
=
-
=
å
=
d
d
调整各层权值:
m
1
0
j
l
2
1
k
j
y
o
k
jk
w
jk
w
,...,
,
,...,
,
,
,
=
=
+
Ü
hd
n
1
0
x
m
2
1
j
x
v
v
i
y
j
ij
ij
,...,
,
,...,
,
,
=
=
+
Ü
hd
Y
p
增
1
,
q
增
1
p
<
P
?
N
N
E=0,p=1
E<E
min
Y
结束
由上述推导可见,该算法是反向递推(Back Propagation)计算的。因而,通常称该多层前馈网络为BP网络。
由于网络采用的是全局逼近的方法,所以BP网络具有较好的泛化能力。
经过训练的BP网络,对于不是样本集中的输入也能给出合适的输出,该性质称为泛化(generalization)功能。从函数拟合的角度,它说明BP网络具有插值功能。
BP网络的优缺点
BP网络的优点为:
(1)只要有足够多的隐层和隐层节点,BP网络可以逼近任意的非线性映射关系;
(2)BP网络的学习算法属于全局逼近算法,具有较强的泛化能力。
(3)BP网络输入输出之间的关联信息分布地存储在网络的连接权中,个别神经元的损坏只对输入输出关系有较小的影响,因而BP网络具有较好的容错性。
BP网络的主要缺点为:
(1)待寻优的参数多,收敛速度慢;
(2)目标函数存在多个极值点,按梯度下降法进行学习,很容易陷入局部极小值;
(3)难以确定隐层及隐层节点的数目。目前,如何根据特定的问题来确定具体的网络结构尚无很好的方法,仍需根据经验来试凑。
BP网络学习算法的改进
引入动量项
该方法所加入的动量项实质上相当于阻尼项,它减少了学习过程的振荡趋势,改善了收敛性,这是目前应用比较广泛的一种改进算法。
变步长法
当连续两次迭代的梯度方向相同时,表明下降太慢,可使步长加倍;否则,使步长减半。该方法中的步长在学习过程自适应进行调整,因此对于不同的连接权系数实际采用了不同的学习速率。
[例] BP网络完成函数逼近
隐含层5个神经元,输出层1个神经元;
隐含层的激活函数取S型函数;
输出层的激活函数取线性函数;
w11 =
w12 =
b11 =
b12 =
w21 =
w22 =
b21 =
b22 =
训练前网络参数
训练后网络参数
.
.
.
TRAINBP: 660/1000 epochs, SSE = .
TRAINBP: 665/1000 epochs, SSE = .
TRAINBP: 670/1000 epochs, SSE = .
TRAINBP: 675/1000 epochs, SSE = .
TRAINBP: 680/1000 epochs, SSE = .
TRAINBP: 685/1000 epochs, SSE = .
TRAINBP: 690/1000 epochs, SSE = .
TRAINBP: 695/1000 epochs, SSE = .
TRAINBP: 700/1000 epochs, SSE = .
TRAINBP: 705/1000 epochs, SSE = .
TRAINBP: 710/1000 epochs, SSE = .
TRAINBP: 712/1000 epochs, SSE = .
采用具有自适应学习率的变步长学习方法:
TRAINBPX: 40/1000 epochs, lr = , SSE = .
TRAINBPX: 45/1000 epochs, lr = , SSE = .
TRAINBPX: 50/1000 epochs, lr = , SSE = .
TRAINBPX: 55/1000 epochs, lr = , SSE = .
TRAINBPX: 60/1000 epochs, lr = , SSE = .
TRAINBPX: 65/1000 epochs, lr = , SSE = .
TRAINBPX: 70/1000 epochs, lr = , SSE = .
TRAINBPX: 75/1000 epochs, lr = , SSE = .
TRAINBPX: 80/1000 epochs, lr = , SSE = .
TRAINBPX: 84/1000 epochs, lr = , SSE = .
训练后的网络具有泛化能力:
输入样本:
x=[- - ];
网络输出:
y =[ ]
[例] BP网络模式识别
1
0
1
0
0
0
0
1
0
0
1
0
0
1
输出
输入
训练用标准样本为:
BP网络结构为: 3-6-2
学习速率取;动量因子取。
训练前:
w1 =
训练后:
w1 =
输入层到隐含层的网络权值
训练后:
w2 =
训练前:
w2 =
隐含层到输出层的网络权值
样本训练的收敛过程
测试样本及结果
输 出
输 入
BP网络的设计分析
在进行BP网络设计前,一般应从网络的层数、每层中的神经元个数、初始值以及学习方法等方面来进行考虑。
下面首先分析BP网络的结构特征,然后结合MATLAB讨论一下相关的分析设计问题。
(1) 网络层数
理论上早已证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数。增加层数主要可以更近一步的降低误差,提高精度,但同时它使网络复杂化,从而增加了网络权值的训练时间。
而误差精度的提高实际上也可以通过增加隐含层中的神经元数目来获得,其训练效果也比增加层数更容易观察和调整,所以一般情况下,应优先考虑增加隐含层中的神经元数。
(2) 隐含层的神经元数量
究竟选取多少个隐含节点才合适?
这在理论上并没有一个明确的规定。在具体设计时,比较实际的做法是通过对不同神经元数进行训练、比较对比,然后适当地加上一点余量。
(3) 初始权值的选取
由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛以及训练时间的长短关系很大。
如果初始值太大,使得加权后的输入落在激活函数的饱和区,
从而从而使得调节过程几乎停顿下来。
所以,一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节。
一般取初始权值为[-1,+1]之间的随机数。
(4) 学习速率
学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定,但小的学习速率将会导致训练较长,收敛速度很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性,学习速率的选取范围在 ~ 之间。
和初始权值的选取过程一样,在一个神经网络的设计中,网络要经过几个不同学习速率的训练,通过观察每一次训练后的误差平方和∑e2的下降速率来判断所选定的学习速率是否合适。
如果∑e2下降很快,则说明学习速率合适;
如果∑e2出现振荡现象,则说明学习速率过大。
对于一个具体网络都存在一个合适的学习速率。但对于较复杂网络,在误差曲面的不向部位可能需要不向的学习速率。为了减少寻找学习速率的训练次数以及训练时间,比较合适的方法是采用变化的自适应学习速率,使网络的训练在不向的阶段自动设置不同学习速率的大小。
(5) 期望误差的选取
在设计网络的训练过程中,期望误差值也应当通过对比训练后确定一个合适的值。
这个所谓的“合适”,是相对于所需要的隐合层的节点数来确定,因为较小的期望误差值是要靠增加隐含层的节点,以及训练时间来获得的。
一股情况下,作为对比,可以同时对两个不同期望误差值的网络进行训练,最后通过综合因素的考虑来确定采用其中一个网络。
BP网络的训练及设计
为了训练一个BP网络,需要计算网络加权输入矢量、输出和误差矢量,然后求出误差平方和。
当所训练矢量的误差平方和小于误差目标,训练则停止,否则在输出层计算误差变化,且采用反向传播学习规则来调整权值,并重复此过程。
当网络完成训练后,对网络输入一个不是训练集合中的矢量,网络将以泛化方式给出输出结果。
! 在编写网络的设计程序之前,必须首先根据具体问题给出的输入矢量与目标矢量,并选定所要设计的神经网络的结构,其中包括以下内容:
① 网络层数;
② 每层的神经元数;
③ 每层的激活函数。
BP网络的训练步骤(2层网络):
(1)用小的随机数对每一层的权值W和偏差B初始化,并进行以下参数的设定或初始化:
① 期望误差最小值mse;
② 最大循环次数;
③ 修正权值的学习速率lr(lr=~)
(2)用函数建立一个多层前向网络。例如:
Net=newcf(minmax(P),[5 1],{‘tansig’, ‘purelin’},’traingd’);
(3)使用net=train(net,P,T)来训练网络。
[例] 用于函数逼近的BP网络的设计。
有21组单输入矢量和相对应的目标矢量,试设计神经网络来实现这对数组的函数关系。
P=-1::1;
T=[ ];
目标矢量相对于输入矢量的图形
[解] 首先选择隐含层神经元为5。
clear;
clc;
P=-1::1;
P2=-1::1;
T=[ ...
...
];
plot(P,T,'r+');
[R,Q]=size(P);[S2,Q]=size(T);S1=5;
[W1,B1]=rands(S1,R);
[W2,B2]=rands(S2,S1); %权值和偏差值初始化
b1=[];b2=[];
b1=B1*ones(1,21);
b2=B2*ones(1,21);
a2=W2*tansig(W1*P2+b1)+b2;
A2=purelin(a2);
hold on
plot(P,A2) %绘制目标值和未训练前的网络输出值
hold off
disp('按任一键继续')
pause
初始网络的输出曲线
net=newcf(minmax(P),[5,1],{'tansig','purelin'},'traingd'); %创建两层前向反馈网络
=7000; %初始化训练次数
=-004; %初始化误差值
= ; %学习速率
[net,tr]=train(net,P,T); %训练网络
Y=sim(net,P) ; %计算结果
plot(P,Y,'b-')
hold on
plot(P,T,'r+');
hold off
训练结束网络输出结果
TRAINGD, Epoch 0/7000, MSE Gradient
TRAINGD, Epoch 25/7000, MSE Gradient
TRAINGD, Epoch 50/7000, MSE Gradient
训练10次的结果
训练50次的结果
训练500次的结果
训练1000次的结果
训练2000次的结果
训练3000次的结果
训练4000次的结果
训练5000次的结果
训练6000次的结果
训练7000次的结果
训练结束网络误差记录
方法二
net=newcf(minmax(P),[5,1],{'tansig','purelin'},'traingd'); %创建两层前向回馈网络
y1=sim(net,P);
figure,plot(P,T,'r+',P,y1,'--')
title('没有训练的网络仿真结果');
xlabel('时间');ylabel('仿真输出-- 原函数+');
=5000; %初始化训练次数
=-004; % 初始化误差值
= ;
[net,tr]=train(net,P,T); %训练网络
Y=sim(net,P) ; %计算结果
figure,plot(P,Y,'b-')
Hold on
plot(P,T,'r+');
hold off
BP网络的应用举例
BP网络应用于大气环境质量关评价
依据国标GB3095-82所提供的大气环境质量标准数据,建立神经网络环境质量监督模型。
输入模式为总悬浮物微粒、飘尘、二氧化硫、氯氧化物、一氧化碳和光合剂6种评价指标的日平均浓度和随机抽取浓度。
中间层为一层,3个神经元。
输出层分别用、、代表大气环境质量分级(输出层也可以用三个神经元001、010、100来表示分级)。
利用依次建立的BP网络模型,通过有导师的学习训练,就可对中国各地区的环境质量进行分类和识别、判断其属于哪一类标准。
一级
C市
三级
B市
三级
A市
三级
二级
一级
时均
随机
日均
随机
日均
随机
日均
随机
日均
随机
日均
光合剂
CO
氮氧化物
SO2
飘尘
总悬浮物微粒
标准分级
实际输出
希望输出
输入模式(浓度限制,毫克/标准立方米)
国标提供的大气环境评价数据,即训练样本。
利用该建模评价方法,可推广到工作间空气、工业废气排放等评价中。
RBF神经网络
1985年,Powell提出了多变量插值的径向基函数 (Radial Basis Function,RBF)方法。 和在80年代末提出将RBF应用于神经网络神经网络设计,从而构成了RBF神经网络。
常用径向基函数RBF
函数
sigmoidal函数
multiquadrics 函数
径向基函数神经网络是具有单隐层的三层前馈网络。由于它模拟了人脑中局部调整、相互覆盖接收域(或称感受野-Receptive Field)的神经网络结构,因此,RBF网络是一种局部逼近网络,已证明它能任意精度逼近任意连续函数。
BP网络与RBF网络的区别
收敛速度快,避免局部极小
收敛速度慢,易陷入局部极小
局部逼近
全局逼近
隐层使用径向基函数,其值在输入空间中有限范围内为非零值。
隐层使用Sigmoid函数,其值在输入空间中无限大的范围内为非零值。
不同点
学习过程类似;
能以任意精度逼近任意连续函数
相同点
RBF神经网络
BP神经网络
网络类型
RBF网络模型
输入层
隐含层
输出层
输入层: 将输入信号传递到隐含层
隐含层:通过高斯核函数作用,将输入信号直接(即不通过权连接)非线性映射到隐空间
输出层:隐含层各个单元输出线性加权求和,线性映射到输出空间
高斯基函数
核函数对输入信号在局部产生响应,即当输入信号靠近核函数的中央范围时,隐含层节点产生较大的输出。
a = radbas(n);
采用高斯基函数具备以下优点:
表示形式简单,即使对于多变量输入也不增加 太多复杂性;
径向对称
光滑性好,任意阶导数存在;
解析性好,便于进行理论分析。
RBF网络的输入层到隐含层实现x→hj(x)的非线性映射,隐含层输出为:
RBF网络的隐含层到输出层实现uj(x)→yk的线性映射,输出层输出为:
RBF网络的学习过程
RBF网络的学习过程分为两个阶段:
(1)无教师学习阶段:
对所有的输入样本进行聚类,求得隐含层各节点的中心向量Cj和标准化常数 。
(2)有教师学习阶段:
根据输入样本,利用最小二乘原则,求出隐含层和输出层的权值Wkj。
由于隐含层到输出层的线性映射是一个线性方程组,则求权值就成为线性优化问题。因此,该问题有唯一确定的解,不存在BP网络中遇到的局部极小值问题,肯定能获得全局最小值 。
连接权值Wkj的学习算法为:
RBF网络设计
RBF网络的设计包括结构设计和参数设计:
结构设计——主要解决如何确定网络隐节点数的问题。
参数设计——包括3种参数
① 各基函数的数据中心设计
② 扩展常数设计
③ 输出节点的权值设计
数据中心取值方法
根据数据中心的取值方法,RBF网的设计方法可分为两类。
第一类方法:数据中心从样本输入中选取。径向基函数的扩展常数根据数据中心的散布而确定;
第二类方法:数据中心的自组织选择。常采用各种动态聚类算法对数据中心进行自组织选择,在学习过程中需对数据中心的位置进行动态调节。
扩展常数设计方法
将所有径向基函数的扩展常数设为
数据中心之间的最大距离
数据中心的数目
RBF网络数据中心的聚类算法
算法由两个阶段混合组成:
第一阶段常采用K-means聚类算法,其任务是用自组织聚类方法为隐层节点的径向基函数确定合适的数据中心,并根据各中心之间的距离确定隐节点的扩展常数。
第二阶段为监督学习阶段,一般采用梯度法进行训练,其任务是用有监督学习算法训练输出层权值。
RBF网络有关问题
从理论上讲,RBF网络可以逼近任何的连续非线性函数;
已证明RBF网络具有唯一最佳逼近的特性,且无局部最小;
求RBF网络隐含层节点的中心向量和标准化常数是一个困难问题;
如何选择合适的径向基函数,如何确定隐节点数量,以使网络学习达到要求的精度,目前还无解决方法,当前,用计算机选择、设计、再检验是一种通用手段。
RBF网路学习速度快,适于在线实时控制和非线性系统辨识。
回归神经网络
对角回归型神经网络(DRNN:Diagonal Recurrent Neural Network)是具有反馈的动态神经网络,该网络能够更直接更生动地反映系统的动态特性,它在BP网络基本结构的基础上,通过存储内部状态使其具备映射动态特征的功能,从而使系统具有适应时变特性的能力,DRNN网络代表了神经网络建模和控制的方向。
DRNN网络结构
回归元
DRNN网络是一个3层的网络,其中的输入层和输出层与静态网络相同,没有回归元,作用函数为线性函数;隐含层中每一个神经元都是带有一步自反馈的回归元,作用函数为Sigmoid 函数。
DRNN网络工作原理
DRNN网络是一种三层前向网络,其隐含层为回归层。正向传播是输入信号从输入层经隐层传向输出层,若输出层得到了期望的输出,则学习算法结束;否则,转至反向传播。反向传播就是将误差信号(理想输出与实际输出之差)按联接通路反向计算,由梯度下降法调整各层神经元的权值和阈值,使误差信号减小。
网络输出层的输出为
网络回归层的输出为
网络回归层的输入为
DRNN 在隐含层的节点具有一个滞后一步的自反馈,正是这个自反馈使DRNN可以实现动态映射,为系统的动态建模提供了保证。
DRNN 是Elman 网络的一种简化形式,当隐含层的神经元接受本层所有神经元的反馈时,即成为全连接回归神经网络,即Elman 网络。
逼近误差为:
性能指标函数为:
WI、WD 和WO 分别表示输入层、对角回归层和输出层的权值阵,权值调整的学习算法采用梯度下降法。
输出层权值调整:
输入层权值调整:
回归层权值调整:
由于WD 为一个主对角线的方阵,所以将此
种结构的网络称为对角回归网络。
其中回归层神经元取双S函数为
其中, 分别为输入层、回归层和输出层的学习速率, 为惯性系数。
DRNN网络的特点
DRNN神经网络具有内部的反馈和权值连接,在未知系统结构和阶次的情况下,仅选取上一个历史时刻的参数作为输入向量,即可通过内部回归神经元的权值的调整实现非线性系统的动态映射,表现出很强的动态映射能力,同时网络权值调节的计算量很小。
采用DRNN 网络对非线性动态系统的辨识要好于采用前向神经网络,学习的速度和精度比传统的BP 网络有很大的提高。
3. 网络权值的调整是任何神经网络的核心问题,DRNN 也不例外。为提高收敛速度, 可采用带动量项的改进算法, 或采用学习步长随着学习的进行不断变化的算法, 一定程度上可以提高其收敛性。
无监督的Hebb学习规则:△w=n*u(k)*x(k)
有监督的Dleta学习规则:△w=n*u(k)*e(k)
有监督的Hebb学习规则:△w=n*e(k)*u(k)*x(k)
输入向量: X=(x1,x2,…,xi,…,xn)T
隐层输出向量: Y=(y1,y2,…,yj,…,ym)T
输出层输出向量: O=(o1,o2,…,ok,…,ol)T
期望输出向量:d=(d1, d2,…,dk,…,dl)T
输入层到隐层之间的权值矩阵:V=(V1,V2,…,Vj,…,Vm)
隐层到输出层之间的权值矩阵用:W=(W1,W2,…,Wk,…,Wl)
基函数φ为非线性函数,训练数据点Xp是φ的中心。基函数以输入空间的点X与中心Xp的距离作为函数的自变量。
由于距离是径向同性的,故函数φ被称为径向基函数。
曲线图中的中心点为C=0。
m----隐含层节点数;L----输出层节点数
因为当x远离中心向量C时,u(x)非常小。实际上只有当u(x)大于某一数值(如)时才对权值Wkj进行修改,因此RBF网络具有学习收敛快的优点。