基于松鼠算法改进的DELM预测-附代码

news/2024/10/25 19:33:35/

松鼠算法改进的深度极限学习机DELM的回归预测

文章目录

  • 松鼠算法改进的深度极限学习机DELM的回归预测
    • 1.ELM原理
    • 2.深度极限学习机(DELM)原理
    • 3.松鼠算法
    • 4.松鼠算法改进DELM
    • 5.实验结果
    • 6.参考文献
    • 7.Matlab代码

1.ELM原理

ELM基础原理请参考:https://blog.csdn.net/u011835903/article/details/111073635。

自动编码器 AE(Auto Encoder)经过训练可以将输入复制到输出。因为不需要标记数据,训练自动编码器是不受监督的。因此,将AE的思想应用到ELM中,使ELM的输入数据同样被用于输出,即输出Y=X。作为自编码器的极限学习机ELM-AE网络结构如图1所示。

图1.ELM-AE网络结构图

若图1中m>L ,ELM-AE实现维度压缩,将高维度数据映射成低维度特征表达;若 m=L,ELM-AE实现等维度的特征表达;若 m<L ,ELM-AE实现稀疏表达,即原始数据的高维特征表达。

综上,ELM-AE是一个通用的逼近器,特点就是使网络的输出与输入相同,而且隐藏层的输入参数(ai,bi)(a_i,b_i)(ai,bi)​​随机生成后正交。正交化后的优点有:

(1)根 据 J-L(Johnson-Lindensrauss) 定理,权重和偏置正交化可以将输入数据映射到不同或等维度的空间,从而实现不同功能的特征表达。

(2)权重和偏置的正交化设计可以去除特征以外的噪声,使特征之间均匀,且更加线性独立进而增强系统的泛化能力。

ELM-AE的输出可以用如下表达式表示:
xj=∑i=1LβiG(ai,bi,xj),ai∈Rm,βi∈Rm,j=1,2,...,N,aTa=I,bTb=1(1)x_j=\sum_{i=1}^L \beta_iG(a_i,b_i,x_j),a_i\in R^m,\beta_i\in R^m,j=1,2,...,N,a^Ta=I,b^Tb=1 \tag{1} xj=i=1LβiG(ai,bi,xj),aiRm,βiRm,j=1,2,...,N,aTa=I,bTb=1(1)
其中aaaaia_iai组成的矩阵,bbbbib_ibi​组成的向量。隐藏层的输出权重为:
β=(IC+HTH)−1HTX(2)\beta = (\frac{I}{C}+H^TH)^{-1}HTX \tag{2} β=(CI+HTH)1HTX(2)
其中,X=[x1,...,xN]X=[x_1,...,x_N]X=[x1,...,xN]是输入数据。

2.深度极限学习机(DELM)原理

根据ELM-AE的特征表示能力,将它作为深度极限学习机 DELM的基本单元。与传统深度学习算法相同,DELM 也是用逐层贪婪的训练方法来训练网络,DELM每个隐藏层的输入权重都使用ELM-AE初始化,执行分层无监督训练,但是与传统深度学习算法不同的是DELM不需要反向微调过程。

图2.DELM模型训练过程

DELM的思想是通过最大限度地降低重构误差使输出可以无限接近原始输入,经过每一层的训练,可以学习到原始数据的高级特征。图2描述了DELM模型的训练过程,将输入数据样本X作为第1个ELM-AE的目标输出(X1=XX_1 =XX1=X​​),进而求取输出权值 β1β_1β1​​ ;然后将DELM第1个隐藏层的输出矩阵H1H_1H1​​当作下1个ELM−AEELM-AEELMAE​的输入与目标输出(X2=XX_2=XX2=X​),依次类推逐层训练,最后1层用ELMELMELM​​​来训练,使用式(2)来求解DELM的最后1个隐藏层的输出权重βi+1\beta_{i+1}βi+1​​ 。图2中Hi+1H_{i+1}Hi+1​​ 是最后1个隐藏层的输出矩阵,T是样本标签。 Hi+1H_{i+1}Hi+1​每1层隐藏层的输入权重矩阵为Wi+1=βi+1TW_{i+1}=\beta_{i+1}^TWi+1=βi+1T​。

3.松鼠算法

松鼠算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/116223542

4.松鼠算法改进DELM

由上述原理可知原始DELM中的,权重采用随机初始化的方式进行初始化,而初始权重对于整个模型的预测结果影响比较大,于是采用松鼠算法对DELM的初始权重进行优化。适应度函数设计如下:
fitness=MSE(train)+MSE(test)fitness=MSE(train)+MSE(test) fitness=MSE(train)+MSE(test)
适应度函数为,训练集和测试集(验证集)的均方误差之和,误差越小,预测越准确。

5.实验结果

本案例中数据总量为600组,其中训练集和测试集分别划分为400组和200组。输入数据维度为3维,标签数据为1维。数据划分结果如下:

%% 导入数据
load data
%训练集——400个样本
P_train=input(:,(1:400));
T_train=output((1:400));
% 测试集——200个样本
P_test=input(:,(400:600));
T_test=output((400:600));

DELM的参数设置如下:

这里DELM采用2层结构,每层的节点数分别为2,3。采用sigmoid激活函数。

%% DELM参数设置
ELMAEhiddenLayer = [2,3];%ELM—AE的隐藏层数,[n1,n2,...,n],n1代表第1个隐藏层的节点数。
ActivF = 'sig';%ELM-AE的激活函数设置
C = 5; %正则化系数

松鼠算法相关参数设置:

%% 优化算法参数设置:
%计算权值的维度
dim=0;
for i = 1:length(ELMAEhiddenLayer)dim = dim+ ELMAEhiddenLayer(i)*size(Pn_train,2);
end
popsize = 20;%种群数量
Max_iteration = 50;%最大迭代次数
lb = -1;%权值下边界
ub = 1;%权值上边界
fobj = @(X)fun(X,Pn_train,Tn_train,Pn_test,Tn_test,ELMAEhiddenLayer,ActivF,C);

最终预测结果如下:

训练集预测结果:

在这里插入图片描述

测试集预测结果:

在这里插入图片描述
在这里插入图片描述

从结果上来看松鼠-DELM的MSE明显好于原始DELM的结果。

6.参考文献

[1]颜学龙,马润平.基于深度极限学习机的模拟电路故障诊断[J].计算机工程与科学,2019,41(11):1911-1918.

7.Matlab代码


http://www.ppmy.cn/news/5746.html

相关文章

GitHub典藏版,腾讯T14级高级程序员亲码的分布式数据库实践,再次爆火

数据库就是要做好五件事&#xff0c;存储、事务、查询、复制和其他。而对分布式数据库来说&#xff0c;不仅要继续做这五件事&#xff0c;还要多出一件事&#xff0c;分片。在这六件事中&#xff0c;存储和其他这两件事与单体数据库差不多&#xff0c;难点就在事务、查询、复制…

P1220 关路灯(区间dp)

题目描述 某一村庄在一条路线上安装了 nn 盏路灯&#xff0c;每盏灯的功率有大有小&#xff08;即同一段时间内消耗的电量有多有少&#xff09;。老张就住在这条路中间某一路灯旁&#xff0c;他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯。 为了给村里节省电费&…

你一定要会的JavaFile

File对象就表示一个路径&#xff0c;可以是文件的路径&#xff0c;也可以是文件夹的路径这个路径可以是存在的&#xff0c;也允许是不存在的File的构造 方法名称说明public File(String pathname)根据文件路径创建文件对象public File(String parent,String child)根据父路径名…

JPA+Scheduled+Transactional 保存数据save或者update没有相关SQL打印

JPA+Scheduled+SpringBoot 保存数据save没有相关SQL打印 Controller层调用有insert SQL日志打印,在定时任务中,没有insert SQL日志打印! save 前后日志打印均正常!repository.save丝毫没有任何作用!!! 相同版本的SpringBoot和jpa,重新创建不依赖其他jar或者第三方的…

聊聊设计模式-解释器模式?

简介 解释器模式属于行为型模式。它是指给定一门语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子。是一种按照规定的语法进行解析的模式 编译器可以将源码编译解释为机器码&#xff0c;让CPU能进行识别并…

历时9个月重构iNeuOS工业互联网操作系统,打造工业领域的“Office”

目 录 1. 概述... 1 2. 整体介绍... 2 3. 主要功能简介... 5 1. 概述 历时9个月的时间&#xff0c;对iNeuOS工业互联网操作系统进行全面重构&#xff0c;发布内部测试版本。重构的主要目的&#xff1a;工程化的框架优化&#xff0c;更好的聚焦工业领…

[BJOI2019]勘破神机

题目描述 定义fnf_nfn​为用121\times 212骨牌填满2n2\times n2n网格的方案数&#xff0c;gng_ngn​为填满3n3\times n3n网格的方案数。 求&#xff1a; 1r−l1∑ilrCfik/1r−l1∑ilrCgikmod998244353\frac{1}{r-l1}\sum_{il}^rC_{f_i}^k/\frac{1}{r-l1}\sum_{il}^rC_{g_i}^k…

【数据结构笔记16】数据结构之图的四种存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)

这篇文章,主要介绍数据结构之图的四种存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)。 目录 一、邻接矩阵 1.1、邻接矩阵(无向图) 1.3、邻接矩阵(有向图) <