【DELM回归预测】基于matlab海鸥算法改进深度学习极限学习机SOA-DELM数据回归预测【含Matlab源码 1977期】

news2024/11/25 13:01:11

⛄一、PSO-DELM简介

1 DELM的原理
在2004年,极限学习机(extreme learning machine,ELM)理论被南洋理工大学的黄广斌教授提出,ELM是一种单隐含层前馈神经网络(single-hidden layer feedforward neural network,SLFN)算法。它与常用的BP神经网络相比,ELM是对于权重和阈值随机的选取,而不像BP是通过反向传播算法调节各层之间的权值和阈值,从而减少了算法模型的学习时间和结构的复杂性,提高了模型整体的训练速度。

ELM的基本结构如图1所示,其由输入层、隐含层、输出层这3部分组成。原理说明如下,假设输入数据的样本集合为:X=xi|{1≤i≤N},输出数据的样本集合为:Y=yi|{1≤i≤N},其中N为样本总个数、xi为输入样本的第i个训练样本、yi为输出样本的第i个输出样本。这里设置隐含层的神经元个数为J个,则H={hi|1≤i≤J}为隐含层的输出向量的集合,hi为第i个输入样本对应的特征向量。把输入的样本数据在空间上映射到隐含层特征空间上,其二者的关系为
在这里插入图片描述
式中:G为激活函数,主要应用的有Sigmoid、Sin、Hardlim等等;α为输入层各个节点到隐含层各个节点的输入权重矩阵;B为隐含层各个节点的阈值矩阵。
在这里插入图片描述
图1 ELM的结构
若单隐含层的ELM能够实现在误差极小的情况下逼近“输出的N个样本”,则隐含层的输出为
在这里插入图片描述
式中:β为隐含层各个节点到输出层各个节点的输出权重矩阵;H为隐含层输出矩阵。

从以上说明中能看出极限学习机的目的就是让模型的输出与实际的输出之间的差值最小,即求解输出权重矩阵的最小二乘解的问题,只要模型能够输出权重矩阵的最小二乘解就可以完成模型的训练,输出权重矩阵β可由下式表示为
在这里插入图片描述 由 于ELM为单隐含层结构,在面对数据量过大、输入数据的维度过高的输入输出变量时,单隐 可能会使得部分的神经元成为无效的神经元,减弱算法模型对数据特征的学习能力。在研 点。 中:C为正则化系数。

本文 高ELM-AE的泛化能力。在ELM-AE产生正交的随机权重和阈值为
在这里插入图片描述
式中:I是单位矩阵。
在这里插入图片描述
图2 ELM-AE结构
在ELM-AE中,输出权重β负责学习从特征空间到输入数据的转换。并且在传统的方法中,是根据最小二乘法求得权重系数,但是在隐含层节点数过多的情况下,这样会导致模型的泛化能力弱和鲁棒性差。所以在求解权重系数中引入正则化系数,提高模型的泛化能力,这里将目标函数设置为
在这里插入图片描述
式中:C为正则化参数。对于稀疏和压缩的ELM-AE表示,把公式中的β求导,并且让目标函数为0,这样求得输出权重β为
式中:H为ELM-AE的隐含层输出矩阵;X为ELM-AE的输入和输出。

对于输入维度等于编码维度的ELM-AE,ELM-AE的输出权重矩阵β代表着从输入特征空间的数 在这里插入图片描述
并且在DELM中ELM-AE能用奇异值(SVD)来表示其特征,所以式(5)的奇异值分解为
在这里插入图片描述

深度极限学习机从结构上看相当于把多个ELM连接到了一起,但它相对于ELM能更全面地捕捉到数据之间的映射关系并提高处理高维度输入变量的精确度。DELM是逐层通过ELM-AE进行无监督的训练学习,最后接入回归层进行监督训练。其DELM的结构如图3所示,假设模型有M个隐含层,将输入数据样本X根据ELM-AE理论得到第一个权重矩阵β1,接着得到隐含层 的特征向量H1。以此类推,能够得到M层的输入权重矩阵βM和隐含层的特征向量HM。并且模型的前期是进行多层无监督的学习,不需要人为设置输入的权重和阈值,只要设置各层的隐含层的神经元个数,所以DELM拥有的学习过程快且泛化能力强的特点。
在这里插入图片描述
图3 DELM结构

⛄二、部分源代码

clear;clc;close all;
%% 导入数据
load data
%训练集——400个样本
P_train=input(:,(1:550));
T_train=output((1:550));
% 测试集——200个样本
P_test=input(:,(250:350));
T_test=output((250:350));
%% 归一化
% 训练集
[Pn_train,inputps] = mapminmax(P_train,0,1);
Pn_test = mapminmax(‘apply’,P_test,inputps);
% 测试集
[Tn_train,outputps] = mapminmax(T_train,0,1);
Tn_test = mapminmax(‘apply’,T_test,outputps);

%所有的数据输入类型应该为 N*dim,其中N为数据组数,dim为数据的维度
Pn_train = Pn_train’;
Pn_test = Pn_test’;
Tn_train = Tn_train’;
Tn_test = Tn_test’;

%% DELM参数设置
ELMAEhiddenLayer = [2,3];%ELM—AE的隐藏层数,[n1,n2,…,n],n1代表第1个隐藏层的节点数。
ActivF = ‘sig’;%ELM-AE的激活函数设置
C = inf; %正则化系数
%% 优化算法参数设置:
%计算权值的维度
dim = ELMAEhiddenLayer(1)*size(Pn_train,2);
if length(ELMAEhiddenLayer)>1
for i = 2:length(ELMAEhiddenLayer)
dim = dim + ELMAEhiddenLayer(i)*ELMAEhiddenLayer(i-1);
end
end

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]周莉,刘东,郑晓亮.基于PSO-DELM的手机上网流量预测方法[J].计算机工程与设计. 2021,42(02)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100975.html

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

相关文章

精华推荐 |【开发百宝箱之猿如意使用指南】「工欲成其事,必先利其器」一文教你如何通过“猿如意” 优化工作、生活和学习!

开发百宝箱之猿如意使用指南【欢迎您】使用“猿如意”百宝箱大家科普一下什么是猿如意?赶快趁热下载个【猿如意】吧【猿如意】使用体验打分和评估【猿如意】整体功能评分【猿如意】UI效果评分【猿如意】易用性效果【猿如意】各组件评分每个程序猿值得拥有的学习开发…

python清空字典的两种方法

python清空字典的两种方法比较 这里说的clear是指清空python中的字典内容,与删除该字典不一样。 例如: d{‘name’:1,‘age’:2} 想要清空该字典有两个方法 方法1: d.clear() 打印出d 的值为{} 方法2&#xff…

java 10--- static

static 修饰成员变量: 实例成员变量必须要new一个对象,静态成员变量可以不new对象 静态成员变量例子: static修饰成员变量内存图: static修饰成员方法: ​​​​​​​ 修饰成员方法内存图: 注意事项&#xff1a…

裁员后,那些被“优化”的程序员都去哪儿了?

程序员在35岁真的会被裁吗? 被裁之后去哪儿工作 ,怎么办啊? 在很多社交平台,经常能看到不少小伙伴问出这样的问题,既迷茫,又慌张。有人说自己25岁就已经被裁了,也有人说做程序员,3…

mysql详情之MVCC由浅入深

概念 MVCC(Multiversion Concurrency Control):多版本并发控制。是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。 MVCC的实现思路 修改数据时,都对应一个修改者所属的事务【前提条…

统计学习方法 | 朴素贝叶斯

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法 对于给定的训练数据集,首先基于特征条件独立假设学习输入 / 输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y 朴素贝叶斯法…

数据结构---无序数组排序后的最大相邻差

无序数组排序后的最大相邻差先排序,在一个一个求差,找出最大的差解法2(计数排序变体)第一步第二步第三步第四步例子JAVA实现解法3(桶排序变体)第一步第二步第三步例子JAVA实现有一个无序整型数组,如何求出该数组排序后的任意两个相邻元素的最…

洛谷千题详解 | P1022 [NOIP2000 普及组] 计算器的改良【C++、Python、Java语言】

博主主页:Yu仙笙 专栏地址:洛谷千题详解 目录 题目背景 题目描述 输入格式 输出格式 输入输出样例 解析: C源码: Python源码: Java源码: ---------------------------------------------------------------…

前端基础_绘制带边框矩形

绘制带边框矩形 今天给小伙伴分享,如何在canvas画布中绘制一个矩形。在本例中调用了脚本文件中的draw函数进行图形描绘。该函数放置在body属性中,使用“οnlοad"draw(canvas);"”语句,调用脚本文件中的draw函数进行图像描画。在本…

大数据组件之Flink

文章目录大数据组件之Flink一.Flink简介Flink是什么?Flink的特点Flink框架处理流程Flink发展时间线Flink在企业中的应用Flink的应用场景为什么选择Flink?传统数据处理架构有状态的流式处理(第一代流式处理架构)流处理的演变&#…

实锤了,尤大妥妥的二次元迷弟 —— 聊聊 Vue 的进化历程

文章目录实锤了,尤大妥妥的二次元迷弟 —— 聊聊 Vue 的进化历程1. 前言2. 库阶段2.1 阶段发展2.2 设计重点和特征3. 框架阶段3.1 阶段发展3.2 设计重点4. 通用框架阶段4.1 阶段发展4.2 设计重点4.3 典型案例5. 编译/运行时混合阶段5.1 阶段发展5.2 设计重点5.3 框架…

五十二——六十二

五十二、JavaScript——函数简介 一、函数 函数(Function)- 函数也是一个对象 - 它具有其他对象所有的功能 - 函数中可以储存代码,且可以在需要时调用这些代码 语法: function 函数名(){ 语句。。。 } 调用函数- 调用…

drm框架介绍

Drm框架介绍 DRM是Linux目前主流的图形显示框架,相比FB架构,DRM更能适应当前日益更新的显示硬件。比如FB原生不支持多层合成,不支持VSYNC,不支持DMA-BUF,不支持异步更新,不支持fence机制等,而这…

嗅探网站视频

前置知识 MP4是我们常见的视频格式,往往我们在播放服务器视频时直接就是请求的MP4视频源。但其实这样并不好,MP4头文件[ftypmoov]较大,初始化的播放需要下载完整的头文件并进行解析,之后再下载一定长度的可播视频片段才能进行播放…

java 瑞吉外卖day4及补全功能 文件上传下载 菜品分页查询 Dto类 菜品状态修改 菜品停售以及菜品删除

文件上传下载 文件下载介绍 文件上传代码实现 服务端上传: RestController RequestMapping("/common") Slf4j public class CommonController {Value("${reggie.path}")private String basePath;//从配置文件读取设置好的basePathPostMapping…

【教程】5步免费白嫖使用Grammarly Premium高级版

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 1、使用Chrome或者Edge浏览器。 2、安装名为Cookie-Editor的谷歌Chrome扩展。 https://chrome.google.com/webstore/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm 2、打开Grammarly网站,…

DBCO-PEG-Cyanine5.5,CY5.5 PEG DBCO,二苯并环辛炔-聚乙二醇-Cyanine5.5

中文名:二苯并环辛炔-聚乙二醇-菁染料CY5.5,二苯并环辛炔-聚乙二醇-Cyanine5.5,菁染料CY5.5PEG环辛炔,花青素Cyanine5.5-聚乙二醇-二苯并环辛炔英文名:DBCO-PEG-CY5.5,DBCO-PEG-Cyanine5.5,Cyan…

位运算、递推与递归、前缀和、差分、二分

题目链接:位运算、递推与递归、前缀和、差分、二分 - Virtual Judge (vjudge.net) A.洛谷 - P2280 样例输入: 2 1 0 0 1 1 1 1样例输出: 1 分析:这道题先用二维前缀和处理一下地图,这样我们就可以在O(1)的复杂度内…

SIT-board 远程交互式白板的实现

来自上海应用技术大学的「SIT-board」团队,在七牛云校园黑客马拉松中勇夺冠军,以下是他们的参赛作品——SIT-board远程交互白板的实现过程。 需求分析 基本绘图功能 作为一个在线协作白板,离线的本地化的白板是一切功能的前提。本地白板中需…

Uniapp安卓apk原生云端打包完整过程

1.进入HbuliderX,找到菜单的发行 2.选择原生App-云打包,接着会弹出一个对话框,如图: 3.在对话框中勾选Andriod(apk包)、选择使用云端证书。 证书说明如下: (1)使用自有证书:开发者自己生成…