神经网络与遗传算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5步:循环利用 T 个学习样本,重复第2步~第4步,对网络权数进行调整,直到整个 训练集误差最小(网络达到稳定状态)。 当激活函数 f ( x )
1 时, 1 e x
dy k j dz k j
百度文库
k f (zk j 1, , nk ,代入①、②、③使计算可以得以 j )(1 f ( z j )),i 1, , nk 1,
y1k 1 k 1 y2 2 ( B )T , k k 1 ynk 1
k k dy1k dy2 dyn 其中, Bk diag k , k , , k k Wk 1Bk 1 。 dz nk dz1 dz2
Y ( p ) (Y1 ( p ), ,Y ( p )) , n
其中, Yi ( p ) f (
w x
ij
j
i ),i 1, , n
第3步:计算误差。 计算感知机输出的实际结果与期望输出之差: t D p Y p 第4步:权数修正。 如果 t 0 ,则转第2步,否则调整权值:
5.4.1 神经网络
1. 神经网络的简单原理 人工神经网络( Artificial Neural Networks, 简写为ANNs)也简称为神经网络(NNs) 或称作连接模型( Connectionist Model ) ,是对人脑或自然神经网络( Natural Neural Network)若干基本特性的抽象和模拟。人工神经网络以对大脑的生理研究成果为基础的, 其目的在于模拟大脑的某些机理与机制,实现某个方面的功能。所以说, 人工神经网络是由 人工建立的以有向图为拓扑结构的动态系统, 它通过对连续或断续的输入作出状态相应而进 行信息处理。 它是根据人的认识过程而开发出的一种算法。 假如我们现在只有一些输入和相 应的输出, 而对如何由输入得到输出的机理并不清楚, 那么我们可以把输入与输出之间的未 知过程看成是一个“网络”,通过不断地给这个网络输入和相应的输出来“训练”这个网 络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当 训练结束后,我们给定一个输入,网络便会根据自己已调节好的权值计算出一个输出。这就 是神经网络的简单原理。 2. 神经元和神经网络的结构 如上所述,神经网络的基本结构如图5.35所示:
图 5.35 神经网络一般都有多层,分为输入层,输出层和隐含层,层数越多,计算结果越精确, 但所需的时间也就越长,所以实际应用中要根据要求设计网络层数。 神经网络中每一个节 点叫做一个人工神经元,他对应于人脑中的神经元。人脑神经元由细胞体、树突和轴突三部 分组成,是一种根须状蔓延物。神经元的中心有一闭点,称为细胞体,它能对接受到的信息 进行处理,细胞体周围的纤维有两类,轴突是较长的神经纤维,是发出信息的。树突的神经 纤维较短,而分支众多,是接收信息的。一个神经元的轴突末端与另一神经元的树突之间密
1 , 这是因为S 1 e z
型函数有很好的函数特性,其效果又近似于符号函数,现主要讨论采用S型函数的多层前向 神经网络的学习方法。 假设有一个 K 层的神经网络,从第0层到第1层的原始输入向量、权矩阵、第1层神经元 接受向量和第1层输出向量以及它们之间的关系为:
1 1 z1 y1 x1 1 1 x z2 y2 2 X , W1 (w1 ) n0 n1 , Z1 W1T X , Y1 f (Z1 ) ij 1 1 xn0 zn1 yn1 第 k 1 层到第 k 层的权矩阵、神经元接受向量和输出向量以及它们之间的关系分别为:
第4步: 反向修正 W (t ) , 修正公式为:Wk (t 1) Wk (t ) Wk (t ),k K , K 1, ,1 ,
其中, Wk (t ) t
1 2
F (W ) (t ) wk ij nk 1nk
y1k 1 (t ) k 1 y2 (t ) t ( B (t )) T 。 k k 1 ynk 1 (t )
,Y (t ) ; 第2步:用学习数据 X (t ) 计算 Y1 (t ),Y2 (t ), k
T
第3步:计算
①
F (W ) w K ij nK 1nK
K
y1K 1 K 1 K K dy1K dy2 dyn y2 T , 2 ( BK ) BK diag K , K , , KK WK 1BK 1 dz nK dz1 dz2 K 1 y nK 1
z1k y1k k k z2 y2 T k Wk Yk 1 , Yk f (Z k ) Wk (wij )nk 1nk , Z k k k znk ynk
其中, yi f ( zi ) 。 我们先讨论单样本学习规则。学习规则是:确定 W ,使得
Wi ( p 1) Wi ( p ) Wi ( p ), Wi ( p ) t xi
第5步:若训练样本已完全输入或输出误差小于预设值,则学习结束;否则,转第2步 继续学习。 如果对给定的两类样本数据(通常就是用于学习的输入数据),在空间中可以用一条直线 (平面)将其分开,则称该样本数据是线性样本,否则称为非线性样本,对样本进行分类或 识别即属于人工神经网络的重要应用之一。 感知机可以识别二值逻辑加问题, 而不能识别异 或问题。对于非线性问题,可以用反向传播(BP)模型解决。 4. BP网络
K K T
其中, BK 1 d1 y1 , d 2 y2 , , d n K yn K ,WK 1 I 。
②
F (W ) w K 1 ij nK 2 nK 1
y1K 2 K 2 y2 2 ( BK 2 ) T , K 2 ynK 1
y f z sgn( wi x i ),
i 1
n
其中, sgn() 为符号函数, 称为阈值。 一般来说,一个人工神经元有多个输入和一个输出,另外有一个激活函数,不同的激 发函数对应了不同的网络,也决定了网络的用途。从方程可以看出,当 wi 确定时,任给一 组输入 xi,i 1, , n ,也就很容易得到输出。而现在我们的想法是:对给定的输入,确定 权数 wi ,使得通过方程计算出来的输出尽可能与实际值吻合,这即是学习的过程。学习也 称为训练,指的是通过神经网络所在环境的刺激作用调整神经网络的权数 wi ,使得神经网 络对外部环境以一种新的方式作出反应。 学习分为有指导学习和无监督学习: 在有正确输入 输出数据条件下调整和确定权数 wi 的方法称为有指导学习;而在只知输入数据不知输出结 果的前提下确定权数的方法称为无监督学习。 人工神经网络的主要工作就是通过学习, 建立 模型和确定 wi 的值。 神经网络按照网络结构和激发函数的不同可分为许多种,我们在此只对感知器、BP网 络及Hopfield神经网络进行简介。 3.感知机 首先介绍单层前向神经网络。单层前向神经网络的模型结构如图5.37所示。 或用矩阵表示为
Y f (W T X )
其中,W ( wij ) mn 为权系数矩阵, X ,Y, 分别为输入向量、输出向量及阈值向量。 确定权数 wij 的基本思想是修正 wij 使得输入输出偏差尽可能小。权的修正公式为:
W (t 1) W (t ) W (t ), W (t ) ( w ij(t )) , wij (t ) t (d j (t ) y j (t )) xi (t )
简化。 BP 网络的用途十分广泛,可用于以下方面:①函数逼近:用输入矢量和相应的输出矢 量训练一个网络逼近一个函数; ②模式识别: 用一个特定的输出矢量将它与输入矢量联系起 来;③分类:把输入矢量以所定义的合适方式进行分类;④数据压缩:减少输出矢量维数以 便于传输或存储。 5. Hopfield神经网络 前面介绍的感知机和BP网络都属于前向网络。前向网络结构简单、易于编程,但计算 能力不够强大。反馈神经网络是一个反馈动力学系统,具有更强的计算能力。其一般结构如 图5.39所示。
K 1 dy K 1 dy K 1 dyn K BK 1 diag 1K 1 , 2 , , W B K 1 K 1 K K dz dz dz 2 nK 1 1
③ k K 2 时,
F (W ) wk ij nk 1nk
k k
F (W ) ( D YK ) T ( D YK )
最小,其中 D (d1,d 2, ,d nK ) 为理想输出。 采用S型函数的前向多层神经网络的反推学习(BP)算法步骤如下: 第1步:选定学习的数组 { X (t ),D(t )},t 1, 2, , T ,随机确定初始权矩阵 W (0) ;
5.4 神经网络与遗传算法简介
在本节中,我们将着重讲述一些在网络设计、优化、性能分析、通信路由优化、选择、 神经网络控制优化中有重要应用的常用的算法,包括神经网络算法、遗传算法、模拟退火算 法等方法。用这些算法可以较容易地解决一些很复杂的,常规算法很难解决的问题。这些算 法都有着很深的理论背景, 本节不准备详细地讨论这些算法的理论, 只对算法的原理和方法 作简要的讨论。
图5.37 由此,我们给出感知机学习规则算法步骤为: 用 t 表示学习步骤的序号, t 0 表示学习前的神经网络的初始状态。 第1步:赋初值。 给网络上权数和阈值赋初值,如 wij 0,i 0 ; 第2步:计算样本实际输出。 选择一个样本作为网络输入,计算样本在目前神经网络中的实际输出。如,对于第 p 个 样本,感知机输出为:
图5.38 多层前向神经网络结构 BP网络应用得最为广泛,最为重要的一种神经网络。这种网络一般有多层,有输入层, 输出层和隐含层, 上一层的输出即是下一层的输入, 输出层所在的层数就是神经网络的层数。 一般的多层前向神经网络结构如图5.38所示。 在实际应用中, BP网络的激活函数一般采用 S型函数: f ( z )
切接触,传递神经元冲动的地方称为突触。经过突触的信息传递是有方向性的,不同的突触 进行的冲动传递效果不一样,有的使后一神经元发生兴奋,有的使其发生抑制。 由人脑神经元的工作机理,人们构造了人工神经元的数学模型,它是人脑的模拟和简 化,如图5.36所示。
图5.36 McCulloch-Pitts网络 在图中, wi 是表示神经元对信息 xi 的感知能力,称为关联权, f z 称为输出函数或 激活函数,采用激活函数的人工神经网络也称阈网络。McCulloch-Pitts输出函数定义为
m n
,其中,
xi (t ),d j (t ),i 1, , m,j 1, , n 分别表示第 t 组用于学习的输入和期望输出数据, t
称为学习效率,用于控制调整速度。与权值修正原理类似,阈值修正公式可假设为: 通过更新权数和阈值使得输入输出偏差 (t 1) (t ) (t ), (t ) t (d j (t ) y j (t )) n 1 , 趋于零。若将激活函数 f () 取为阶跃函数,上述思想即是感知机原理。