资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第九章第九章 ElmanElman网络与学习算法网络与学习算法 北京科技大学北京科技大学 信息工程学院信息工程学院 付冬梅付冬梅 fdm2003163.com 62334967o 概述 o Elman神经网络结构 o Elman神经网络学习算法 o Elman网络的MATLAB实现本章内容概述o Elman神经网络由Jeffrey L. Elman 于1990年 提出 o 是一种反馈神经网络 o 具有很强的计算能力 Hello ,Im Jeffrey L. Elman9.1 Elman神经网络结构o Elman网络由4层组成 n 输入层 信号传输作用 n 隐含层 n 承接层 也称上下文单元或状态层,承接层从隐含层接 收反馈信号,用来记忆隐含层神经元前一时刻的的 输出值,承接层神经元的输出经延迟与存储,再输 入到隐含层。这样就使其对历史数据具有敏感性, 增加了网络自身处理动态信息的能力。 n 输出层 仅起线性加权作用。9.2 Elman神经网络学习算法 oo ElmanElman神经网络各层输入输出公式神经网络各层输入输出公式如果输入向量 为 维向量,输出向量 为 维,隐含层输出向量 为 维,承接层输出向量为 维, 分别为隐含层到输出层、输入层到 隐含层、承接层到隐含层的连接权值。 为输出神 经元的激活函数,是隐含层输出的线性组合。 为隐 含层神经元的激活函数, 为承接层的激活函数, 表示某层的净输入,用A表示输入层,用B表示 承接层, 表示迭代次序则各层之间的表达式如下图 所示。ElmanElman神经网络结构及其各层输入输出公式神经网络结构及其各层输入输出公式g()为输出神经元的转换函 数;f()是中间层的转换函 数,常为S型函数,也可 以是高斯型函数。当f()为 S函数时采用BP算法训练 权值;当是高斯型函数时 采用RBF网络方法训练权 值。Output yr12Input Input u un1n1m1承接层用白色表示输出层用紫色表示隐含层用兰色表示学习指标函数为:为计算输出为理想输出oElman神经网络学习算法采用BP算法n 判断算法是否结束的误差函数为:其中 为期望输出 n Elman神经网络学习算法流程图9.2 Elman神经网络学习算法 ElmanElman神经网络学神经网络学 习算法流程图习算法流程图计计算算输出输出层层输出输出初始初始化化各各层权层权值值输输入入样本值样本值计计算算输入输入层层输出输出计计算算误差误差函数函数更更新新权权值值计计算算承接承接层层输出输出计计算隐含层算隐含层输出输出9.2 Elman神经网络学习算法 nElman神经网络的重要函数和基本功能 函 数 名功 能newelm()生成一个Elman神经网络trains()根据已设定的权值和阈值对网络进行 顺序训练 traingdx()自适应学习速率动量梯度下降反向传 播训练函数 learngdm()动量梯度下降权值和阈值学习函数9.3 Elman网络的MATLAB实现 空调系统逐时负荷的准确预测是实现住宅和电网现代 控制前提之一。空调负荷于多种因素成非线性关系,并且 是一种动态关系。不宜采用BP、RBF等静态映射网络。这 里尝试采用Elmen网络n Elman网络仿真实例9.3 Elman网络的MATLAB实现 9.3 Elman网络的MATLAB实现 N个输入M个输出 X1 X2 XNXN+1 XN+2 XN+M X2 X3 XN+1XN+2 XN+3 XN+M+1 XK XK+! XN+K+!XN+K XN+K+! XN+M+K+1如果希望用过去的N(N1)个时刻的值,即进行M步预测,可 取N个相邻的样本为滑动窗,并将它们映射为M个预测值。于是 网络具有N个输入,M个输出,中间层一般可以取在N+M左右。n Elman网络仿真实例例1 下表为某单位办公室七天上午9点到12点的空调负荷数据, 数据已经做了归一化处理,预测方法采用前6天的数据作为 网络的训练样本,每3天的负荷作为输入向量,第4天的负荷 作为目标向量,第七天的数据作为网络的测试数据。 9.2 Elman网络的MATLAB实现 时间空调负荷数据(归一化后) 2009-7-10.4413 0.4707 0.6953 0.8133 2009-7-20.4379 0.4677 0.6981 0.8022 2009-7-30.4517 0.4725 0.7005 0.8201 2009-7-40.4557 0.4790 0.7019 0.8211 2009-7-50.4601 0.4811 0.7101 0.8298 2009-7-60.4612 0.4845 0.7188 0.8312 2009-7-70.4615 0.4891 0.7201 0.8330例1 程序9.2 Elman网络的MATLAB实现 %Elmen网络的演示实例1 %- %产生正弦信号 t=1:20; p1=sin(1:20); p2=sin(1:20)*2; t1=ones(1,20); t2=ones(1,20)*2; figure(1); plot(t,p1,r,t,p2,b-); pause; %产生训练样本p和t p=p1 p2 p1 p2 p1 p2; tt=t1 t2 t1 t2 t1 t2; Pseq=con2seq(p); Tseq=con2seq(tt); R=1; %输入元素的个数为1 S2=1; %输出元素的个数为1 S1=10; %隐层元素的个数为10 net=newelm(-2,2,S1,S2,tansig,purelin);%设定网络训练次数 net.trainParam.epochs=500; net=train(net,Pseq,Tseq); y=sim(net,Pseq); t5=1:120; figure(2); plot(t5,cat(2,y:),r-,t5,cat(2,Tseq:),b-); %利用新的信号来测试网络 p3=sin(1:20)*1.9; t3=ones(1,20)*2; p4=sin(1:20)*0.8; t4=ones(1,20)*1; %产生测试样本pg和tg pg=p3 p4 p3 p4 p3 p4; tg=t3 t4 t3 t4 t3 t4; pgseq=con2seq(pg); a=sim(net,pgseq); figure(3); plot(t5,cat(2,a:),r-,t5,tg,b-);例1 误差曲线9.2 Elman网络的MATLAB实现 小结o 注意Elman神经网络的结构和模型形式; o Elman神经网络学习算法有两种,取决于神 经元中的非线性作用函数; o Elman神经网络是一种动态神经网络,更适 合于动态数据的建模; o 目前Elman网络的学习算法还较慢,使其的 实时使用受到较大限制。谢谢!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号