神经网络与遗传算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.4 神经网络与遗传算法简介
在本节中,我们将着重讲述一些在网络设计、优化、性能分析、通信路由优化、选择、神经网络控制优化中有重要应用的常用的算法,包括神经网络算法、遗传算法、模拟退火算法等方法。用这些算法可以较容易地解决一些很复杂的,常规算法很难解决的问题。这些算法都有着很深的理论背景,本节不准备详细地讨论这些算法的理论,只对算法的原理和方法作简要的讨论。
5.4.1 神经网络
1. 神经网络的简单原理
人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connectionist Model),是对人脑或自然神经网络(Natural Neural Network)若干基本特性的抽象和模拟。人工神经网络以对大脑的生理研究成果为基础的,其目的在于模拟大脑的某些机理与机制,实现某个方面的功能。所以说, 人工神经网络是由人工建立的以有向图为拓扑结构的动态系统,它通过对连续或断续的输入作出状态相应而进行信息处理。它是根据人的认识过程而开发出的一种算法。假如我们现在只有一些输入和相应的输出,而对如何由输入得到输出的机理并不清楚,那么我们可以把输入与输出之间的未知过程看成是一个“网络”,通过不断地给这个网络输入和相应的输出来“训练”这个网络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定一个输入,网络便会根据自己已调节好的权值计算出一个输出。这就是神经网络的简单原理。
2. 神经元和神经网络的结构
如上所述,神经网络的基本结构如图5.35所示:
隐层隐层2
1
图5.35
神经网络一般都有多层,分为输入层,输出层和隐含层,层数越多,计算结果越精确,但所需的时间也就越长,所以实际应用中要根据要求设计网络层数。神经网络中每一个节点叫做一个人工神经元,他对应于人脑中的神经元。人脑神经元由细胞体、树突和轴突三部分组成,是一种根须状蔓延物。神经元的中心有一闭点,称为细胞体,它能对接受到的信息进行处理,细胞体周围的纤维有两类,轴突是较长的神经纤维,是发出信息的。树突的神经
纤维较短,而分支众多,是接收信息的。一个神经元的轴突末端与另一神经元的树突之间密切接触,传递神经元冲动的地方称为突触。经过突触的信息传递是有方向性的,不同的突触进行的冲动传递效果不一样,有的使后一神经元发生兴奋,有的使其发生抑制。
由人脑神经元的工作机理,人们构造了人工神经元的数学模型,它是人脑的模拟和简化,如图5.36所示。
2
x n
x y
树突
突触
细胞体
轴突
图5.36 McCulloch-Pitts 网络
在图中,i w 是表示神经元对信息i x 的感知能力,称为关联权,()f z 称为输出函数或激活函数,采用激活函数的人工神经网络也称阈网络。McCulloch-Pitts 输出函数定义为
()1
sgn(),n
i i i y f z w x θ===-∑
其中,sgn()⋅为符号函数,θ称为阈值。
一般来说,一个人工神经元有多个输入和一个输出,另外有一个激活函数,不同的激发函数对应了不同的网络,也决定了网络的用途。从方程可以看出,当 i w 确定时,任给一组输入1,,i x i n •••=,,也就很容易得到输出。而现在我们的想法是:对给定的输入,确定权数i w ,使得通过方程计算出来的输出尽可能与实际值吻合,这即是学习的过程。学习也称为训练,指的是通过神经网络所在环境的刺激作用调整神经网络的权数i w ,使得神经网络对外部环境以一种新的方式作出反应。学习分为有指导学习和无监督学习:在有正确输入输出数据条件下调整和确定权数i w 的方法称为有指导学习;而在只知输入数据不知输出结果的前提下确定权数的方法称为无监督学习。人工神经网络的主要工作就是通过学习,建立模型和确定i w 的值。
神经网络按照网络结构和激发函数的不同可分为许多种,我们在此只对感知器、BP 网络及Hopfield 神经网络进行简介。
3.感知机
首先介绍单层前向神经网络。单层前向神经网络的模型结构如图5.37所示。
或用矩阵表示为
()T Y f W X θ=-
其中,()ij m n W w ⨯=为权系数矩阵,X Y θ,,分别为输入向量、输出向量及阈值向量。
确定权数ij w 的基本思想是修正ij w 使得输入输出偏差尽可能小。权的修正公式为:
(1)()(),()(())ij W t W t W t W t w t δδδ+=+=,()
()(()())()
ij t j j i m n
w t d t y t x t δε⨯=-,其中,
()()1,,1,,i j x t d t i m j n ••••••==,,,分别表示第t 组用于学习的输入和期望输出数据,t
ε称为学习效率,用于控制调整速度。与权值修正原理类似,阈值修正公式可假设为:
1(1)()(),()(()())t j j n t t t t d t y t θθδθδθε⨯+=+=-,通过更新权数和阈值使得输入输出偏差
趋于零。若将激活函数()f ⋅取为阶跃函数,上述思想即是感知机原理。
1x x x 1n
2
y 输入层
输出层
图5.37
由此,我们给出感知机学习规则算法步骤为:
用t 表示学习步骤的序号,0t =表示学习前的神经网络的初始状态。 第1步:赋初值。
给网络上权数和阈值赋初值,如00ij i w θ==,;
第2步:计算样本实际输出。 选择一个样本作为网络输入,计算样本在目前神经网络中的实际输出。如,对于第p 个样本,感知机输出为:
1()(()())n
Y p Y p Y p •••=,,, 其中,()(
)1,,i ij
j
i Y p f w x
i n θ•••=-=∑,
第3步:计算误差。
计算感知机输出的实际结果与期望输出之差:()()t D p Y p δ=- 第4步:权数修正。
如果0t δ=,则转第2步,否则调整权值: