首页 > 其他分享 >一维CNN,二维CNN以及三维CNN的训练模型matlab仿真

一维CNN,二维CNN以及三维CNN的训练模型matlab仿真

时间:2023-04-05 11:04:28浏览次数:43  
标签:10 16 卷积 维度 matlab 一维 CNN 过滤器 channel

1.算法描述 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)” 。 对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络 ;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域。 卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求 。 1.png

图中的输入的数据维度为8,过滤器的维度为5。与二维卷积类似,卷积后输出的数据维度为8−5+1=48−5+1=4。

如果过滤器数量仍为1,输入数据的channel数量变为16,即输入数据维度为8×168×16。这里channel的概念相当于自然语言处理中的embedding,而该输入数据代表8个单词,其中每个单词的词向量维度大小为16。在这种情况下,过滤器的维度由55变为5×165×16,最终输出的数据维度仍为44。

如果过滤器数量为nn,那么输出的数据维度就变为4×n4×n。

一维卷积常用于序列模型,自然语言处理领域。

2.png

图中的输入的数据维度为14×1414×14,过滤器大小为5×55×5,二者做卷积,输出的数据维度为10×1010×10(14−5+1=1014−5+1=10)。

上述内容没有引入channel的概念,也可以说channel的数量为1。如果将二维卷积中输入的channel的数量变为3,即输入的数据维度变为(14×14×314×14×3)。由于卷积操作中过滤器的channel数量必须与输入数据的channel数量相同,过滤器大小也变为5×5×35×5×3。在卷积的过程中,过滤器与数据在channel方向分别卷积,之后将卷积后的数值相加,即执行10×1010×10次3个数值相加的操作,最终输出的数据维度为10×1010×10。

以上都是在过滤器数量为1的情况下所进行的讨论。如果将过滤器的数量增加至16,即16个大小为10×10×310×10×3的过滤器,最终输出的数据维度就变为10×10×1610×10×16。可以理解为分别执行每个过滤器的卷积操作,最后将每个卷积的输出在第三个维度(channel 维度)上进行拼接。

二维卷积常用于计算机视觉、图像处理领域。 3.png

这里采用代数的方式对三维卷积进行介绍,具体思想与一维卷积、二维卷积相同。

假设输入数据的大小为a1×a2×a3a1×a2×a3,channel数为cc,过滤器大小为ff,即过滤器维度为f×f×f×cf×f×f×c(一般不写channel的维度),过滤器数量为nn。

基于上述情况,三维卷积最终的输出为(a1−f+1)×(a2−f+1)×(a3−f+1)×n(a1−f+1)×(a2−f+1)×(a3−f+1)×n。该公式对于一维卷积、二维卷积仍然有效,只有去掉不相干的输入数据维度就行。

三维卷积常用于医学领域(CT影响),视频处理领域(检测动作及人物行为)。

2.仿真效果预览 matlab2022a仿真结果如下:

6.png4.png5.png

3.MATLAB核心程序

%% Define Network Architecture
% Define the convolutional neural network architecture.
layers = [
    imageInputLayer([22 5 3]) % 22X5X3 refers to number of features per sample
    convolution2dLayer(5,16,'Padding','same') % 5x5 filtr is used, u can try 3x3 filtr also
    reluLayer % activation function
    % i have not used any pooling layer here, since small data size
    % if u giving big data use pooling layer
    % pooling layer reduces size of the matrix
    fullyConnectedLayer(384) % 384 refers to number of neurons in next FC hidden layer
    fullyConnectedLayer(384) % 384 refers to number of neurons in next FC hidden layer
    fullyConnectedLayer(2) % 2 refers to number of neurons in next output layer (number of output classes)    
    softmaxLayer
    classificationLayer];
.............................................................
net = trainNetwork(trainD,targetD',layers,options);
predictedLabels = classify(net,trainD)'

标签:10,16,卷积,维度,matlab,一维,CNN,过滤器,channel
From: https://blog.51cto.com/matworld/6170281

相关文章

  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述        20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有......
  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有良好的泛化能力,从......
  • 【无人机协同】多无人机协同任务规划模型研究附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • matlab学习笔记7 插值方法与求解微分方程
    插值法拉格朗日插值分段插值由于高次函数往往拟合的情况反而不好,所以用两点之间的直线代替其值进行插值三次样条插值更加光滑,节点处二阶可导代码汇总interp1(x0,y0,x,'cubic')%分段三次多项式插值,第三个参数不写则为普通分段插值interp1(x0,y0,x,'spline')%三次样条插值......
  • 基于mnist手写数字数据库的深度学习网络训练和数字识别matlab仿真
    1.算法描述        MNIST数据集(MixedNationalInstituteofStandardsandTechnologydatabase)是美国国家标准与技术研究院收集整理的大型手写数字数据库,该数据集包含60000 个于训练的样本和10000 个于测试的样本,图像是固定⼤小(28x28像素),每个像素的值为......
  • 卷积神经网络 – CNN
    1981年的诺贝尔医学奖,颁发给了DavidHubel(出生于加拿大的美国神经生物学家)和TorstenWiesel,以及RogerSperry。前两位的主要贡献,是“发现了视觉系统的信息处理”,可视皮层是分级的。图:纪念1981年诺贝尔医学奖的邮票。人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素Pixel......
  • MATLAB读写excel中指定sheet行列中的数据 and 去除含有NaN的行或者列
    matlab读写excel中指定sheet行列中的数据data=xlsread('data.xlsx','sheet1','c2:c12');xlswrite('newdata.xlsx',newdata,'Sheet1','p2:p12');matlab中去除含有NaN的行或者列b=a(all(~isnan(a),2),:);%删除含有NAN的行b=a(al......
  • 基于LSTM网络的空调功耗数据预测matlab仿真
    1.算法描述       长短期记忆网络(LSTM,LongShort-TermMemory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个t......
  • m基于AlexNet神经网络和GEI步态能量图的步态识别算法MATLAB仿真
    1.算法描述        AlexNet是2012年ImageNet竞赛冠军获得者Hinton和他的学生AlexKrizhevsky设计的。也是在那年之后,更多的更深的神经网络被提出,比如优秀的vgg,GoogLeNet。这对于传统的机器学习分类算法而言,已经相当的出色。Alexnet网络模型于2012年提出。它具有更高维......
  • MATLAB计算变异函数并绘制经验半方差图
      本文介绍基于MATLAB求取空间数据的变异函数,并绘制经验半方差图的方法。  由于本文所用的数据并不是我的,因此遗憾不能将数据一并展示给大家;但是依据本篇博客的思想与对代码的详细解释,大家用自己的数据,可以将空间数据变异函数计算与经验半方差图绘制的全部过程与分析方法加以......