基于风驱动算法改进的DELM预测-附代码

news2024/11/25 14:21:13

风驱动算法改进的深度极限学习机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/108676626

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/100928.html

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

相关文章

12月编程语言排行榜,java跌至低点,低代码发展迅猛

2022年12月编程语言排行榜&#xff1a;TIOBE Index for December 2022 TIOBE揭晓了12月全球编程语言排名&#xff0c;Python 以0.1%微弱优势领先C语言&#xff0c;成功夺冠。目前&#xff0c;这两种语言竞争焦灼&#xff0c;都是多次霸榜。 本次榜单&#xff0c;C作为一匹黑马…

chrome插件开发之发送网络请求v3版本

如果某个扩展希望访问自己所属域以外的资源&#xff0c;比如说来自http://www.google.com的资源(假设该扩展不是来自www.google.com), 浏览器不会允许这样的请求&#xff0c;除非该扩展获得了相应的跨域请求允许。 获取跨域请求允许 通过添加域名或者域名匹配到manifest文件的p…

CentOS 8:Redis服务器

Redis &#xff0c;一款基于内存的键值型数据库服务器 常见于网站开发场景 Redis 服务器只发布了 Linux 版本 Redis服务器的安装&#xff0c;有3种办法&#xff1a; 1 自动安装 , redis 5.0 yum install redis 2 源码方式 从官网下载源码&#xff0c;先编译、后部署 3 …

WhaleDI数据治理利器之“低成本数据质量管理”

数字化时代&#xff0c;数据已经成为企业管理的关键要素&#xff0c;随着数据的日益增长及汇聚&#xff0c;企业数据质量问题成为数据治理的关键。数据质量直接影响到能否通过数据分析驱动企业生产、运营、服务提效及创新。高质量的数据对管理决策、业务支撑等都有极其重要的作…

时间序列的研究

更多的时间预测&#xff0c;参考 https://github.com/qingsongedu/awesome-AI-for-time-series-papers#AI4TS-Tutorials 1. 周期检测模块 可能存在的情况&#xff0c; 单周期多周期无周期&#xff1b; Robust Period 检测 该时间序列&#xff0c;是否有周期 以及周期的长度…

C语言浮点型的存储

3.14159 1e10可以写成1.010的10次方 1e5 表示 1.010的5次方 int main() {int n 9;//4bytefloat* pFloat (float*)&n;//float 指针访问4的字节printf("n值为:%d", n);//9printf("*pFloat值为:%f\n", *pFloat);//&#xff0c;是以浮点数的视角去看的*p…

深度学习基础知识---梯度弥散 梯度爆炸

目录 1 梯度弥散、梯度爆炸的成因 2 解决方式 2.1.pretrainfinetune 2.2 梯度裁剪 2.3 权重正则化 2.5 Batch Normalization正则化 2.6 残差结构 shortcut 2.7 LSTM 1 梯度弥散、梯度爆炸的成因 神经网络的层&#xff08;主要是隐藏层&#xff09;越多&#xff0c;对…

【LSTM时序预测】基于matlab EMD结合LSTM风速数据预测【含Matlab源码 2051期】

⛄一、EMD-DELM简介 1 方法及原理 1.1 EMD基本原理 经验模态分解可基于数据本身&#xff0c;将复杂信号分解为一系列IMF和一个r(t),分解信号时&#xff0c;不需要预先设置任何基函数。因为这一特点&#xff0c;理论上EMD方法可预处理任何一种信号的数据&#xff0c;因此被广泛…

【Linux磁盘管理】

Linux磁盘管理 写在前面 在此强调一个 Linux 的核心机制就是一切皆文件。 I/O Ports 即I/O 设备地址&#xff0c;用来标识硬件对应的设备地址&#xff0c;来让操作系统以及 cpu 使用。 CPU 的核数不一定就是越多越好&#xff0c;由于CPU 协调之间的协调问题&#xff0c;可能性…

洛谷P1161 开灯

开灯 题目描述 在一条无限长的路上&#xff0c;有一排无限长的路灯&#xff0c;编号为 1,2,3,4,…1,2,3,4,\dots1,2,3,4,…。 每一盏灯只有两种可能的状态&#xff0c;开或者关。如果按一下某一盏灯的开关&#xff0c;那么这盏灯的状态将发生改变。如果原来是开&#xff0c;…

定时器/计数器中定时/计数初值的计算

寄存器TMOD是单片机的一个特殊功能寄存器&#xff0c;其功能是控制定时器/计数器T0、T1的工作方式。它的字节地址为89H&#xff0c;不可以对它进行位操作。 只能进行字节操作&#xff0c;即给寄存器整体赋值的方法设置初始值&#xff0c;如TMOD0x01。在上电和复位时&#xff0c…

中小型企业HR人力资源管理系统源码带使用手册和操作说明

【程序语言】&#xff1a;.NET 【数据库】&#xff1a;SQL SERVER 2008 【运行环境】&#xff1a;WINDOWSIIS 【其他】&#xff1a;前端bootstrap框架 运行环境 系统运行环境&#xff1a;ASP.NET 4.0/IIS 6.0/SQL Server2008&#xff0c;使用成熟稳定的Webform开发模式&…

【现代密码学原理】——期末复习(冲刺篇)

&#x1f4d6; 前言&#xff1a;快考试了&#xff0c;做篇期末总结&#xff0c;都是重点与必考点。 博主预测考点&#xff1a; 计算题&#xff1a;RSA、Diffie-Hellman密钥交换、EIGamal 密钥交换、使用SHA-512算法&#xff0c;计算消息的Hash值、计算消息的HMAC 应用题&#…

1.cesium简介和环境搭建

目录 一、cesium介绍 cesium是什么&#xff1f; cesium能做什么&#xff1f; cesium的限制&#xff1f; cesium的好处是什么&#xff1f; 二、创建一个简单的cesium 安装node环境 下载cesiumSDK 部署cesium 三、补充说明 Documentation Sandcastle 一、cesium介绍 …

重点| 系统集成项目管理工程师考前50个知识点(7)

本文章总结了系统集成项目管理工程师考试背记50个知识点&#xff01;&#xff01;&#xff01; 帮助大家更好的复习&#xff0c;希望能对大家有所帮助 比较长&#xff0c;放了部分&#xff0c;需要可私信&#xff01;&#xff01; 46、项目合同签订的注意事项&#xff1a; …

Hadoop实训1:Linux基本搭建和操作

目录 1、创建三台虚拟机 2、创建使用SSH远程连接 3、实现IP地址与主机名的映射 4、关闭和禁用防火墙 5、创建目录结构 6、压缩打包 7、安装软件包 安装jdk 安装mysql 8、创建脚本文件 9、运行脚本文件 11、远程拷贝文件 总结 1、创建三台虚拟机 序号虚拟机名称…

22.12.19打卡 Codeforces Round #839 (Div. 3) A~E

Dashboard - Codeforces Round #839 (Div. 3) - Codeforces 浑浑噩噩的一场, 被队友带飞 A 不解释 /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠸⣿⣿⣆⠹⣿⣿⢾⣟⣯⣿⣿⣿⣿⣿⣿⣽⣻⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣻⣽⡿⣿⣎⠙⣿⣞⣷⡌⢻…

Python -- 文件操作

目录 1.文件的打开与关闭 1.1 打开文件 1.2 关闭文件 2.文件的读取和写入 2.1 文件的读写 3.CSV文件的读写 3.1 CSV文件的写入 4.将数据写入 4.1 StingIO 4.2 BytesIO 5.练习&#xff1a;实现文件拷贝 6.序列化和反序列化 6.1 使用JSON实现列化 6.2 使用JSON实现…

Spring Boot的单元测试

⭐️前言⭐️ 一个Spring项目是有很多个功能的&#xff0c;如果想要单独测试某一个功能是否逻辑正确&#xff0c;就不能只依靠启动类来将整个项目启动去进行测试&#xff0c;而是要通过单元测试的方法&#xff0c;来单独的测试某一个功能&#xff0c;这篇文章就来介绍单元测试…

MEC硬件加速技术分析

【摘 要】为了解决边缘机房的供电、散热以及承重能力有限,无法为MEC提供足够的计算资源的问题,分析了MEC在第三方应用,OVS和虚拟化用户面的性能瓶颈,提供硬件加速的方法。研究表明,通过上述方法,可突破MEC的性能和时延瓶颈,实现高性能、低时延,并兼顾性能、成本和开放…