今天给大家分享关于卷积神经网络经典结构(CNN)。

卷积神经网络图片分类代码 卷积神经网络图像分类_池化

经典的图像分类的CNN结构就是如上图一样

输入层,接着是卷积层和池化层交替排列形成的,最后是三层全连接层和softmax层进行最终的图片分类。

卷积神经网络图片分类代码 卷积神经网络图像分类_卷积_02

卷积层

我们首先来谈卷积层(convolutional layer)。卷积层是指使用卷积的操作处理图片,在我们了解卷积的定义前,我们先了解一下图片。

首先我们要先了解图片是怎么储存的。图片的储存方式是以像素点储存的,而每个像素点有可以被数字表示。所以一张像素为28*28的图片可以看成是一个大小为28*28的矩阵。

在知道了这个之后,我们再拿出来卷积的定义。

在泛函分析中,卷积、旋积或褶积(英语:Convolution)是通过两个函数f和g生成第三个函数的一种数学算子。他在图像识别中的意义就是提取图像的特征。

我们不用理解的太明白,我们先把他理解为一种矩阵的运算。

那么在卷积神经网络中,卷积运算是指从图像的左上角开始,开一个活动窗口(如3*3),窗口图像(其像素颜色对应的数字)与卷积核(解释见下文括号)进行卷积运算,并用计算结果代替原来的值。然后,活动窗口向右移动一列,并作同样的运算。以此类推,从左到右、从上到下,即可得到一幅新值代替的图像。

卷积神经网络图片分类代码 卷积神经网络图像分类_卷积神经网络_03

(如卷积的定义,我们要先有两个函数f1,f2。若把图像看为f1,那么卷积核就是f2,更简单一点的说就是图像就是自变量(x),卷积核就是函数关系式(f(x)),计算结果就是因变量(y),由此观之,不同的卷积核有不同的结果图像)

,如果你似懂非懂或者根本没懂也没关系,这里有一个有趣的网站可以帮助你深刻的了解卷积。

Image Kernels explained visually

(往下翻找到图片,我们可以看到三张图片)

(最右边的图像是28*28的图像,是灰度图(即颜色对应的数字为0-255),就是我们要分析的图像)

(中间的图像是未来方便观察我们放大的图像,我们可以清楚的看到像素点(方块))

(最左边的图像就是中间图像颜色对应的28*28矩阵,图片上的数字均为0-255的值)

(在三张图片的下面就是卷积核)

(再下面就是卷积的运算过程啦)

怎么样?是不是很神奇?

当然你可能发现了一点疑惑,为什么处理的到的图像最外层是黑的。这是因为为更加充分的提取图像内的特征,一般会在图像外面加一层0,就是扩大矩阵,在外围全部放0,这样做卷积的话,边缘位置的特征也会被提取出来,但是图像中0对应的是黑色,所以最外层就相当于是全黑的。

所以总结一下,卷积层的作用是提取输入图片中的信息,这些信息被称为图像特征。

激活函数

激活函数是什么意思?大家可能不太理解。

因为是入门篇,大家不用理解太深,他其实就是用来加入非线性因素的,因为线性模型的表达能力不够。(仅仅是为了便于理解可以这么说一个一元函数是表达不了自变量于因变量的复杂函数关系的)所以需要引入激活函数,那么什么样子的函数可以当作激活函数呢?

激活函数需要满足一下几点。

1. 非线性:即导数不是常数。保证多层网络不退化成单层线性网络。这也是激活函数的意义所在。

2. 可微性:保证了在优化中梯度的可计算性。

3. 计算简单:计算太复杂计算机负担会大大增加。

4. 非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。

这里不是理解的重点,我们只需要明白他的作用就是模拟复杂的数据类型。话不多说我们进入下一个重点,池化层。

池化层

接下来我们来看池化层(pooling),过去又叫降采样层(subsampling layer)。

池化层紧跟在卷积层之后,不改变特征面的个数,而通过降低特征面的分辨率来获得具有空间不变性的特征池化层起到二次提取特征的作用。

卷积神经网络图片分类代码 卷积神经网络图像分类_卷积神经网络图片分类代码_04

常见的池化层有

卷积神经网络图片分类代码 卷积神经网络图像分类_python_05

 由此观之,池化层的作用就是在保留图片特征的同时,减少计算量。

那么在一系列的卷积核池化交替排列后(c1,s1,c2,s2...),就进入了全连接层。

全连接层

全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。

全连接层,是每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。

卷积神经网络图片分类代码 卷积神经网络图像分类_卷积_06

最后一层全连接层的输出值被传递给一个输出,可以采用 softmax 逻辑回归(softmax regression)进行 分 类,该层也可 称为 softmax 层(softmax layer)。

简而言之,就是将根据之前得到的数据将图像划分到最可能的哪一类图像中去。

这就是卷积神经网络的经典结构。如果你不满足于经典模型,可以参考我的另一篇文章。

如果你觉得对你有帮助的话,请给作者一个赞吧QTQ。

我会把你的赞当作我前进的动力,继而不懈的继续前行。