卷积计算层:CONV Layer
人的大脑在识别图片的过程中,会由不同的皮质层处理不同方面的数据,比如:颜色、形状、光暗等,然后将不同皮质层的处理结果进行合并映射操作,得出最终的结果值,第一部分实质上是一个局部的观察结果,第二部分才是一个整体的结果合并。
基于人脑的图片识别过程,我们可以认为图像的空间联系也是局部的像素联系比较紧密,而较远的像素相关性比较弱,所以每个神经元没有必要对全局图像进行感知,只要对局部进行感知,而在更高层次对局部的信息进行综合操作得出全局信息。
卷积过程:
一个数据输入,假设为一个RGB的图片
在神经网络中,输入是一个向量,但是在卷积神经网络中,输入是一个多通道图像(比如这个例子中有3个通道,即RBG通道)
手动画一张图来理解一下吧,字丑见谅 … …
上述第3步骤, 表示 第 I 层特征图的第一个通道,后面的(1,1)表示该通道上位于第一行第一列的像素值。a,b,c分别表示卷积核的3个通道,它们的下标同样表示卷积核该通道上第n行第n列的参数值(权重值w)。
2、卷积过程实际意义理解:
对于一张图片“2”,我们来把这个’2‘分成块,一块一块看:你一块块看,是不是仍然会发现这是个数字’2‘?
也是说,你大脑会自动把这些分散的图片组合起来进行识别
也就是说,我们发现了两个现象:
- 如果我们只知道局部的图片,以及局部的相对位置,只要我们能将它正确组合起来,我们也可以对物体进行识别,即看做卷积核在特征图像上按步长扫描的过程,每个扫面块都是局部图片,且有局部相对位置。输出特征值也是按同样的相对位置生成在输出特征平面上。
- 同时局部与局部之间关联性不大,也就是局部的变化,很少影响到另外一个局部,即看做每个扫描块所有特征值经过卷积核卷积生成一个输出特征值,即局部图片通过卷积发生了变化。
实际上,我们还会遇到两个问题:
一张图片特征这么多,一个卷积层提取的特征数量有限的,提取不过来啊!
我怎么知道最后采样层选出来的特征是不是重要的呢?
我来大概介绍一下级联分类器:
大概意思就是我从一堆弱分类器里面,挑出一个最符合要求的弱分类器,用着这个弱分类器把不想要的数据剔除,保留想要的数据。
然后再从剩下的弱分类器里,再挑出一个最符合要求的弱分类器,对上一级保留的数据,把不想要的数据剔除,保留想要的数据。
最后,通过不断串联几个弱分类器,进过数据层层筛选,最后得到我们想要的数据。
那么,针对刚才的问题,我们是否也可以级联一个卷积层和池化层?
于是就有了CNN中[ ( 卷积 > 激活 ) * N > 池化? ] * M的过程。
大致上可以理解为:
- 通过第一个卷积层提取最初特征,输出特征图(feature map)
- 通过第一个采样层对最初的特征图(feature map )进行特征选择,去除多余特征,重构新的特征图
- 第二个卷积层是对上一层的采样层的输出特征图(feature map)进行二次特征提取
- 第二个采样层也对上层输出进行二次特征选择
- 全连接层就是根据得到的特征进行分类
其实整个框架很好理解,我举个生动形象的例子:
输入图像好比甘蔗。
卷积层好比A君要吃甘蔗,吃完之后(卷积),他得出一系列结论,这个甘蔗真好吃,我还想再吃!
啊不是,说错了
他得出结论,这个甘蔗是圆柱形,长条,甜的,白的,多汁的等等(提取特征,提取的特征即输出特征值)
采样层就好比第一个吃甘蔗的人告诉B君,吃甘蔗,重要的是吃个开心,为什么开心,因为它又甜又多汁,还嘎嘣脆(特征选取)
第二个卷积层就好比,B君并没有去吃剩下的甘蔗,而是
头也不回。
拦也拦不住的
去吃A君吐出的甘蔗渣
然后得出结论,嗯~~,
咦~~?
哦~~!
‘原来这甘蔗渣是涩的,是苦的,不易嚼,不好咽’B君这么说道(二次提取特征,提取的特征即输出特征值)
第二个采样层就好比,B君对别人说,这个甘蔗渣啊,吃的我不开心,因为它很涩,不好咽(二次特征选取)
如果你们要吃,注意点!
注意点!
意点!
点!
全连接层的作用,就好比是一个决策者,他听取了A,B君的描述(根据最后输出的特征值进行分类)
这样,如果有人吃很多东西,其中就有甘蔗
他们吃的时候,有一样东西吃起来,感觉和A,B君描述的非常接近,那么决策者就认为
这个很大概率是甘蔗了。
以上甘蔗例子取自另外的博客,好像是简书上的,但是链接忘记了,在此感谢作者。
卷积核放在神经网络里,就代表对应的权重(weight)
卷积核和图像进行点乘(dot product), 就代表卷积核里的权重单独对相应位置的Pixel进行作用
这里我想强调一下点乘,虽说我们称为卷积,实际上是位置一一对应的点乘,不是真正意义的卷积,卷积公式:
至于为什么要把点乘完所有结果加起来,实际上就是把所有作用效果叠加起来,你可以理解为三个颜色特征分量叠加成RGB特征分量,就好比前面提到的RGB图片,红绿蓝分量叠加起来产生了一张真正意义的美女图
Padding:
(1)我们获得的更多更细致的特征信息,上面那个例子我们就可以获得更多的图像边缘信息
(2)我们可以控制卷积层输出的特征图的size,从而可以达到控制网络结构的作用,还是以上面的例子,如果没有做zero-padding以及第二层卷积层的卷积核仍然是3×3, 那么第二层卷积层输出的特征图就是1×1,CNN的特征提取就这么结束了。