deeplearning-cv-notes icon indicating copy to clipboard operation
deeplearning-cv-notes copied to clipboard

用卷积进行下采样和池化下采样的区别是什么?

Open jayboxyz opened this issue 5 years ago • 4 comments

jayboxyz avatar Dec 07 '19 13:12 jayboxyz

CNN真的需要下采样(上采样)吗? - 知乎

在常见的卷积神经网络中,采样几乎无处不在,以前是max_pooling,现在是strided卷积。

以vgg网络为例,里面使用到了相当多的max_pooling

。。。。。。

以前,我们在分类网络的最后几层使用fc,后来fc被证明参数量太大泛化性能不好,被global average pooling替代掉了,最早出现在network in network中

image

从此,分类网络的范式变为,Relu已经被融合在conv和deconv里面

Input-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->GAP-->Conv1x1-->Softmax-->Output

而分割网络的范式变为

Input-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->Conv-->DownSample_x_2-->Deconv_x_2-->Deconv_x_2-->Deconv_x_2-->Softmax-->Output

jayboxyz avatar Dec 07 '19 13:12 jayboxyz

池化层:

所谓 池化层(Pooling) 就是将特征图下采用,作用是对感受域内的特征进行筛选,提取区域内最具代表性的特征,能够有效地降低输出特征尺度,进而减少模型所需要的参数量。按操作类型通常分为最大池化(Max Pooling)、平均池化(Average Pooling)和求和池化(Sum Pooling),它们分别提取感受域内最大、平均与总和的特征值作为输出,最常用的是最大池化,也即是MaxPooling。根据相关研究,特征提取的误差主要来自于两点:

  • 邻域大小受限造成的估计值方差增大。
  • 卷积层参数误差造成估计均值的偏移。

一般来说,平均池化可以减少第一种误差,更多的保留图像的背景信息,而最大池化可以降低第二种误差,更多的保留图像的纹理信息。总结一下,池化层优点有:

  • 不变性,更关注是否存在某些特征而不是特征具体的位置。可以看作加了一个很强的先验,让学到的特征要能容忍一些的变化。(实际上这个容忍能力是非常有限的)
  • 减少下一层输入大小,减少计算量和参数量。
  • 获得定长输出。(文本分类的时候输入是不定长的,可以通过池化获得定长输出)
  • 防止过拟合或有可能会带来欠拟合。 说了这么多池化的优点,那么它有什么缺点吗?

语义分割任务中,多次下采样会使得图像中某些目标细节丢失,结果不精细。

jayboxyz avatar Dec 07 '19 13:12 jayboxyz

池化层不能训练而卷积层能,也就是说卷积层的下采样是参与网络的训练的

374178494 avatar Apr 03 '21 03:04 374178494