多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

目录

预测效果






基本介绍

Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测(完整源码和数据)

1.data为数据集,输入10个特征,输出3个变量。

2.main.m为程序主文件,其他为函数文件无需运行。

3.命令窗口输出MBE、MAE、RMSE、R^2和MAPE,可在下载区获取数据和程序内容。

4.粒子群优化参数为学习率、批处理样本大小和、正则化参数。

注意程序和数据放在一个文件夹,运行环境为Matlab2018及以上。

模型背景

卷积神经网络是1989 年由纽约大学Lecun 提出的一种专门用来处理具有类似网格结构的数据的神经网络,例如时间序列数据和图像数据等。卷积神经网络可以看作是传统神经网络的改进,都采用了层级网络结构。其本质是一种从输入到输出的映射,能够学习大量的映射关系。CNN 网络主要由输入层、卷积层、池化层和输出层构成,其中输入层主要是对原始数据进行预处理,包括去均值、归一化。卷积计算层有两个重要的操作: 局部关联和窗口滑动。池化层位于两个卷积层中间,用于压缩数据,减小过拟合。全连接层在CNN 网络的尾部,将池化层的输出数据进行拼接。CNN 网络最主要的优势在于权值共享的特殊结构,降低了网络的复杂性,对高维数据的处理无压力。同时CNN 也避免了传统神经网络反向传播梯度损失过快的缺点。

程序设计

  • 完整源码和数据获取方式:私信博主回复Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测
clike 复制代码
%%  数据平铺
%   将数据平铺成1维数据只是一种处理方式
%   也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
%   但是应该始终和输入层数据结构保持一致
p_train =  double(reshape(P_train, 10, 1, 1, M));
p_test  =  double(reshape(P_test , 10, 1, 1, N));
t_train =  double(T_train)';
t_test  =  double(T_test )';
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  构造网络结构
layers = [
 imageInputLayer([10, 1, 1])     % 输入层 输入数据规模[10, 1, 1]
 
 convolution2dLayer([3, 1], 16)  % 卷积核大小 3*1 生成16张特征图
 batchNormalizationLayer         % 批归一化层
 reluLayer                       % Relu激活层
 
 convolution2dLayer([3, 1], 32)  % 卷积核大小 3*1 生成32张特征图
 batchNormalizationLayer         % 批归一化层
 reluLayer                       % Relu激活层

 dropoutLayer(0.2)               % Dropout层
 fullyConnectedLayer(3)          % 全连接层
 regressionLayer];               % 回归层

%%  参数设置
options = trainingOptions('adam', ...      % ADAM 梯度下降算法
    'MiniBatchSize', 30, ...               % 批大小,每次训练样本个数30
    'MaxEpochs', 100, ...                  % 最大训练次数 100
    'InitialLearnRate', 1e-2, ...          % 初始学习率为0.01
    'LearnRateSchedule', 'piecewise', ...  % 学习率下降
    'LearnRateDropFactor', 0.5, ...        % 学习率下降因子
    'LearnRateDropPeriod', 50, ...         % 经过100次训练后 学习率为 0.01 * 0.5
    'Shuffle', 'every-epoch', ...          % 每次训练打乱数据集
    'Plots', 'training-progress', ...      % 画出曲线
    'Verbose', false);

参考资料

[1] https://blog.csdn.net/kjm13182345320/category_11003178.html?spm=1001.2014.3001.5482

[2] https://blog.csdn.net/kjm13182345320/article/details/117378431

[3] https://blog.csdn.net/kjm13182345320/article/details/118253644

相关推荐
千天夜2 天前
YOLO系列正传(三)神经网络的反向传播(back propagation)与公式推导
人工智能·python·深度学习·神经网络·学习·yolo·卷积神经网络
橙子小哥的代码世界2 天前
【计算机视觉CV-图像分类】06 - VGGNet的鲜花分类实现:从数据预处理到模型优化的完整实战!
人工智能·深度学习·神经网络·计算机视觉·分类·数据挖掘·卷积神经网络
机器学习之心12 天前
图像识别 | Matlab基于卷积神经网络(CNN)的宝可梦识别源程序,GUI界面。附详细的运行说明。
matlab·cnn·卷积神经网络
超甜的布丁mm13 天前
【深度学习】手机SIM卡托缺陷检测【附链接】
图像处理·深度学习·算法·智能手机·视觉检测·卷积神经网络
♢.*14 天前
3D 目标检测:从萌芽到前沿的技术演进之路
深度学习·目标检测·卷积神经网络·transformer
goomind16 天前
深度学习池化Pooling原理介绍
人工智能·深度学习·计算机视觉·cnn·卷积神经网络·池化·pooling
B站计算机毕业设计超人25 天前
计算机毕业设计Python+卷积神经网络CNN交通标志识别 机器学习 深度学习 爬虫 数据可视化 人工智能 模型训练
图像处理·python·深度学习·机器学习·cnn·tensorflow·卷积神经网络
艾思科蓝1 个月前
知识点归纳 | 信号处理入门
linux·卷积神经网络·实时音视频·信息与通信·信号处理·dsp开发·傅里叶分析
机器学习之心1 个月前
多输入多输出 | Matlab实现TCN-GRU时间卷积神经网络结合门控循环单元多输入多输出预测
门控循环单元·多输入多输出预测·tcn-gru·时间卷积神经网络
GOTXX1 个月前
基于深度学习的手势识别算法
人工智能·深度学习·算法·机器学习·数据挖掘·卷积神经网络