资源描述
遗传算法应用举例 例6.1 利用遗传算法求解区间[0,31]上的二次函数y=x2的最大值。
分析 原问题可转化为在区间[0, 31]中搜索能使y取最大值的点a的问题。那么,[0, 31] 中的点x就是个体, 函数值f(x)恰好就可以作为x的适应度,区间[0, 31]就是一个(解)空间 。这样, 只要能给出个体x的适当染色体编码, 该问题就可以用遗传算法来解决。
解 (1) 设定种群规模,编码染色体,产生初始种群。 将种群规模设定为4;用5位二进制数编码染色体;取下列个体组成初始种群S1: s1= 13 (01101), s2= 24 (11000) s3= 8 (01000), s4= 19 (10011) (2) 定义适应度函数, 取适应度函数:f (x)=x2 (3) 计算各代种群中的各个体的适应度, 并对其染色体进行遗传操作,直到适应度最高的个体(即31(11111))出现为止。
首先计算种群S1中各个体 s1= 13(01101), s2= 24(11000), s3= 8(01000), s4= 19(10011)
的适应度f (si) 。容易求得f (s1) = f(13) = 132 = 169, f (s2) = f(24) = 242 = 576 f (s3) = f(8) = 82 = 64,f (s4) = f(19) = 192 = 361再计算种群S1中各个体的选择概率。
选择概率的计算公式为
由此可求得P(s1) = P(13) = 0.14 ,P(s2) = P(24) = 0.49,P(s3) = P(8) = 0.06, P(s4) = P(19) = 0.31
● 赌轮选择法
在算法中赌轮选择法可用下面的子过程来模拟:① 在[0, 1]区间内产生一个均匀分布的随机数r。② 若r≤q1,则染色体x1被选中。 ③ 若qk-1<r≤qk(2≤k≤N), 则染色体xk被选中。 其中的qi称为染色体xi (i=1, 2, …, n)的积累概率, 其计算公式为
选择-复制 设从区间[0, 1]中产生4个随机数如下:
r1 = 0.450126, r2 = 0.110347 ,r3 = 0.572496, r4 = 0.98503
染色体
适应度
选择概率
积累概率
选中次数
s1=01101
169
0.14
0.14
1
s2=11000
576
0.49
0.63
2
s3=01000
64
0.06
0.69
0
s4=10011
361
0.31
1.00
1
于是,经复制得群体s1’ =11000(24), s2’ =01101(13),s3’ =11000(24),s4’ =10011(19)
交叉 设交叉率pc=100%,即S1中的全体染色体都参加交叉运算。设s1’与s2’配对,s3’与s4’配对。分别交换后两位基因,得新染色体: s1’’=11001(25), s2’’=01100(12) s3’’=11011(27), s4’’=10000(16)
变异 设变异率pm=0.001。这样,群体S1中共有 5×4×0.001=0.02位基因可以变异。 0.02位显然不足1位,所以本轮遗传操作不做变异。
于是,得到第二代种群S2: s1=11001(25)s2=01100(12),s3=11011(27), s4=10000(16)
第二代种群S2中各染色体的情况
染色体
适应度
选择概率
积累概率
估计的
选中次数
s1=11001
625
0.36
0.36
1
s2=01100
144
0.08
0.44
0
s3=11011
729
0.41
0.85
2
s4=10000
256
0.15
1.00
1
假设这一轮选择-复制操作中,种群S2中的4个染色体都被选中,则得到群体:
s1’=11001(25), s2’= 01100(12)s3’=11011(27), s4’= 10000(16)
做交叉运算,让s1’与s2’,s3’与s4’ 分别交换后三位基因,得s1’’ =11100(28), s2’’ = 01001(9)s3’’ =11000(24), s4’’ = 10011(19) 这一轮仍然不会发生变异。
于是,得第三代种群S3: s1=11100(28), s2=01001(9)s3=11000(24), s4=10011(19)
第三代种群S3中各染色体的情况
染色体
适应度
选择概率
积累概率
估计的
选中次数
s1=11100
784
0.44
0.44
2
s2=01001
81
0.04
0.48
0
s3=11000
576
0.32
0.80
1
s4=10011
361
0.20
1.00
1
设这一轮的选择-复制结果为: s1’=11100(28) s2’=11100(28)s3’=11000(24) s4’=10011(19) 做交叉运算,让s1’与s4’,s2’与s3’ 分别交换后两位基因,得
s1’’=11111(31), s2’’=11100(28) s3’’=11000(24), s4’’=10000(16)
这一轮仍然不会发生变异。
于是,得第四代种群S4:s1=11111(31), s2=11100(28)s3=11000(24), s4=10000(16)
显然,在这一代种群中已经出现了适应度最高的染色体s1=11111。于是,遗传操作终止,将染色体“11111”作为最终结果输出。 然后,将染色体“11111”解码为表现型,即得所求的最优解:31。 将31代入函数y=x2中,即得原问题的解,即函数y=x2的最大值为961。
Y
Y
y=x2
8 13 19 24 X
第一代种群及其适应度
y=x2
12 16 25 27 X
Y
第二代种群及其适应度
y=x2
9 19 24 28 X
Y
第三代种群及其适应度
y=x2
16 24 28 31 X
第四代种群及其适应度
例 6.2 用遗传算法求解TSP。
分析 由于其任一可能解—— 一个合法的城市序列,即n个城市的一个排列,都可以事先构造出来。于是,我们就可以直接在解空间(所有合法的城市序列)中搜索最佳解。这正适合用遗传算法求解。
(1)定义适应度函数 我们将一个合法的城市序列s=(c1, c2, …, cn, cn+1)(cn+1就是c1)作为一个个体。这个序列中相邻两城之间的距离之和的倒数就可作为相应个体s的适应度,从而适应度函数就是
(2)对个体s=(c1, c2, …, cn, cn+1)进行编码。但对于这样的个体如何编码却不是一件直截了当的事情。因为如果编码不当,就会在实施交叉或变异操作时出现非法城市序列即无效解。 例如,对于5个城市的TSP,我们用符号A、B、C、D、E代表相应的城市,用这5个符号的序列表示可能解即染色体。然后进行遗传操作。设 s1=(A, C, B, E, D, A),s2=(A, E, D, C, B, A)实施常规的交叉或变异操作,如交换后三位,得 s1’=(A,C,B,C,B,A), s2’=(A,E,D,E,D,A)或者将染色体s1第二位的C变为E,得 s1’’=(A, E, B, E, D, A)可以看出,上面得到的s1’, s2’和s1’’都是非法的城市序列。
为此,对TSP必须设计合适的染色体和相应的遗传运算。 事实上,人们针对TSP提出了许多编码方法和相应的特殊化了的交叉、变异操作,如顺序编码或整数编码、随机键编码、部分映射交叉、顺序交叉、循环交叉、位置交叉、反转变异、移位变异、互换变异等等。从而巧妙地用遗传算法解决了TSP。
四、遗传算法的特点与优势
◆遗传算法的主要特点 ——遗传算法一般是直接在解空间搜索, 而不像图搜索那样一般是在问题空间搜索, 最后才找到解。——遗传算法的搜索随机地始于搜索空间的一个点集, 而不像图搜索那样固定地始于搜索空间的初始节点或终止节点, 所以遗传算法是一种随机搜索算法。——遗传算法总是在寻找优解, 而不像图搜索那样并非总是要求优解, 而一般是设法尽快找到解, 所以遗传算法又是一种优化搜索算法。——遗传算法的搜索过程是从空间的一个点集(种群)到另一个点集(种群)的搜索,而不像图搜索那样一般是从空间的一个点到另一个点地搜索。 因而它实际是一种并行搜索, 适合大规模并行计算,而且这种种群到种群的搜索有能力跳出局部最优解。——遗传算法的适应性强, 除需知适应度函数外, 几乎不需要其他的先验知识。——遗传算法长于全局搜索, 它不受搜索空间的限制性假设的约束,不要求连续性, 能以很大的概率从离散的、多极值的、 含有噪声的高维问题中找到全局最优解。
◆遗传算法的应用:遗传算法在人工智能的众多领域便得到了广泛应用。例如,机器学习、聚类、控制(如煤气管道控制)、规划(如生产任务规划)、设计(如通信网络设计、布局设计)、调度(如作业车间调度、机器调度、运输问题)、配置(机器配置、分配问题)、组合优化(如TSP、背包问题)、函数的最大值以及图像处理和信号处理等等。另一方面,人们又将遗传算法与其他智能算法和技术相结合,使其问题求解能力得到进一步扩展和提高。例如,将遗传算法与模糊技术、神经网络相结合,已取得了不少成果。
7.1.1 生物神经元模型
特点:(1)每个神经元虽然都十分简单,但是如此大量的神经元之间、如此复杂的连接却可以演化出丰富多彩的行为方式;(2)大量的神经元与外部感受器之间的多种多样的连接方式也蕴含了变化莫测的反应方式。
从生物控制论的观点来看,神经元作为控制和信息处理的基本单元,具有下列一些重要的功能与特性:时空整合功能,兴奋与抑制状态,脉冲与电位转换,神经纤维传导速度,突触延时和不应期,学习、遗忘和疲劳
7.1.2 人工神经元模型
人工神经元是对生物神经元的一种模拟与简化。它是神经网络的基本处理单元。如图所示为一种简化的人工神经元结构。它是一个多输入、单输出的非线性元件
其输入、输出关系可描述为
n 其中, 是从其他神经元传来的输入信号; 表示从神经元j到神经元i的连接权值; 为阈值; 称为激发函数或作用函数。
输出激发函数 又称为变换函数,它决定神经元(节点)的输出。该输出为1或0,取决于其输入之和大于或小于内部阈值 。函数 一般具有非线性特性。下图表示了几种常见的激发函数: 1. 阈值型函数(见图(a),(b)) 2. 饱和型函数(见图(c)) 3. 双曲函数(见图(d))4. S型函数(见(e))5. 高斯函数(见图(f))
人工神经网络是以工程技术手段来模拟人脑神经元网络的结构与特征的系统。 利用人工神经元可以构成各种不同拓扑结构的神经网络,它是生物神经网络的一种模拟和近似。
就神经网络的主要连接型式而言,目前已有数十种不同的神经网络模型,其中前馈型网络和反馈型网络是两种典型的结构模型。
前馈型神经网络,又称前向网络(Feed forward NN)。如下图所示,神经元分层排列,有输入层、隐层(亦称中间层,可有若干层)和输出层,每一层的神经元只接受前一层神经元的输入。
从学习的观点来看,前馈网络是一种强有力的学习系统,其结构简单而易于编程;从系统的观点看,前馈网络是一静态非线性映射,通过简单非线性处理单元的复合映射,可获得复杂的非线性处理能力。但从计算的观点看,缺乏丰富的动力学行为。大部分前馈网络都是学习网络,它们的分类能力和模式识别能力一般都强于反馈网络。 典型的前馈网络有感知器网络、BP 网络等。
反馈型神经网络(Feedback NN)的结构如下图所示。如果总节点(神经元)数为N,那么每个节点有N个输入和一个输出,也就是说,所有节点都是一样的,它们之间都可相互连接。
反馈神经网络是一种反馈动力学系统,它需要工作一段时间才能达到稳定。Hopfield神经网络是反馈网络中最简单且应用广泛的模型,它具有联想记忆(Content一Addressible Memory,CAM)的功能,如果将Lyapunov函数定义为寻优函数,Hopfie1d神经网络还可以用来解决快速寻优问题。
神经网络的工作方式 与人脑的作用机理类似,神经网络完成任务的工作过程包含两个阶段:(1)学习(训练)阶段。这是神经网络自我完善的阶段,网络按一定的学习规则修改权系数;(2)执行(回忆或联想)阶段。神经网络对输入信息进行处理,并产生对应的输出过程。 学习和执行是神经网络不可缺少的两个处理功能或工作方式。
神经网络的学习方法与规则 学习方法是体现人工神经网络智能特性的主要标志,离开了学习算法,人工神经网络就失去了自适应、自组织和自学习的能力。
目前神经网络的学习方法有多种,按有无导师来分类,可分为有教师(导师或监督)学习(Supervised Learning)、无教师(导师或监督)学习(Unsupervised Learning)和再励学习(Reinforcement Learning)等几大类。在有教师的学习方式中,网络的输出和期望的输出(即教师信号)进行比较,然后根据两者之间的差异调整网络的权值,最终使差异变小。在无教师的学习方式中,输入模式进人网络后,网络按照一预先设定的规则(如竞争规则)自动调整权值,使网络最终具有模式分类等功能。再励学习是介于上述两者之间的一种学习方式。
有教师学习权值调整公式:神经网络的学习最终均体现为单个神经元的权值调整。权值调整公式 w(t+1) = w(t)+η ∆w(t) η--- 学习率; w(t)= (ω1 ,ω2 , … ,ωn ,θ); 输入 x = (x1 ,x2 , … , xn ,-1) ; d --- 期望输出
神经网络中常用的几种最基本的学习方法与规则
1. Hebb学习规则 (P230)定义:两个神经元同时处于激发状态时(或一个突触前活动在时间上紧随一个突触后活动),它们之间的连接强度将得到加强,这一论述的数学描述被称为Hebb学习规则 Hebb学习规则是一种无教师的学习方法,它只根据神经元连接间的激活水平改变权值,因此这种方法又称为相关学习或并联学习。
公式:w(t+1) = w(t)+η yx 或 w(t+1) = w(t)+ ∆w(t) η--- 学习率; w(t)= (ω1 ,ω2 , … ,ωn ,θ);输入 x = ( x1 , x2 , … , xn ) ; y = f (wTx) --- 输出
2.Delta(δ)学习规则(P231) δ 学习规则(梯度法或最速下降法)实现了E中的梯度下降,因此使误差函数达到最小值。 E = 1/2 •(d-y)2
δ学习规则的目的:通过训练权值w,使得对于训练样本对(x, d) ,神经元的输出误差
E = 1/2 •(d-y)2为最小。 常用于单层及多层感知器、BP网络 公式:
∆w(t)= - c (d-y) f′(wTx) x c >0 较小;f (u)---激活函数
3.离散感知器学习规则(P231)(1)是一种有教师学习算法 (2)公式: ∆w(t) = e (t) x 误差 e (t) = d - y = d – sgn (wTx) (3)常用于单层及多层离散感知器网络
4. Widrow-Hoff 学习规则(P231) (1)是一种有教师学习算法(2)公式∆w(t) = - c (d-y) x
使训练样本对(x,d),对神经元输出误差 E = 1/2 •(d-y)2 最小。(3)用于自适应线性单元函数学习
5.概率式学习 从统计力学、分子热力学和概率论中关于系统稳态能量的标准出发,进行神经网络学习的方式称概率式学习。 神经网络处于某一状态的概率主要取决于在此状态下的能量,能量越低,概率越大。同时,此概率还取决于温度参数T。T越大,不同状态出现概率的差异便越小,较容易跳出能量的局部极小点而到全局的极小点;T越小时,情形正相反。 概率式学习的典型代表是Boltzmann机学习规则。它是基于模拟退火的统计优化方法,因此又称模拟退火算法。
6.竞争式学习 竞争式学习属于无教师学习方式。 定义:此种学习方式利用不同层间的神经元发生兴奋性联接,以及同一层内距离很近的神经元间发生同样的兴奋性联接,而距离较远的神经元产生抑制性联接。在这种联接机制中引人竟争机制的学习方式称为竟争式学习。
竞争式学习方法的本质在于神经网络中高层次的神经元对低层次神经元的输入模式进行竞争识别。
感知器的一种学习算法: 1)随机地给定一组连接权 2)输入一组样本和期望的输出(亦称之为教师信号)3)计算感知器实际输出4)修正权值 5)选取另外一组样本,重复上述2)~4)的过程,直到权值对一切样本均稳定不变为止,学习过程结束。
BP网络的学习算法称为BP算法,是在δ规则基础上发展起来的,可在多网络上有效地学习。 误差反向传播神经网络,简称BP网络(Back Propagation),是一种单向传播的多层前向网络。 在模式识别、图像处理、系统辨识、函数拟合、优化计算、最优预测和自适应控制等领域有着较为广泛的应用。
误差反向传播的BP算法简称BP算法。其基本思想是最小二乘算法。它采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。 BP算法的学习过程由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每层神经元(节点)的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转人反向传播,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,使误差信号最小。
BP网络权值的调整规则 1). 输出层权系数的调整 2). 隐含层节点权系数的调整
BP学习算法的计算步骤 1). 初始化 置所有权值为较小的随机数 2). 提供训练集 3). 计算实际输出,计算隐含层、输出层各神经元输出4). 计算目标值与实际输出的偏差E 5). 计算 6). 计算 7). 返回“2)”重复计算,直到误差满足要求为止
在使用BP算法时,应注意的几个问题是: 1). 学习开始时,各隐含层连接权系数的初值应以设置较小的随机数较为适宜。2). 采用S型激发函数时,由于输出层各神经元的输出只能趋于1或0,不能达到1或0。在设置各训练样本时,期望的输出分量dpk不能设置为1或0,以设置为或0,1较为适宜。3). 学习速率η的选择,在学习开始阶段,η选较大的值可以加快学习速度。学习接近优化区时,η值必须相当小,否则权系数将产生振荡而不收敛。平滑因子α的选值在左右。
BP网络学习算法的改进 1.多层前向BP网络的优点: 1). 网络实质上实现了一个从输入到输出的映射功能,而数学理论已证明它具有实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题; 2). 网络能通过学习带正确答案的实例集自动提取“合理的”求解规则,即具有自学习能力; 2.多层前向BP网络的问题: 1). BP算法的学习速度很慢 2). 网络训练失败的可能性较大3). 难以解决应用问题的实例规模和网络规模间的矛盾 4). 网络结构的选择尚无一种统一而完整的理论指导,一般只能由经验选定 5). 新加入的样本要影响已学习成功的网络,而且刻画每个输入样本的特征的数目也必须相同 6). 网络的预测能力(也称泛化能力、推广能力)与训练能力(也称逼近能力、学习能力)的矛盾 3.BP网络学习算法的改进 1). 增加“惯性项” 2). 采用动态步长3). 与其他全局搜索算法相结合4). 模拟退火算法
目前在神经网络的学习中,基于梯度的算法都不能从理论上保证收敛结果是全局最优的。
神经网络的训练 可以任意逼近一个紧集上的任意函数这一特点是神经网络广泛应用的理论基础。 在实际应用中,目前尚未找到较好的网络构造方法,确定网络的结构和权值参数,来描述给定的映射或逼近一个未知的映射,只能通过学习来得到满足要求的网络模型。
神经网络训练的具体步骤如下: 1.获取训练样本集 :获取训练样本集合是训练神经网络的第一步,也是十分重要和关键的一步。它包括训练数据的收集、分析、选择和预处理等 2.选择网络类型与结构:神经网络的类型很多,需要根据任务的性质和要求来选择合适的网络类型。3.训练与测试:最后一步是利用获取的训练样本对网络进行反复训练,直至得到合适的映射结果。
反馈神经网络 反馈网络(Recurrent Network),又称自联想记忆网络,其目的是为了设计一个网络,储存一组平衡点,使得当给网络一组初始值时,网络通过自行运行而最终收敛到这个设计的平衡点上。 反馈网络能够表现出非线性动力学系统的动态特性。它所具有的主要特性为以下两点:第一、网络系统具有若干个稳定状态。当网络从某一初始状态开始运动,网络系统总可以收敛到某一个稳定的平衡状态;第二,系统稳定的平衡状态可以通过设计网络的权值而被存储到网络中。
离散Hopfield网络 1. 网络的结构和工作方式 离散Hopfield网络是一个单层网络,有个神经元节点,每个神经元的输出均接到其它神经元的输入。 各节点没有自反馈,每个节点都附有一个阀值。每个节点都可处于一种可能的状态(1或-1),即当该神经元所受的刺激超过其阀值时,神经元就处于一种状态(比如1),否则神经元就始终处于另一状态(比如-1)。 网络有两种工作方式:即串行方式和并行方式。2. 稳定性:任何初始条件下稳定。
3. 连接权的设计4. 作用:联想记忆
连续Hopfield网络 连续Hopfield 网络也是单层的反馈网络。其实质上是一个连续的非线性动力学系统,它可以用一组非线性微分方程来描述。 当给定初始状态,通过求解非线性微分方程组即可求得网络状态的运行轨迹。若系统是稳定的,则它最终可收敛到一个稳定状态。作用:优化计算
Boltzmann机 1. Boltzmann机网络结构和工作方式 Boltzmann机网络是一个相互连接的神经网络模型,具有对称的连接权系数,及wij=wji且wii=0。网络由可见单元(Visible Unit)和隐单元(Hidden Unit)构成。2. 网络单元由输入、输出部分组成。每个单元节点只取1或0两种状态。1代表接通或接受,0表示断开或拒绝。当神经元的输入加权和发生变化时,神经元的状态随之更新。各单元之间状态的更新是异步的。
与Hopfield网络相似,Boltzmann机的实际运行也分为两个阶段:第一阶段是学习和训练阶段,即根据学习样本对网络进行训练,将知识分布地存储于网络的连接权中;第二阶段是工作阶段,即根据输入运行网络得到合适的输出,这一步实质上是按照某种机制将知识提取出来。
2. 网络的学习和训练 网络学习的目的是通过给出一组学习样本,经学习后得到Boltzmann机各种神经元之间的连接权wij .
Boltzmann机网络学习的步骤可归纳如下: 1). 随机设定网络的连接权wij(0)及初始高温。 2). 按照已知的概率p(xα),依次给定学习样本。在样本的约束下,按照模拟退火程度运行网络,直至达到平衡状态,统计出各pij。在无约束条件下,按同样的步骤并同样的次数运行网络,统计出各p’ij。3). 按下述公式修改权值 wij(k+1)=wij(k)+η(pij-p’ij), η>0 4). 重复上述步骤,直到pij-p’ij小于一定的容限。
神经网络PID控制 尽管神经网络控制技术有许多潜在的优势,但单纯使用神经网络的控制方法的研究仍有待进一步发展。通常将人工神经网络技术与传统的控制理论或智能技术综合使用。神经网络在控制中的作用有以下几种: 1.在传统的控制系统中用以动态系统建模,充当对象模型; 2.在反馈控制系统中直接充当控制器的作用; 3.在传统控制系统中起优化计算作用; 4.与其他智能控制方法如模糊逻辑、遗传算法、专家控制等相融合。
基于BP神经网络控制参数自学习PID控制 BP神经网络具有逼近任意非线性函数的能力,而且结构和学习算法简单明确。通过神经网络自身的学习,可以找到某一最优控制律下的P,I,D参数。基于BP神经网络的PD控制系统结构如图所示,控制器由两个部分组成:①经典的PID控制器:直接对被控对象进行闭环控制,并且KP,KI,KD三个参数为在线整定;②神经网络NN:根据系统的运行状态,调节PID控制器的参数,以期达到某种性能指标的最优化。即使输出层神经元的输出状态对应于PID控制器的三个可调参数KP,KI,KD,通过神经网络的自学习、调整权系数,从而使其稳定状态对应于某种最优控制律下的PID控制器参数。
基于BP神经网络的PID控制算法可归纳如下: 1). 事先选定BP神经网络NN的结构,即选定输入层节点数M和隐含层节点数Q,并给出权系数的初值w(2)ij(0), w(3)li(0),选定学习速率η和平滑因子α,k=1; 2). 采样得到r(k)和y(k),计算e(k)=z(k)=r(k)-y(k); 3). 对r(i),y(i),u(i-1),e(i)进行归一化处理,作为NN的输入; 4). 前向计算NN的各层神经元的输入和输出,NN输出层的输出即为PID控制器的三个可调参数KP(k),KI(k),KD(k); 5). 计算PID控制器的控制输出u(k),参与控制和计算; 6). 计算修正输出层的权系数w(3)li(k); 7). 计算修正隐含层的权系数w(2)ij(k); 8). 置k=k+1,返回到“2)”。
改进型BP神经网络控制参数自学习PID控制 将神经网络用于控制器的设计或直接学习计算控制器的输出(控制量),一般都要用到系统的预测输出值或其变化量来计算权系数的修正量。但实际上,系统的预测输出值是不易直接测得的,通常的做法是建立被控对象的预测数学模型,用该模型所计算的预测输出来取代预测处的实测值,以提高控制效果。
采用线性预测模型的BP神经网络PID控制系统算法归纳如下: 1). 事先选定BP神经网络NN的结构,即选定输入层节点数M和隐含层节点数Q,并给出权系数的初值w(2)ij(0), w(3)li(0),选定学习速率η和平滑因子α,k=1; 2). 用线性系统辨识法估计出参数矢量θ(k),从而形成一步预报模型式; 3). 采样得到r(k)和y(k),计算e(k)=z(k)=r(k)-y(k); 4). 对r(i),y(i),u(i-1),e(i)进行归一化处理,作为NN的输入; 5). 前向计算NN的各层神经元的输入和输出,NN输出层的输出即为PID控制器的三个可调参数KP(k),KI(k),KD(k); 6). 计算PID控制器的控制输出u(k),参与控制和计算;7).计算
和 ;
8). 计算修正输出层的权系数w(3)li(k); 9). 计算修正隐含层的权系数w(2)ij(k); 10). 置k=k+1,返回到“2)”。
基于BP神经网络的PID控制算法可归纳如下: 1). 事先选定BP神经网络NN的结构,即选定输入层节点数M和隐含层节点数Q,并给出权系数的初值w(2)ij(0), w(3)li(0),选定学习速率η和平滑因子α,k=1; 2). 采样得到r(k)和y(k),计算e(k)=z(k)=r(k)-y(k); 3). 对r(i),y(i),u(i-1),e(i)进行归一化处理,作为NN的输入; 4). 前向计算NN的各层神经元的输入和输出,NN输出层的输出即为PID控制器的三个可调参数KP(k),KI(k),KD(k); 5). 计算PID控制器的控制输出u(k),参与控制和计算; 6).前向计算NNM的各层神经元的输入和输出,NNM的输出为 ,计算修正隐含层和输出层的权系数; 7).计算 ;
8). 计算修正输出层的权系数w(3)li(k); 9). 计算修正隐含层的权系数w(2)ij(k); 10). 置k=k+1,返回到“2)”。
BP算法基本原理 利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。
激活函数 必须处处可导 一般都使用S型函数:使用S型激活函数时BP网络输入与输出关系 输入: 输出:输出的导数:
根据S型激活函数的图形可知,对神经网络进行训练,应该将net的值尽量控制在收敛比较快的范围内
BP网络的标准学习算法 学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。学习的本质:对各连接权值的动态调整
学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。
BP网络的标准学习算法--算法思想 学习的类型:有导师学习 核心思想:将输出误差以某种形式通过隐层向输入层逐层反传
将误差分摊给各层的所有单元------各层单元的误差信号---à>>修正各单元权值
学习的过程:信号的正向传播-----à>>误差的反向传播
正向传播:输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(教师信号)不符
误差反传
误差以某种形式在各层表示----修正各层单元的权值
网络输出的误差减少到可接受的程度或者 进行到预先设定的学习次数为止
网络结构 输入层有n个神经元,隐含层有p个神经元, 输出层有q个神经元
变量定义
输入向量: ;隐含层输入向量:;;隐含层输出向量:;输出层输入向量:;输出层输出向量:;期望输出向量:
输入层与中间层的连接权值:;隐含层与输出层的连接权值:;隐含层各神经元的阈值:;输出层各神经元的阈值:;样本数据个数:;激活函数:;误差函数:
BP网络的标准学习算法 第一步,网络初始化 给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。第二步,随机选取第k个输入样本及对应期望输出 第三步,计算隐含层各神经元的输入和输出; ;; 第四步,利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数 。;;第五步,利用隐含层到输出层的连接权值、输出层的和隐含层的输出计算误差函数对隐含层各神经元的偏导数 。 ;;
;
第六步,利用输出层各神经元的和隐含层各神经元的输出来修正连接权值。;第七步,利用隐含层各神经元的和输入层各神经元的输入修正连接权。 ;第八步,计算全局误差第九步,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。
BP算法直观解释: 情况一直观表达: 当误差对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。情况二直观表达:当误差对权值的偏导数小于零时,权值调整量为正,实际输出少于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。
BP神经网络的特点:
非线性映射能力
能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
泛化能力
当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。
容错能力
输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。
展开阅读全文