admin管理员组

文章数量:1650768

Feature map的理解

在cnn的每个卷积层,数据都是以三维的形式存在的。因此就可以将其看成是许多个二维的面叠在一起,而其中的每一个面,都称作一个feature map。

例如上图中的A0层,数据可以表示为一个8*8*3的三维矩阵,也可以看作是3个8*8的二维矩阵叠在一起,即feature map是3。

Feature map的生成

以图片为对象的输入层为例,如果是一张黑白图片,即每一个像素点都只有灰度一个指标,那就可以看成只有一个feature map,如果是彩色图片,即每个像素都需要使用RGB三个通道的亮度值来表示颜色,则可以看成具有3个feature map。

上图即输入一个6*6像素的彩色RGB图片,数据规模是6*6*3,feature map是3,分别做两次3*3的卷积操作。输入层和卷积层之间会有若干个卷积核(filters)也称为过滤器。

上层的每个feature map跟一个卷积核做卷积操作,都会在下层产生一个feature map。

由此可得,有N个卷积核,下层就会产生N个feature map。在上图中,下层有3个feature map,因此卷积核(filters)的数量就是3。

在深度学习中,卷积核(filters)的数量是由网络模型指定的,确定好一个合适的filters对于模型正确提取和表达特征至关重要。

多个feature map的作用

多个feature map即上段的多个卷积核(filters)。在卷积神经网络处理图片中,我们希望用一个网络模拟视觉通路的特性,分层概念是自底向上构造一个从简单到复杂的神经元。

在同一层中,多个feature map相当于从多个不同角度来观察图片,就好比对于一个物体,我们可以从正视,俯视,侧视,斜视等多个角度来观察,在卷积神经网络中也是如此。在同一层中,我们希望得到多种描述信息,具体来说就是用多个卷积核(filters)对图像进行卷积,得到多个feature map,来作为图像的特征。他们之间的联系在于形成图像在同一层次不同基上的描述。

而在不同层中间,也有着一定规律。一般来说,下层的卷积核主要感知和收集图像的局部特征,而上层的卷积核商业转载请联系作者获得授权,非商业转载请注明出处。收集的是更大感知域中的图像特征。例如两层3*3卷积核的感知域相当于一层5*5卷积核的感知域。非常有意思的一点是,由于计算机显卡并行工作的特性,商业转载请联系作者获得授权,非商业转载请注明出处。两层3*3卷积的计算量要远小于一层5*5卷积的计算量,而且由于加深了网络的层数,更有利于非线性特征的拟合,因此深度学习中有一句话叫“The deeper, the better.”

而具体使用多少卷积核(filters)即生成多少feature map,计算多少不同角度的特征,到目前也没有一个科学的推算过程和公式,而这也是深度学习为人诟病的一点,理论支持还不够完善,很多的网络框架可以达到很好的效果,但缺少相应的数学分析,只能在论文里讲一个很好的story,结论里写一个state of the art。

但一般来说,自底向上的卷积层,卷积核的数量是不断变多的(当然也有例外,如Alexnet),主要还是靠经验和结果来调整。

本文标签: 意义featuremapCNN