一、极限学习机的概念

       极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法。

       ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网络(SLFNs),在保证学习精度的前提下比传统的学习算法速度更快。

二、极限学习机的原理

ELM是一种新型的快速学习算法,对于单隐层神经网络,ELM可以随机初始化输入权重和偏置并得到相应的输出权重。

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab

(选自黄广斌老师的PPT)

对于一个单隐层神经网络(见Figure 1),假设有【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_02个任意的样本【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_03,其中【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_04【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_05。对于一个有【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_06个隐层节点的单隐层神经网络可以表示为

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_07

其中,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_08为激活函数,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_09为输入权重,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_10为输出权重,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_11是第【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_12个隐层单元的偏置。【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_13表示【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_14【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_15的内积。

       单隐层神经网络学习的目标是使得输出的误差最小,可以表示为

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_16

即存在【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_17【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_18【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_19,使得

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_20

可以矩阵表示为

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_21

其中,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_22是隐层节点的输出,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_23为输出权重,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_24为期望输出。

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_25

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_26

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_27【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_28

为了能够训练单隐层神经网络,我们希望得到【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_29【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_30【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_31,使得

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_32

其中,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_33,这等价于最小化损失函数

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_34

传统的一些基于梯度下降法的算法,可以用来求解这样的问题,但是基本的基于梯度的学习算法需要在迭代的过程中调整所有参数。而在ELM算法中, 一旦输入权重【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_35和隐层的偏置【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_36被随机确定,隐层的输出矩阵【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_37就被唯一确定。训练单隐层神经网络可以转化为求解一个线性系统【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_38。并且输出权重【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_39可以被确定

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_40

其中,【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_41是矩阵【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_42的Moore-Penrose广义逆。且可证明求得的解【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_43的范数是最小的并且唯一。

三、 极限学习机的实现步骤


步骤一:获取数据。

步骤二:数据预处理,一般是采用极小极大归一化,消除数据量纲和数量级影响。

步骤三:训练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.youkuaiyun.com/qq_45955094/article/details/116381999
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_预测模型_44

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_45

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_46

  ​​​​​

五、参考文献及代码私信博主 

[1]尤玲玲. 基于粒子群优化算法的极限学习机及其在降水量预测中的应用研究[D].吉林农业大学,2020.

【ELM预测】基于极限学习机ELM实现数据预测matlab源码_matlab_47