【MATLAB第46期】基于MATLAB的改进模糊卷积神经网络IFCNN分类预测模型

简介: 【MATLAB第46期】基于MATLAB的改进模糊卷积神经网络IFCNN分类预测模型

【MATLAB第46期】基于MATLAB的改进模糊卷积神经网络IFCNN多分类预测模型


一、展示效果


二、思路


在正常CNN卷积神经网络训练阶段之后,使用进化算法(蜜蜂算法)拟合深度学习权重和偏差。


本文案例数据中, 用深度模型进行4分类预测。


先在 CNN 训练之后,为每个类别权重创建初始模糊模型

然后提取全连接层的权重进行进化寻优,并替换初始权重

最后,优化后的权重(来自全连接层)建立模型。

数据情况:

 %%  导入数据
res = xlsread('数据集.xlsx');
%%  划分训练集和测试集
temp = randperm(357);
P_train = res(temp(1: 240), 1: 12)';
T_train = res(temp(1: 240), 13)';
M = size(P_train, 2);
P_test = res(temp(241: end), 1: 12)';
T_test = res(temp(241: end), 13)';
N = size(P_test, 2);
%%  数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test  = mapminmax('apply', P_test, ps_input);
t_train =  categorical(T_train)';
t_test  =  categorical(T_test )';
%%  数据平铺
%   将数据平铺成1维数据只是一种处理方式
%   也可以平铺成2维数据,以及3维数据,需要修改对应模型结构
%   但是应该始终和输入层数据结构保持一致
p_train =  double(reshape(P_train, 12, 1, 1, M));
p_test  =  double(reshape(P_test , 12, 1, 1, N));

三、CNN结构参数


%%  构造网络结构
layers = [
 imageInputLayer([12, 1, 1])             % 输入层
 convolution2dLayer([2, 1], 16)          % 卷积核大小为2*1 生成16个卷积
 batchNormalizationLayer                 % 批归一化层
 reluLayer                               % relu激活层
 maxPooling2dLayer([2, 1], 'Stride', 1)  % 最大池化层 大小为2*1 步长为2
 convolution2dLayer([2, 1], 32)          % 卷积核大小为2*1 生成32个卷积
 batchNormalizationLayer                 % 批归一化层
 reluLayer                               % relu激活层
 maxPooling2dLayer([2, 1], 'Stride', 1)  % 最大池化层,大小为2*2,步长为2
 fullyConnectedLayer(4)                  % 全连接层(类别数) 
 softmaxLayer                            % 损失函数层
 classificationLayer];                   % 分类层
%%  参数设置
options = trainingOptions('adam', ...      % Adam 梯度下降算法
    'MaxEpochs', 500, ...                  % 最大训练次数 500
    'InitialLearnRate', 1e-3, ...          % 初始学习率为0.001
    'L2Regularization', 1e-04, ...         % L2正则化参数
    'LearnRateSchedule', 'piecewise', ...  % 学习率下降
    'LearnRateDropFactor', 0.5, ...        % 学习率下降因子 0.1
    'LearnRateDropPeriod', 450, ...        % 经过450次训练后 学习率为 0.001 * 0.5
    'Shuffle', 'every-epoch', ...          % 每次训练打乱数据集
    'ValidationPatience', Inf, ...         % 关闭验证
    'Plots', 'none', ...      % 画出曲线
    'Verbose', 1);


四、IFCNN结构参数

Params.MaxIt=20;%进化算法迭代次数
Params.nScoutBee = 10;%进化算法种群数量
%  训练模型
[net,info] = trainNetwork(p_train, t_train, layers, options);
% 提取全连接层的权重进行进化
FullConn=netobj.Layers(10, 1).Weights;
netbias=netobj.Layers(10, 1).Bias;
%% 为每个类权重制作基本模糊模型
% 模糊 C 均值 (FCM) 簇数
ClusNum=3; 
% 为每个类别权重创建初始模糊模型
for i=1:sizefinal
fism{i}=GenerateFuzzy(datam{i},ClusNum);
end
%% 训练输出提取
for i=1:sizefinal
TrTar{i}=datam{i}.TrainTargets;
TrInp{i}=datam{i}.TrainInputs;
TrainOutputs{i}=evalfis(TrInp{i},BeesFISm{i});
end;
% 将输出单元格转换为矩阵
for i=1:sizefinal
EvolvedFullConn(i,:)=TrainOutputs{i}';
end;
%% 替换进化的权重
netobj.Layers(10, 1).Weights=EvolvedFullConn;
% 新网络
net2=netobj.Layers;


五、代码获取


后台私信回复“45期”获取下载链接。


相关文章
|
2天前
|
算法
MATLAB|【免费】融合正余弦和柯西变异的麻雀优化算法SCSSA-CNN-BiLSTM双向长短期记忆网络预测模型
这段内容介绍了一个使用改进的麻雀搜索算法优化CNN-BiLSTM模型进行多输入单输出预测的程序。程序通过融合正余弦和柯西变异提升算法性能,主要优化学习率、正则化参数及BiLSTM的隐层神经元数量。它利用一段简单的风速数据进行演示,对比了改进算法与粒子群、灰狼算法的优化效果。代码包括数据导入、预处理和模型构建部分,并展示了优化前后的效果。建议使用高版本MATLAB运行。
|
3天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了使用matlab2022a中优化后的算法,应用于时间序列回归预测,结合CNN、LSTM和Attention机制,提升预测性能。GWO算法用于优化深度学习模型的超参数,模拟灰狼社群行为以求全局最优。算法流程包括CNN提取局部特征,LSTM处理序列依赖,注意力机制聚焦相关历史信息。GWO的灰狼角色划分和迭代策略助力寻找最佳解。
|
4天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络的结构组成与解释(详细介绍)
卷积神经网络的结构组成与解释(详细介绍)
21 0
|
4天前
|
机器学习/深度学习 算法 数据挖掘
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
8 1
|
4天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
10 1
|
4天前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
33 1
卷积神经网络(CNN)的数学原理解析
|
4天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
11 2
|
4天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络(CNN)——基础知识整理
卷积神经网络(CNN)——基础知识整理
28 2
|
4天前
|
机器学习/深度学习 存储 自然语言处理
深度学习500问——Chapter05: 卷积神经网络(CNN)(1)
深度学习500问——Chapter05: 卷积神经网络(CNN)(1)
15 1
|
4天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度

热门文章

最新文章