基于麻雀算法优化的深度极限学习机DLM的预测算法(Matlab代码实现)

简介: 基于麻雀算法优化的深度极限学习机DLM的预测算法(Matlab代码实现)

👨‍🎓个人主页:研学社的博客

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文章讲解


image.gif

💥1 概述

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

image.gif

DELM的思想是通过最大限度地降低重构误差使输出可以无限接近原始输入,经过每一层的训练,可以学习到原始数据的高级特征。图2描述了DELM模型的训练过程,将输入数据样本X作为第1个ELM-AE的目标输出(=X),进而求取输出权值βr﹔然后将DELM第1个隐藏层的输出矩阵H当作下1个ELM ― AE的输入与目标输出(=X),依次类推逐层训练,最后1层用ELM来训练,使用式(2)来求解DELM的最后1个隐藏层的输出权重。图2中是最后1个隐藏层的输出矩阵,T是样本标签。image.gif编辑每1层隐藏层的输入权重矩阵为

📚2 运行结果

image.gif

image.gif

image.gif

image.gif

部分代码:

%% 带初始权重的DELM训练函数

%输入-----------------------

%InputWietht:输入的初始权重

%P_train 输入数据,数据格式为N*dim,N代表数据组数,dim代表数据维度。

%T_train 输入标签数据

%ActiveF 为激活函数,如'sig','sin','hardlim','tribas'等。

%C为正则化系数

%输出: outWeight为输出权重

function OutWeight = DELMTrainWithInitial(InputWietht,P_train,T_train,ELMAEhiddenLayer,ActivF,C)

hiddenLayerSize = length(ELMAEhiddenLayer); %获取ELM-AE的层数

outWieght = {};%用于存放所有的权重

P_trainOrg = P_train;

count = 1;

%% ELM-AE提取数据特征

for i = 1:hiddenLayerSize

   Num = ELMAEhiddenLayer(i)*size(P_train,2);

   InputW = InputWietht(count:count+Num-1);

   count = count+Num;

   InputW = reshape(InputW,[ELMAEhiddenLayer(i),size(P_train,2)]);

   [~,B,Hnew] = ELM_AEWithInitial(InputW,P_train,ActivF,ELMAEhiddenLayer(i)); %获取权重

   OutWeight{i} = B';

   P_train =P_train*B'; %输入经过第一层后传递给下一层

end

%% 最后一层ELM进行监督训练

P = P_train;

N =size(P,2);

I = eye(N);

beta = pinv((P'*P+I/C))*P'*T_train;

OutWeight{hiddenLayerSize + 1} = beta; %存储最后一层ELM的信息。

end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]张文帅,王占刚.基于改进麻雀算法优化深度极限学习机的缺失数据预测[J].电子测量技术,2022,45(15):63-67.DOI:10.19651/j.cnki.emt.2209216.

🌈4 Matlab代码及文章讲解

链接:https://pan.baidu.com/s/1rjShcvq-OozdKoVLJvmg_g 

提取码:9ksb

--来自百度网盘超级会员V3的分享

相关文章
|
1月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
72 1
|
2月前
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
|
2月前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。
|
5月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
253 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
5月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
149 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
5月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
120 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
8月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
8月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)