Feature map

发布时间 2023-12-15 13:02:42作者: 同淋雪

Feature map(特征图)

在CNN的每个卷积层,数据以三维形式存在。可以看成是多个二维图片叠在一起,其中每一个称为一个feature map。

在输入层,如果是灰度图片,那就只有一个feature map;如果是彩色图片,一般是三个feature map(红绿蓝)。

在其他层,层与层之间会有若干个卷积核(kernel),也称为过滤器。若只有一个卷积核,上一层中的所有feature map就跟卷积核做卷积,产生下一层的一个feature map;若有N个卷积核,就产生N个feature map。

当前层中feature map的数量,也称为深度、层数、通道数,与卷积核的深度(或叫层数、通道数量),一一对应。

在同一层,我们希望得到对于一张图片多种角度的描述,即用多种不同的卷积核对图像进行卷积,得到不同核上的响应作为图像的特征。

卷积核

在有的文档中,卷积核也称为过滤器(filter)。每个卷积核具有长、宽、深三个维度。

在一个卷积层中,可以有多个卷积核;下一层需要多少个feature map,本层就需要多少个卷积核。

卷积核的长、宽都是人为指定的,长x宽也被称为卷积核的尺寸。常用的尺寸为3x3、5x5等。卷积核的深度与当前图像的深度(feature map的张数)相同,所以指定卷积核时只需指定其长和宽两个参数。

filter

关于filter有两种理解:

在有的文档中,一个filter等同于一个卷积核,只是指定了卷积核的长宽深;

在有的框架中,例如TensorFlow,filter参数通常指定了卷积核的长、宽、深、个数四个参数。

通道

卷积神经网络中的通道(channel)也叫特征图(feature map)

卷积神经网络中主要有两个操作,一个卷积(Convolution),一个池化(Pooling)。其中,池化层并不会对通道之间的交互有影响,只是在单个通道中进行操作的;而卷积层可以在通道与通道之间进行交互,之后在一层生成新的通道。

在一般的说法中,通道指的是图片的色彩通道,而特征图是卷积过滤器输出的结果。但实际上,两者本质上是相同的,都是表示之前输入上某个特征分布的数据。

in_channel和out_channel

in_channel:feature_map的张数,也就是卷积核的深度

out_channel:取决于卷积核的数量,即下层将产生的feature_map数量。此时的out_channel会作为下一次卷积时的卷积核的in_channels

通道与特征

图片中的通道就是某种意义上的特征图。一个通道就是对某个特征的检测,通道中某一处数值的强弱就是对当前特征强弱的反应。

如一个蓝色通道中,如果灰度等级是256级的话,那么一个像素值是255就表示蓝色度最大,为0就表示蓝色度最小。

image-20231107203450155

所以卷积网络中的特征图,可以理解为通道。

之后通过对一定范围的特征图进行卷积,可以将多个特征组合出来的模式抽取成一个特征,获得下一个特征图。再继续对特征图进行卷积,特征之间继续组合,可以获得更复杂的特征图。

因为池化层的存在,会不断提取一定范围内最强烈的特征,并且缩小张量的大小,使得大范围内的特征组合也能够捕捉到。

1x1卷积的意义

1x1卷积前后的张量大小完全不变,但是可以通过特征之间的互动,由之前的64个特征图组成新的64个特征图。