CNN – 卷积神经网络卷积计算详解


 

卷积计算层:CONV Layer

人的大脑在识别图片的过程中,会由不同的皮质层处理不同方面的数据,比如:颜色、形状、光暗等,然后将不同皮质层的处理结果进行合并映射操作,得出最终的结果值,第一部分实质上是一个局部的观察结果,第二部分才是一个整体的结果合并。

基于人脑的图片识别过程,我们可以认为图像的空间联系也是局部的像素联系比较紧密,而较远的像素相关性比较弱,所以每个神经元没有必要对全局图像进行感知,只要对局部进行感知,而在更高层次对局部的信息进行综合操作得出全局信息。

 

卷积过程:

一个数据输入,假设为一个RGB的图片

在神经网络中,输入是一个向量,但是在卷积神经网络中,输入是一个多通道图像(比如这个例子中有3个通道,即RBG通道)

手动画一张图来理解一下吧,字丑见谅 … …

上述第3步骤,I_{n} 表示 第 I 层特征图的第一个通道,后面的(1,1)表示该通道上位于第一行第一列的像素值。a,b,c分别表示卷积核的3个通道,它们的下标同样表示卷积核该通道上第n行第n列的参数值(权重值w)。

 

2、卷积过程实际意义理解:

对于一张图片“2”,我们来把这个’2‘分成块,一块一块看:你一块块看,是不是仍然会发现这是个数字’2‘?

也是说,你大脑会自动把这些分散的图片组合起来进行识别

也就是说,我们发现了两个现象:

  1. 如果我们只知道局部的图片,以及局部的相对位置,只要我们能将它正确组合起来,我们也可以对物体进行识别,即看做卷积核在特征图像上按步长扫描的过程,每个扫面块都是局部图片,且有局部相对位置。输出特征值也是按同样的相对位置生成在输出特征平面上。
  2. 同时局部与局部之间关联性不大,也就是局部的变化,很少影响到另外一个局部,即看做每个扫描块所有特征值经过卷积核卷积生成一个输出特征值,即局部图片通过卷积发生了变化。

实际上,我们还会遇到两个问题:

一张图片特征这么多,一个卷积层提取的特征数量有限的,提取不过来啊!

我怎么知道最后采样层选出来的特征是不是重要的呢?

我来大概介绍一下级联分类器:

大概意思就是我从一堆弱分类器里面,挑出一个最符合要求的弱分类器,用着这个弱分类器把不想要的数据剔除,保留想要的数据。

然后再从剩下的弱分类器里,再挑出一个最符合要求的弱分类器,对上一级保留的数据,把不想要的数据剔除,保留想要的数据。

最后,通过不断串联几个弱分类器,进过数据层层筛选,最后得到我们想要的数据。

那么,针对刚才的问题,我们是否也可以级联一个卷积层和池化层?

于是就有了CNN中[ ( 卷积 > 激活 ) * N > 池化? ] * M的过程。

大致上可以理解为:

  • 通过第一个卷积层提取最初特征,输出特征图(feature map)
  • 通过第一个采样层对最初的特征图(feature map )进行特征选择,去除多余特征,重构新的特征图
  • 第二个卷积层是对上一层的采样层的输出特征图(feature map)进行二次特征提取
  • 第二个采样层也对上层输出进行二次特征选择
  • 全连接层就是根据得到的特征进行分类

 

其实整个框架很好理解,我举个生动形象的例子:

输入图像好比甘蔗。

卷积层好比A君要吃甘蔗,吃完之后(卷积),他得出一系列结论,这个甘蔗真好吃,我还想再吃!

啊不是,说错了

他得出结论,这个甘蔗是圆柱形,长条,甜的,白的,多汁的等等(提取特征,提取的特征即输出特征值)

采样层就好比第一个吃甘蔗的人告诉B君,吃甘蔗,重要的是吃个开心,为什么开心,因为它又甜又多汁,还嘎嘣脆(特征选取)

第二个卷积层就好比,B君并没有去吃剩下的甘蔗,而是

头也不回。

拦也拦不住的

去吃A君吐出的甘蔗渣

然后得出结论,嗯~~,

咦~~?

哦~~!

‘原来这甘蔗渣是涩的,是苦的,不易嚼,不好咽’B君这么说道(二次提取特征,提取的特征即输出特征值)

第二个采样层就好比,B君对别人说,这个甘蔗渣啊,吃的我不开心,因为它很涩,不好咽(二次特征选取)

如果你们要吃,注意点!

注意点!

意点!

点!

全连接层的作用,就好比是一个决策者,他听取了A,B君的描述(根据最后输出的特征值进行分类)

这样,如果有人吃很多东西,其中就有甘蔗

他们吃的时候,有一样东西吃起来,感觉和A,B君描述的非常接近,那么决策者就认为

这个很大概率是甘蔗了。

以上甘蔗例子取自另外的博客,好像是简书上的,但是链接忘记了,在此感谢作者。

 

卷积核放在神经网络里,就代表对应的权重(weight)

卷积核和图像进行点乘(dot product), 就代表卷积核里的权重单独对相应位置的Pixel进行作用

这里我想强调一下点乘,虽说我们称为卷积,实际上是位置一一对应的点乘,不是真正意义的卷积,卷积公式:

https://pic1.zhimg.com/80/v2-457da5a47b952967d07f786bbca52ec8_hd.jpg

至于为什么要把点乘完所有结果加起来,实际上就是把所有作用效果叠加起来,你可以理解为三个颜色特征分量叠加成RGB特征分量,就好比前面提到的RGB图片,红绿蓝分量叠加起来产生了一张真正意义的美女图

 

Padding:

(1)我们获得的更多更细致的特征信息,上面那个例子我们就可以获得更多的图像边缘信息

(2)我们可以控制卷积层输出的特征图的size,从而可以达到控制网络结构的作用,还是以上面的例子,如果没有做zero-padding以及第二层卷积层的卷积核仍然是3×3, 那么第二层卷积层输出的特征图就是1×1,CNN的特征提取就这么结束了。