一、简介

1 Elman网络特点
Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,增强了网络的全局稳定性,它比前馈型神经网络具有更强的计算能力,还可以用来解决快速寻优问题。
2 Elman网络结构
Elman神经网络是应用较为广泛的一种典型的反馈型神经网络模型。一般分为四层:输入层、隐层、承接层和输出层。其输入层、隐层和输出层的连接类似于前馈网络。输入层的单元仅起到信号传输作用,输出层单元起到加权作用。隐层单元有线性和非线性两类激励函数,通常激励函数取Signmoid非线性函数。而承接层则用来记忆隐层单元前一时刻的输出值,可以认为是一个有一步迟延的延时算子。隐层的输出通过承接层的延迟与存储,自联到隐层的输入,这种自联方式使其对历史数据具有敏感性,内部反馈网络的加入增加了网络本身处理动态信息的能力,从而达到动态建模的目的。其结构图如下图1所示,
【预测模型】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】_初始化
其网络的数学表达式为:
【预测模型】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】_测试数据_02
【预测模型】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】_测试数据_03
【预测模型】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】_初始化_04
【预测模型】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】_建模_05
3 Elman网络与BP网络的区别
它是动态反馈型网络,它能够内部反馈、存储和利用过去时刻输出信息,既可以实现静态系统的建模,还能实现动态系统的映射并直接反应系统的动态特性,在计算能力及网络稳定性方面都比BP神经网络更胜一筹。
4 Elman网络缺点
与BP神经网络一样,算法都是采用基于梯度下降法,会出现训练速度慢和容易陷入局部极小点的缺点,对神经网络的训练较难达到全局最优。

二、源代码

**%% 清空环境变量

clc;
clear all
close all
nntwarn off;

%% 数据载入

load data;
a=data;

%% 选取训练数据和测试数据

for i=1:6
    p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)];
end
% 训练数据输入
p_train=p(1:5,:);
% 训练数据输出
t_train=a(4:8,:);
% 测试数据输入
p_test=p(6,:);
% 测试数据输出
t_test=a(9,:);

% 为适应网络结构 做转置

p_train=p_train';
t_train=t_train';
p_test=p_test';


%% 网络的建立和训练
% 利用循环,设置不同的隐藏层神经元个数
nn=[7 11 14 18];
for i=1:4
    threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
    % 建立Elman神经网络 隐藏层为nn(i)个神经元
    net=newelm(threshold,[nn(i),3],{'tansig','purelin'});
    % 设置网络训练参数
    net.trainparam.epochs=1000;
    net.trainparam.show=20;
    % 初始化网络
    net=init(net);
    % Elman网络训练
    net=train(net,p_train,t_train);
    % 预测数据
    y=sim(net,p_test);
    % 计算误差
    error(i,:)=y'-t_test;
end**

三、运行结果

【预测模型】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】_建模_06

四、备注

版本:2014a