无锡网站制作专业服务公司,自己建设网站网站赚钱,小游戏网页版链接,班级网站建设感想多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入…多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测完整源码和数据 1.data为数据集输入10个特征输出3个变量。 2.main.m为程序主文件其他为函数文件无需运行。 3.命令窗口输出MBE、MAE、RMSE、R^2和MAPE可在下载区获取数据和程序内容。 4.优化参数为学习率、批处理样本大小和、正则化参数。 注意程序和数据放在一个文件夹运行环境为Matlab2018及以上。 模型背景 卷积神经网络是1989 年由纽约大学Lecun 提出的一种专门用来处理具有类似网格结构的数据的神经网络例如时间序列数据和图像数据等。卷积神经网络可以看作是传统神经网络的改进都采用了层级网络结构。其本质是一种从输入到输出的映射能够学习大量的映射关系。CNN 网络主要由输入层、卷积层、池化层和输出层构成其中输入层主要是对原始数据进行预处理包括去均值、归一化。卷积计算层有两个重要的操作: 局部关联和窗口滑动。池化层位于两个卷积层中间用于压缩数据减小过拟合。全连接层在CNN 网络的尾部将池化层的输出数据进行拼接。CNN 网络最主要的优势在于权值共享的特殊结构降低了网络的复杂性对高维数据的处理无压力。同时CNN 也避免了传统神经网络反向传播梯度损失过快的缺点。 程序设计
完整源码和数据获取方式私信博主回复Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测。
%% 数据平铺
% 将数据平铺成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, ... % 批大小,每次训练样本个数30MaxEpochs, 100, ... % 最大训练次数 100InitialLearnRate, 1e-2, ... % 初始学习率为0.01LearnRateSchedule, piecewise, ... % 学习率下降LearnRateDropFactor, 0.5, ... % 学习率下降因子LearnRateDropPeriod, 50, ... % 经过100次训练后 学习率为 0.01 * 0.5Shuffle, every-epoch, ... % 每次训练打乱数据集Plots, training-progress, ... % 画出曲线Verbose, false);
参考资料 [1] https://blog.csdn.net/kjm13182345320/category_11003178.html?spm1001.2014.3001.5482 [2] https://blog.csdn.net/kjm13182345320/article/details/117378431 [3] https://blog.csdn.net/kjm13182345320/article/details/118253644