【ELM回归预测】卷积神经网络结合极限学习机CNN-ELM数据回归预测【含Matlab源码 3902期】

本文介绍了极限学习机(ELM)的基本原理,特别是其在大数据和高维输入输出情况下存在的问题。通过引入深度极限学习机DELM和ELM自动编码器ELM-AE,提升模型的泛化能力。同时,探讨了如何结合卷积神经网络(CNN)构建CNN-ELM模型,用于图像识别和计算机视觉任务。Matlab代码示例展示了如何使用这些技术进行实际的数据处理和模型训练。
摘要由CSDN通过智能技术生成

在这里插入图片描述
✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、ELM简介

1 ELM的原理
在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为隐含层输出矩阵。

从以上说明中能看出极限学习机的目的就是让模型的输出与实际的输出之间的差值最小,即求解输出权重矩阵的最小二乘解的问题,只要模型能够输出权重矩阵的最小二乘解就可以完成模型的训练,输出权重矩阵β可由下式表示为
在这里插入图片描述
式中:H+为隐含层输出矩阵H的Moore-Penrose广义矩阵。

由于ELM为单隐含层结构,在面对数据量过大、输入数据的维度过高的输入输出变量时,单隐含层的极限学习机无法捕捉到数据的有效特征。在ELM中的权重和阈值是随机的产生的,这可能会使得部分的神经元成为无效的神经元,减弱算法模型对数据特征的学习能力。在研究中发现,更多的学者对于ELM的衍生算法深度极限学习机(deep extreme learning machine,DELM)产生了浓厚的兴趣,所以本文提出使用DELM对数据分析,弥补了ELM的缺点。为了增强模型的泛化能力,这里选择加入一个正则化项
在这里插入图片描述
式中:C为正则化系数。

本文在构建深度极限学习机中采用ELM自动编码器(ELM autoencoder,ELM-AE)算法得到模型的权值和阈值,ELM-AE的结构如图2所示。自动编码器(auto encoder,AE)是以无监督的学习方式学习数据的特征,它是将输入的向量通过编码器映射到隐含层的特征向量,再由解码器将特征向量重新构造原来的输入向量。构建的ELM-AE使得隐含层节点随机权值和随机阈值正交,如果随机权重和随机阈值不是正交的,它也是能够有一个很好的特征表示作用,从而提高ELM-AE的泛化能力。在ELM-AE产生正交的随机权重和阈值为
在这里插入图片描述
式中:I是单位矩阵。
在这里插入图片描述
图2 ELM-AE结构
在ELM-AE中,输出权重β负责学习从特征空间到输入数据的转换。并且在传统的方法中,是根据最小二乘法求得权重系数,但是在隐含层节点数过多的情况下,这样会导致模型的泛化能力弱和鲁棒性差。所以在求解权重系数中引入正则化系数,提高模型的泛化能力,这里将目标函数设置为
在这里插入图片描述
式中:C为正则化参数。对于稀疏和压缩的ELM-AE表示,把公式中的β求导,并且让目标函数为0,这样求得输出权重β为
在这里插入图片描述
式中:H为ELM-AE的隐含层输出矩阵;X为ELM-AE的输入和输出。

对于输入维度等于编码维度的ELM-AE,ELM-AE的输出权重矩阵β代表着从输入特征空间的数据到隐含层特征空间的转换,则输出权重β的计算公式为
在这里插入图片描述

2 卷积神经网络结合极限学习机CNN-ELM
卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,主要用于图像识别和计算机视觉任务。它通过卷积层、池化层和全连接层等组件来提取图像特征并进行分类。

极限学习机(Extreme Learning Machine,ELM)是一种单层前馈神经网络,它的特点是随机初始化隐藏层的权重和偏置,然后通过解析解的方式直接计算输出层的权重。ELM具有快速训练速度和良好的泛化能力。

将CNN和ELM结合起来,就是CNN-ELM模型。这种结合的目的是利用CNN强大的特征提取能力和ELM快速训练的优势。具体原理如下:
(1)首先,使用CNN对输入图像进行卷积操作,提取图像的局部特征。卷积层通过滑动窗口的方式对图像进行卷积操作,生成一系列的特征图。
(2)接下来,使用池化层对特征图进行下采样,减少特征图的维度。池化操作可以保留主要特征并减少计算量。
(3)然后,将池化后的特征图展开成一维向量,并输入到ELM中。ELM的隐藏层权重和偏置是随机初始化的,然后通过解析解的方式计算输出层的权重。
(4)最后,使用ELM的输出层对输入样本进行分类。ELM的输出层可以是线性回归、二分类或多分类。

⛄二、部分源代码

%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行

%% 导入数据
res = xlsread(‘数据集.xlsx’);

%% 划分训练集和测试集
temp = randperm(103);

P_train = res(temp(1: 80), 1: 7)‘;
T_train = res(temp(1: 80), 8)’;
M = size(P_train, 2);

P_test = res(temp(81: end), 1: 7)‘;
T_test = res(temp(81: end), 8)’;
N = size(P_test, 2);
num_dim = size(res, 2)-1 ; % 特征维度
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax(‘apply’, P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax(‘apply’, T_test, ps_output);
%% 数据平铺
% 将数据平铺成1维数据只是一种处理方式
% 也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
% 但是应该始终和输入层数据结构保持一致
p_train = double(reshape(p_train, num_dim, 1, 1, M));
p_test = double(reshape(p_test , num_dim, 1, 1, N));

%% 构造网络结构
layers = [
imageInputLayer([num_dim, 1, 1], “Name”, “Input”) % 输入层

convolution2dLayer([2, 1], 16, “Name”, “Conv1”) % 卷积核大小为2*1 生成16个卷积
batchNormalizationLayer(“Name”, “BN1”) % 批归一化层
reluLayer(“Name”, “Relu1”) % relu激活层

maxPooling2dLayer([2, 1], ‘Stride’, 1, “Name”, “pool_1”) % 最大池化层 大小为2*1 步长为2

convolution2dLayer([2, 1], 32, “Name”, “Conv2”) % 卷积核大小为2*1 生成32个卷积
batchNormalizationLayer(“Name”, “BN2”) % 批归一化层
reluLayer(“Name”, “Relu2”) % relu激活层

maxPooling2dLayer([2, 1], ‘Stride’, 1, “Name”, “pool_2”) % 最大池化层,大小为2*2,步长为2

fullyConnectedLayer(1) % 全连接层
regressionLayer]; % 分类层

%% 参数设置
options = trainingOptions(‘adam’, … % Adam 梯度下降算法
‘MaxEpochs’, 100,… % 最大训练次数 500
‘MiniBatchSize’, 10,…
‘InitialLearnRate’, 1e-3,… % 初始学习率为0.001
‘L2Regularization’, 1e-04,… % L2正则化参数
‘LearnRateSchedule’, ‘piecewise’,… % 学习率下降
‘LearnRateDropFactor’, 0.1,… % 学习率下降因子 0.1
‘LearnRateDropPeriod’, 100,… % 经过450次训练后 学习率为 0.001*0.1
‘Shuffle’, ‘every-epoch’,… % 每次训练打乱数据集
‘ValidationPatience’, Inf,… % 关闭验证
‘Plots’, ‘training-progress’,… % 画出曲线
‘Verbose’, false);

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]周莉,刘东,郑晓亮.基于PSO-DELM的手机上网流量预测方法[J].计算机工程与设计. 2021,42(02)
[2]张宇,王晓东,李晓光. (2017). 基于卷积神经网络和极限学习机的图像分类方法. 计算机应用与软件, 34(11), 1-6.

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

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值