Matlab中CNN工具包简介(一)

       之前对自己的数据运用了SVM,KNN,BP神经网络的分类方法,那接下来想尝试一下用CNN来处理自己的数据,虽然对CNN早有耳闻,但是从来没有真正去了解过,所以打算先从Matlab里的神经网络的toolbox开始了解一下CNN。只是大概的做一个了解,并不涉及误差传递公式等的推导,只是一个简易的笔记而已。

       卷积神经网络(CNN)相信大家都不陌生,它是多层感知机(MLP)的一个变种,它通过加强神经网络总相邻层之间节点的局部连接模式来挖掘自然图像的空间局部关联信息。在CNN中,每一个稀疏滤波器在整个感受野中是重复叠加的,如此重复的节点形成了一种特征图(featuremap),这个特征图可以共享相同的参数,比如相同的权值矩阵和偏置向量。

      CNN主要包括3个过程:

    (1)Feedforward pass(向前传播)

    (2)Calculate cost(误差计算)

    (3)Backpropagation(误差反向传播)

      其实,卷积神经网络依然是层级网络,只是层的功能和形式发生了变化。卷积神经网络主要包括的层级结构有:数据输入层(Input layer),卷积层(Conv layer),ReLU激励层(ReLU layer,简单的CNN好像没有涉及这一层),池化层(Pooling layer,又可以称为是下采样层),全连接层(FC layer,同BP神经网络一样)。典型的CNN中,开始几层都是卷积和下采样层(池化层)的交替,然后在最后一些层(靠近输出层的),都是全连接的一维网络。

    (1)  数据输入层

      该层主要做的处理是对原始图像数据进行预处理,其中包括:去均值,把输入数据各个维度都中心化为0,如果样本有非零的均值,而且与测试部分的非零均值不一致,可能就会导致识别率的下降;归一化,幅度归一化到同样的范围,这里的归一化是广义的,不一定要归到0和1,但要是相同的一

你可能感兴趣的:(Matlab中CNN工具包简介(一))