【MATLAB第47期】基于MATLAB的多卷积层的卷积神经网络MCNN分类预测模型,含交叉验证,可自定义层数
一、展示效果
依次对比卷积层数为1/2/3时的分类预测结果
可得出,随着卷积层数量增加,训练集/测试集正确率基本上得到改进。
1.一层CNN
2.二层CNN
3.三层CNN
二、模型参数
%—输入--------------------------------------------------------------
%imgs:特征向量(高度x宽度x通道x实例)
%label:标签矢量(实例x 1)
%kfold:交叉验证次数
%LR:学习率
%nB:小批量数量
%MaxEpochs:最大Epochs数
%FC:完全连接层的数量(类的数量)
%nC:卷积层的数量(最多3个)
%nF1:第一卷积层中的滤波器数量
%sF1:第一卷积层中滤波器的大小
%nF2:第二卷积层中的滤波器数量
%sF2:第二卷积层中滤波器的大小
%nF3:第三卷积层中的滤波器数量
%sF3:第三卷积层中滤波器的大小
%—四分类数据-------------------------------------------------
res = xlsread('数据集.xlsx');
%% 划分训练集和测试集
temp = randperm(size(res,1));
imgs1 = res(temp(1: size(res,1)), 1: 12)';
label = res(temp(1: size(res,1)), 13)';
%—输出-------------------------------------------------------------
%包含以下7个结果的结构:
%训练集平均准确率、最小准确率、最大准确率
%测试集平均准确率、最小准确率、最大准确率
%计算时间(s)
%—CNN结构参数------------------------------------------------
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', ... % 画出曲线training-progress
'Verbose', 1);
三、代码获取
后台私信回复“47期”即可获取下载链接。