ELM预测基于极限学习机ELM实现数据预测matlab源码
Posted 博主企鹅号1575304183
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELM预测基于极限学习机ELM实现数据预测matlab源码相关的知识,希望对你有一定的参考价值。
一、极限学习机的概念
极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法。
ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。
二、极限学习机的原理
ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。
(选自黄广斌老师的PPT)
对于一个单隐层神经网络(见Figure 1),假设有个任意的样本,其中,。对于一个有个隐层节点的单隐层神经网络可以表示为
其中,为激活函数,为输入权重,为输出权重,是第个隐层单元的偏置。表示和的内积。
单隐层神经网络学习的目标是使得输出的误差最小,可以表示为
即存在,和,使得
可以矩阵表示为
其中,是隐层节点的输出,为输出权重,为期望输出。
,
为了能够训练单隐层神经网络,我们希望得到,和,使得
其中,,这等价于最小化损失函数
传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重和隐层的偏置被随机确定,隐层的输出矩阵就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统。并且输出权重可以被确定
其中,是矩阵的Moore-Penrose广义逆。且可证明求得的解的范数是最小的并且唯一。
三、 极限学习机的实现步骤
步骤一:获取数据。
步骤二:数据预处理,一般是采用极小极大归一化,消除数据量纲和数量级影响。
步骤三:训练ELM模型,求出隐含层和输出层的连接权值。
步骤四:对训练的模型,使用测试的输入数据进行预测。
步骤五:对预测的值,和实际的值,进行误差分析和作图。
四、部分代码
%初始化
clear
close all
clc
warning off
rng('default')
P=randi([1 10],3,100); %构建训练数据的输入样本
T=sum(P,1); %构建训练数据的输出样本
P1= randi([1 10],3,10); %构建测试数据的输入样本
T1=sum(P1,1); %构建测试数据的输出样本
% 归一化...使用mapminmax函数即可,由于生成的数据无量纲和数量级差异,跳过
%% ELM训练过程
N=3; %输入层的神经元节点个数
L=30; %隐含层的神经元节点个数
M=1; %输出层的神经元节点个数
IW=2*rand(L,N)-1; %初始化输入层与隐含层的连接权值,范围(-1,1)
B=rand(L,1); %初始化隐含层的偏置,范围(0,1)
tempH = IW * P + B; %计算隐含层的输出值
h= 1./ (1 + exp(tempH )); %使用映射函数G(x)=1/(1+exp(x)),h为隐含层对第样本特征的映射值
LW=pinv(h')*T'; %求逆,得到输出层的权值,结束训练(转置是为了让维度对应)
%% ELM预测过程
tempH1=IW*P1+B; %计算隐含层输出值
h1= 1./ (1 + exp(tempH1 )); %对特征作映射
ELM_OUT= (h1' * LW)';
%% 分析预测的误差
error=T1-ELM_OUT; %误差=实际值-预测值
disp(' 序号 期望值 预测值 误差')
disp([1:10
T1
ELM_OUT
error]')
disp('误差平方和...')
sse=sum(error.^2)
disp('均方误差...')
mse=mean(error.^2)
disp('平均相对误差...')
mape=mean(abs(error)./T1)
%作图分析预测的效果
figure
hold on
plot(1:10,T1,'bo:','linewidth',1.0)
plot(1:10,ELM_OUT,'r*-.','linewidth',1.0)
legend('期望值','预测值')
xlabel('测试样本序号')
ylabel('指标的值')
web https://blog.csdn.net/qq_45955094/article/details/116381999
五、参考文献及代码私信博主
[1]尤玲玲. 基于粒子群优化算法的极限学习机及其在降水量预测中的应用研究[D].吉林农业大学,2020.
以上是关于ELM预测基于极限学习机ELM实现数据预测matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
ELM预测基于遗传算法改进极限学习机ELM实现数据预测matlab源码
ELM预测基于遗传算法改进极限学习机ELM实现数据预测matlab源码
ELM预测基于粒子群算法改进极限学习机ELM实现数据预测matlab源码