完整word版动力学建模之神经网络Word格式文档下载.docx
《完整word版动力学建模之神经网络Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《完整word版动力学建模之神经网络Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
数学表达式:
。
(3)激活函数,相当于细胞体的功能,对输入的信号进行非线性映射,使输出幅值限制在一定范围内。
输出表达式:
激活函数有阶跃函数、分段线性函数、sigmoid函数及双曲正切对称S型函数。
(4)阀值,其作用可用数学表达式来表示:
1.3人工神经网络的工作方式
其工作过程主要分为两个阶段:
(1)学习期,此时每一个计算单元的状态不变,样本数据进行输入,得到实际输出,与期望输出进行对比得出输出误差,根据输出误差修改权值,直至系统参数满足输出误差要求,这样就建立了适合样本的神经网络模型。
(2)工作期,此时各连接权是固定的,输入数据便可得到模型结果,即运用神经网络模型进行实际应用过程。
1.4人工神经网络的学习方式
通过向环境学习来获取系统参数并改进自身性能是神经网络的一个重要特点。
一般情况下,性能的改善是按照预定的期望来修改自身的参数。
学习的方式有以下三种:
(1)有监督学习阶段:
以输入输出为训练样本集,学习系统将实际输出与期望输出进行比较,根据一定的学习算法修正权系数及阀值,从而使系统实际输出越来越达到期望输出。
(2)无监督学习阶段:
只提供输入,不提供输出,根据输入调整权系数及阀值,主要用于某些聚类操作。
(3)强化学习:
外部环境对系统输出只给出评价(相当于完成任务时的奖励),没有具体的期望输出,学习系统通过强化那些受奖励的来修改自身参数。
下面分别介绍前馈神经网络及反馈神经网络算法。
2前馈神经网络算法原理
2.1前馈神经网络及BP神经网络介绍
前馈神经网络中的各个神经元只接收上一级的输入,并输出到下一级,网络中没有反馈。
节点分为两类,即输入单元及计算单元,每一个计算单元可以有任意个输入,但只有一个输出。
前馈神经网络除了输入层及输出层之外,中间的层称为隐层。
前馈神经网络为一种非线性映射,通过简单的非线性处理就可以映射非常复杂的非线性关系,可用来处理难以建模的非线性系统。
前馈神经网络为一种非常强大的计算系统,但不具有丰富的动力学行为。
BP神经网络是一种利用误差反向传播训练算法含隐层的前馈神经网络。
对于输入层,输入模式送到输入层节点上,这一层节点的输出即等于其输入。
除了输入层的节点外,隐含层和输出层节点的净输入是前一层节点输出的加权和。
每个节点的激活程度由它的输入信号、激活函数和节点的偏值(或阈值)来决定。
2.2BP神经网络的算法原理
2.2.1BP神经网络算法介绍
BP学习算法的基本原理是梯度最速下降法,它的中心思想是调整权值使网络总误差最小。
也就是采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。
网络学习过程是一种误差边向后传播边修正权系数的过程。
将上一层节点的输出传送到下一层时,通过调整连接权系数来达到增强或削弱这些输出的作用。
多层网络运用BP学习算法时,实际上包含了正向和反向传播两个阶段。
在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每一层神经元的状态只影响下一层神经元的状态。
如果在输出层不能得到期望输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使误差信号最小。
2.2.2正向传播阶段
学习训练阶段,有N个样本,如果已知输入样及预期输出,隐含层第i个节点在样本p作用下的输入可以表示为:
,
(2-1)
其中为第p个样本中第j个输入,为隐层第i个节点的阀值,为输入层第j个节点与隐层第i个节点之间的连接权值,M为输入层的节点数。
隐含层第i个节点的输出为:
(2-2)
g(.)为激活函数,sigmoid激活函数形式为,其中表示偏值,为调节形状参数。
其导数可以表示为:
(2-3)
隐含层第i个节点输出通过权系数向前传播到输出层第k个节点,并作为它的输入之一,输出层的第k个节点的输入为:
(2-4)
为输出层第k个节点的阀值,为输出层第k个节点与隐层第i个节点之间的连接权值,L为输出层的节点数,q为隐层的节点数。
输出层第k个节点的输出为:
(2-5)
激活函数的导数:
(2-6)
对每一个样本p的输入模式,其误差为:
(2-7)
为第p个样本第k个输出层节点输出期望值。
对N个训练样本的总误差为:
(2-8)
N为模式样本数,L为网络输出节点数。
若其输出与给定的期望值不一致,则将误差信号从输出端反向传播回来,并在传播过程中对权系数进行修正,直到输出层输出值为期望输出,完成样本训练过程。
2.2.3反向修改权系数
(1)输出层权系数调整
首先定义:
(2-9)
隐层第i个节点与输出层第k个节点权值总调整量:
(2-10)
调整后的隐层第i个节点与输出层第k个节点的权值:
(2-11)
(2)隐层权系数的调整:
(2-12)
隐层第i个节点与输入层第j个节点权值总调整量:
(2-13)
调整后的隐层第i个节点与输入层第j个节点权值:
(2-14)
采用修正后的权系数,带入输入样本继续训练,计算结果与期望输出进行比较。
如果达不到要求,继续返回修改权系数,这样一直循环下去,直到得出的输出达到期望的输出。
2.3运用BP神经网络解决黑箱问题
2.3.1问题描述
已知一个控制系统,如图1所示。
该系统为两输入两输出系统,输入输出已知,系统参数未知,通过神经网络方法构造神经网络模型来模拟该控制系统。
图1黑想问题模型
该模型输入为,期望输出为,试构造图2所示的神经网络模型模拟该黑箱系统。
图2神经网络模型
2.3.2MTLAB求解神经网络
利用MATLAB中的矩阵运算功能可以方便地求解神经网络问题,相对C语言来说,省去矩阵运算程序的编写,程序结构简单。
黑箱模型的神经网络计算程序如下所示:
Ir=1;
err_goal=1e-4;
%Ir为学习速率;
err_goal为期望误差最小值
max_epoch=10000;
%max_epoch为训练的最大次数;
a为惯性系数
Oi=0;
Ok=0;
%置隐含层和输出层各神经元输出初值为零
X=[13;
23];
T=[0.10.9;
0.10.9]
%输入样本输入及期望值
[M,N]=size(X);
q=3;
[L,N]=size(T);
%求隐层输入层及输出层个数
wij=rand(q,M);
wki=rand(L,q);
%初始化wki、wij
forepoch=1:
max_epoch
%计算隐含层各神经元输出
NETi=wij*X;
forj=1:
N
fori=1:
q
Oi(i,j)=1/(1+exp(-NETi(i,j)));
end
%计算输出层各神经元输出
NETk=wki*Oi;
fork=1:
L
Ok(k,i)=1/(1+exp(-NETk(k,i)));
%计算误差函数
E=((T-Ok)'
*(T-Ok))/2;
if(E<
err_goal)break;
%调整输出层加权系数
deltak=Ok.*(1-Ok).*(T-Ok);
wki=wki+Ir*deltak*Oi'
;
%调整隐含层加权系数
deltai=Oi.*(1-Oi).*(deltak'
*wki)'
wij=wij+Ir*deltai*X'
epoch%显示计算次数
%BP网络的第二阶段工作期
X1=X;
%计算隐含层各神经元输出
NETi=wij*X1;
Oi(i,j)=1/(1+exp(-NETi(i,j)));
Ok
当学习速率取1时,结果如下:
epoch=626
Ok=0.11040.8937
0.10950.8943
可见,运用神经网络模型可以很好逼近系统模型。
在满足误差条件下,可以有效解决黑箱问题。
神经网络方法对于解决非线性问题有很好的适用性。
2.3.3BP算法的改进-修改学习速率
学习速率的选择非常重要。
在学习初期阶段,选的大可使学习速度加快,但临近最佳点时,必须相当小;
否则会产生反复震荡而不能收敛。
可采用变学习速率方案,令学习速率随着学习的进展而逐步减小,可收到很好的效果。
引入惯性系数的方法可使收敛速度加快,的取值可选在0.9左右。
上节中取需要运算626次,运算次数过多。
如果仅仅将学习效率改为10,运算次数大为减小,结果如下所示:
epoch=139
Ok=0.10670.8947
0.11210.8903
运用前馈BP神经网络可以很好地解决非线性系统建模问题,对黑箱系统有很好的适用性。
前馈BP神经网络输入输出已知,为有监督学习。
通过输入求解实际输出,与期望值进行比较,不满足要求返回修改系统参数,直至达到所要求精度。
在控制系统模型求解中,BP神经网络有良好的应用前景。
只要有足够多的隐层及隐节点,就可以逼近任意非线性映射,但其收敛速度慢、有局部极值及难以确定隐含层及隐节点的个数,RBF神经网络等对其进行了改进。
3反馈神经网络
3.1反馈神经网络及Hopfield神经网络介绍
反馈型神经网络又称为递归网络,在反馈神经网络中,输入信号决定反馈系统的初始状态,然后系统经过一系列状态转移后收敛于平衡状态。
如果能找到网络Lyapunov函数,则能保证网络从任意初始状态都能收敛于局部最小点,反馈神经网络中所有节点都是计算单元,同时也接收输入并向外输出。
Hopfield神经网络网络如图3所示,每一个神经元都将自己的输出通过连接权传送给其他神经元,同时又接收其他神经元传来的信息,即网络中t时刻的输出状态实际上间接与自己的t-1时刻的输出状态有关。
当网络达到稳定状态时,也就是它的能量函数达到最小的时候。
图3Hopfield神经网络
3.2Hopfield神经网络算法原理
Hopfield神经网络有n个神经元,其中任意神经元的输入用表示,输出用表示,它们都是时间t的函数,为神经元i在t时刻的状态。
(3-1)