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源码

ELM预测基于粒子群算法改进极限学习机ELM实现数据预测matlab源码

ELM预测基于粒子群算法改进极限学习机ELM实现数据预测matlab源码

Matlab基于极限学习机ELM实现多分类预测(Excel可直接替换数据)