【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期”获取下载链接。


相关文章
|
14天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
71 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
287 55
|
26天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
166 80
|
15天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
10天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
20天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
23天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
1月前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
17天前
|
传感器 算法
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
|
27天前
|
机器学习/深度学习 人工智能 算法
基于GRNN广义回归网络和MFCC的语音情绪识别matlab仿真,对比SVM和KNN
该语音情绪识别算法基于MATLAB 2022a开发,可识别如悲伤等情绪,置信度高达0.9559。核心程序含中文注释及操作视频。算法采用MFCC特征提取与GRNN广义回归网络,通过预加重、分帧、加窗、FFT、梅尔滤波器组、对数运算和DCT等步骤处理语音信号,实现高效的情绪分类。

热门文章

最新文章