基于萤火虫算法改进的DELM预测-附代码

news2024/11/15 13:58:12

萤火虫算法改进的深度极限学习机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是一个通用的逼近器,特点就是使网络的输出与输入相同,而且隐藏层的输入参数 ( a i , b i ) (a_i,b_i) (ai,bi)​​随机生成后正交。正交化后的优点有:

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

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

ELM-AE的输出可以用如下表达式表示:
x j = ∑ i = 1 L β i G ( a i , b i , x j ) , a i ∈ R m , β i ∈ R m , j = 1 , 2 , . . . , N , a T a = I , b T b = 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)
其中 a a a a i a_i ai组成的矩阵, b b b b i b_i bi​组成的向量。隐藏层的输出权重为:
β = ( I C + H T H ) − 1 H T X (2) \beta = (\frac{I}{C}+H^TH)^{-1}HTX \tag{2} β=(CI+HTH)1HTX(2)
其中, X = [ x 1 , . . . , x N ] 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的目标输出( X 1 = X X_1 =X X1=X​​),进而求取输出权值 β 1 β_1 β1​​ ;然后将DELM第1个隐藏层的输出矩阵 H 1 H_1 H1​​当作下1个 E L M − A E ELM-AE ELMAE​的输入与目标输出( X 2 = X X_2=X X2=X​),依次类推逐层训练,最后1层用 E L M ELM ELM​​​来训练,使用式(2)来求解DELM的最后1个隐藏层的输出权重 β i + 1 \beta_{i+1} βi+1​​ 。图2中 H i + 1 H_{i+1} Hi+1​​ 是最后1个隐藏层的输出矩阵,T是样本标签。 H i + 1 H_{i+1} Hi+1​每1层隐藏层的输入权重矩阵为 W i + 1 = β i + 1 T W_{i+1}=\beta_{i+1}^T Wi+1=βi+1T​。

3.萤火虫算法

萤火虫算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/108492552

4.萤火虫算法改进DELM

由上述原理可知原始DELM中的,权重采用随机初始化的方式进行初始化,而初始权重对于整个模型的预测结果影响比较大,于是采用萤火虫算法对DELM的初始权重进行优化。适应度函数设计如下:
f i t n e s s = M S E ( t r a i n ) + M S E ( t e s t ) 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.coloradmin.cn/o/99131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码中的坏味道

学习笔记自https://zhuanlan.zhihu.com/p/141435233 识别代码中的坏味道系列 如下图是工作中常见的代码的坏味道&#xff1a; 上图中的坏味道出自《重构》这本书&#xff0c;虽然并不是全部&#xff0c;但是涵盖了日常中最常见的一些代码坏味道。 接触这些坏代码可以分为三类&…

【Linux】shell 及权限理解

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《学会Linux》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;shell命令…

计算机基础学习笔记:操作系统篇之硬件结构,存储层次结构

二、存储器的层次结构 本文知识来源小林Coding阅读整理思考&#xff0c;原文链接请见该篇文章 存储层次 寄存器高速缓存&#xff0c;Cache 1-3级内存磁盘&#xff08;SSD&#xff0c;HDD&#xff09; 关键点 各层次的存储的 介质、速度、容量 以及工作层次理解CPU Cache的作…

【Spring]SpringMVC

一、SpringMVC简介 1、什么是MVC MVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分 M&#xff1a;Model&#xff0c;模型层。指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 实体类Bean&#xff1a;专门存储业务数据…

【qt Spin Box | Double Spin Box输入小部件函数学习篇】

Spin Box | Double Spin Box输入小部件函数学习篇【1】UI设计布局【2】setMinimum | setMaximum【3】setPrefix | setSuffix【4】setValue【5】setDisplayIntegerBase【6】setSingleStep【7】value【8】举例【1】UI设计布局 【2】setMinimum | setMaximum setMinimum 此属性保持…

点对点网络与广播式网络的区别

目录 一、点对点网络与广播式网络的区别 二、结点和节点 一、点对点网络与广播式网络的区别 写下本文的原因是笔者在学习计算机网络第一章时看到了下面王道书上的一句话&#xff0c;我不理解这句话想表达的是谁需要“分组存储转发和路由选择机制”。于是当时得出了一个错误…

Python读取excel内容追加到mysql表中赋予字段注释

前言 由于最近遇到一个实体类有特别多的字段&#xff0c;我就想自己一个地在表中创建&#xff0c;并写注释未免太浪费人力和时间了&#xff0c;然后在网上查找资料&#xff0c;果不其然让我看到了一个可以使用Python读取excel内容追加到mysql表中赋予字段注释&#xff0c;这简…

前端零碎知识随笔

一、介绍 本篇博客主要使用来记录一些比较零碎的知识点&#xff0c;都是本人在日常开发工作中遇到的&#xff0c;或者是在学习过程中遇到的。因为这些知识点都比较零碎&#xff0c;为了防止遗忘&#xff0c;所以特意写一篇博客来记录&#xff0c;后面也不会不断慢慢更新的。 …

[附源码]计算机毕业设计Python-大学生健康档案管理(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

JSP+MySQL基于ssm的环保数据自动采集及预测系统

在21世纪的今天,随着科技的进步和发展,人们的生活逐渐趋于自动化、便捷化、数据化。而发展总会有代价,科技的进步总是伴随着环境的恶化。人类用智慧将地球的资源充分利用,以便丰富人们的生活,推动国家的进步。回过头去看,地球的环境已经成为威胁人类长久生存的主要问题之一。在…

34-Vue之ECharts高级-调色盘

ECharts高级-调色盘前言调色盘主题调色盘全局调色盘局部调色盘渐变颜色前言 本篇来学习下ECharts中调色盘的使用 调色盘 它是一组颜色&#xff0c;图形、系列会自动从其中选择颜色, 不断的循环从头取到尾, 再从头取到尾, 如此往复主要分三种&#xff1a;主题调色盘、全局调色…

基于GDAL的gdb格式数据读写功能实现

一、GDAL类库下载&#xff1a; 下载地址&#xff1a;GISInternals Support Site 比如我下载的是release-1930-x64-gdal-3-4-2-mapserver-7-6-4 点击release-1930-x64-gdal-3-4-2-mapserver-7-6-4的链接&#xff0c;下载这两个文件 二、解压文件和安装gdb插件 1.下载好的两个…

Innodb存储引擎-备份和恢复(分类、冷备、热备、逻辑备份、二进制日志备份和恢复、快照备份、复制)

文章目录备份和恢复分类冷备热备逻辑备份mysqldumpSELECT...INTO OUTFILE恢复二进制日志备份与恢复快照备份(完全备份)复制快照复制的备份架构备份和恢复 分类 &#xff08;1&#xff09;根据备份的方法可以分为&#xff1a; Hot Backup&#xff08;热备&#xff09;&#x…

【图像去噪】中值+均值+Lee+Kuan图像滤波【含Matlab源码 1179期】

⛄一、图像去噪及滤波简介 1 图像去噪 1.1 图像噪声定义 噪声是干扰图像视觉效果的重要因素&#xff0c;图像去噪是指减少图像中噪声的过程。噪声分类有三种&#xff1a;加性噪声&#xff0c;乘性噪声和量化噪声。我们用f(x,y&#xff09;表示图像&#xff0c;g(x,y&#xff0…

ADI Blackfin DSP处理器-BF533的开发详解63:DSP接总线屏的硬件和驱动设计(含源码)

硬件准备 ADSP-EDU-BF533&#xff1a;BF533开发板 AD-HP530ICE&#xff1a;ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 EBIU总线LCD屏 硬件实现原理 LCD2.4 寸液晶屏子卡板连接在 ADSP-EDU-BF53x 开发板的扩展端口 PORT1 和 PORT2 上&#xff0c;板卡插入时&#xf…

基于JAVA的水产批发系统

开发工具(eclipse/idea/vscode等)&#xff1a; 数据库(sqlite/mysql/sqlserver等)&#xff1a; 功能模块(请用文字描述&#xff0c;至少200字)&#xff1a;

【Linux】低级IO

目录 一、文件的概念 二、C语言文件操作回顾 三、使用系统调用进行文件I/O 1、系统调用open 1.1open接口介绍 1.2open形参中标记位flags的意义 1.3open的使用 2、系统调用write 2.1write接口介绍 2.2write的使用 3、系统调用read 3.1read接口介绍 3.2read的使用 …

什么是 SAP ABAP FDA - Fast Data Access 技术?

快速数据访问 (Fast Data Access&#xff0c;缩写为 FDA) 是一种可在 SAP ABAP 环境中访问的协议。 它允许针对 SAP HANA 提交 OPEN SQL SELECT 语句&#xff0c;从而使用 SAP ABAP 的数据格式。 在快速数据访问场景里&#xff0c;SAP ABAP 内表数据传输到数据库并返回。这种方…

Java+MySQL基于ssm的物理竞赛管理系统

物理竞赛是对课堂上所学的理论知识的实践运用,加深所学知识的理解,锻炼团队协作能力。学生可以根据个人爱好,个人特长选择参与,不仅能培养学生的创新意思、提高专业技能,还能锻炼学生的组织能力和协作能力。物理竞赛是在中国科协的领导下,由中国物理学会主办,各省、自治区、直辖…

【力扣周赛#324】6266. 使用质因数之和替换后可以取到的最小值+6267. 添加边使所有节点度数都为偶数+6268. 查询树中环的长度

目录 6265. 统计相似字符串对的数目 - ac 6266. 使用质因数之和替换后可以取到的最小值 分解质因数 1、tle代码 2、优化ac代码 6267. 添加边使所有节点度数都为偶数 - 建图分类讨论 关于建图 6268. 查询树中环的长度 - LCA最近公共祖先 6265. 统计相似字符串对的数目…