池化层的理解(pooling)

参考网址:

https://blog.****.net/weixin_38145317/article/details/89310404

https://www.zhihu.com/question/36686900/answer/130890492

1.池化层的作用:对于输入的图像,池化层最主要的作用就是压缩图像

池化层在连续的卷积层中间,用于压缩数据和减少参数的量,减少过拟合

通常使用的汇合操作为平均值汇合(average-pooling)和最大值汇合(max-pooling),最大池化保留了纹理特征,平均池化保留整体的数据特征。其实池化操作实际上就是一种“降采样”(down-sampling)操作

2.池化层的特点

1.特征不变性(feature invariant):

  • 不变性包括translation(平移),rotation(旋转),scale(尺度)
  • 特征不变性,也就是我们在图像处理中经常提到的特征的尺度不变性,池化操作就是图像的resize,平时一张狗的图像被缩小了一倍我们还能认出这是一张狗的照片,这说明这张图像中仍保留着狗最重要的特征,我们一看就能判断图像中画的是一只狗,图像压缩时去掉的信息只是一些无关紧要的信息,而留下的信息则是具有尺度不变性的特征,是最能表达图像的特征
     
  •  translation invariance:
  • 这里举一个直观的例子(数字识别),假设有一个16x16的图片,里面有个数字1,我们需要识别出来,这个数字1可能写的偏左一点(图1),这个数字1可能偏右一点(图2),图1到图2相当于向右平移了一个单位,但是图1和图2经过max pooling之后它们都变成了相同的8x8特征矩阵,主要的特征我们捕获到了,同时又将问题的规模从16x16降到了8x8,而且具有平移不变性的特点。图中的a(或b)表示,在原始图片中的这些a(或b)位置,最终都会映射到相同的位置。

池化层的理解(pooling)

  • rotation invariance:
  • 下图表示汉字“一”的识别,第一张相对于x轴有倾斜角,第二张是平行于x轴,两张图片相当于做了旋转,经过多次max pooling后具有相同的特征

池化层的理解(pooling)池化层的理解(pooling)

  •  scale invariance:
  • 下图表示数字“0”的识别,第一张的“0”比较大,第二张的“0”进行了较小,相当于作了缩放,同样地,经过多次max pooling后具有相同的特征

池化层的理解(pooling)

2.特征降维

  •  我们知道一幅图像含有的信息是很大的,特征也很多,但是有些信息对于我们做图像任务时没有太多用途或者有重复,我们可以把这类冗余信息去除,把最重要的特征抽取出来,这也是池化操作的一大作用

3.在一定程度防止过拟合(overfitting),更方便优化。

  • 对于一个样本(一张图片)x,特征维数dim(x)从原来的256(16x16),到现在的64(8x8),我们的特征维数减少了,同时我们的参数w规模也减少了,整个模型就变得相对简单点。就好比一些常见的防止过拟合的方法(后续更新),例如L1正则,目的是为了得到稀疏解,即稀疏的w。相反,如果我们的特征变多了,模型会拟合这些特征,使得模型变得复杂,但同时模型的泛化能力降低,即过拟合。

  • 也就是说pooling后会让之前的特征维数减少,训练参数减少,泛化能力加强,进而防止过拟合。 其中特征维数的减少并不会让之前的特征丢失