欢迎光临散文网 会员登陆 & 注册

22 池化层【动手学深度学习v2】

2021-12-25 17:51 作者:如果我是泡橘子  | 我要投稿

池化层


卷积层对位置信息是非常敏感的

  • x最左边第二列和第三列中间有一个边缘,如果用一个1*2的卷积核(一边是1,一边是-1),就会在输出的第二列全部为1,也就意味着将边缘全部检测出来了,但是这一列的左边是0右边也是0,也就是说它对位置是非常敏感的,一个像素的偏移就会导致0输出
  • 所以这不是一件特别好的事情,因为边缘在真实图片中很有可能不是很规矩,可能会有弯曲的地方,而且相机的抖动或者物体的移动都会导致边缘发生变化,所以需要一定的平移不变性(输入稍微有一点改动,输出不会有太大的变化,减低卷积核对位置的敏感程度)



二维最大池化


  • 工作原理和卷积有点类似,有一个窗口在输入上滑动,得到输出
  • 但是这里的操作不是像卷积核一样让卷积核和输入做点积然后加起来,而是每一次将滑动窗口中的最大值取出来作为输出值(最大池化)
  • 简单来讲就是用滑动窗口来计算输出,但是每一次不用核做计算,而是将滑动窗口中的最大值输出
  • 上图的目的是要做垂直边缘检测,最左边的矩阵是输入,中间的矩阵是卷积输出,如果在卷积输出的基础上再做一次2*2的最大池化可以得到最右边的矩阵(上图中最右边的矩阵多了一列1
  • 上图中可以发现2*2得最大池化层可以容忍最大1个像素的偏移
  • 最大池化层可以允许输入发生一定程度上的小偏移,而且作用在卷积输出上,可以增加一点模糊化的效果





池化层的其他超参数:填充、步幅和多个通道

  • 填充和步幅是和卷积类似的两个超参数
  • 池化没有可以学习的参数,它不需要学习核里面的参数,因为他就是一个取最大值的操作
  • 池化层作用于多输入通道的输入的时候,对每一个输入通道都做一次池化层的操作得到对应的输出通道,而不像卷积一样可以融合多个通道,池化是不会融合多个通道的,他是每一个通道做一次池化层,也就意味着输出的通道数是等于输入通道数的,相对来说比较简单
  • 池化操作为什么不做多通道的融合?因为多通道融合可以交给卷积来进行,就可以将池化层做的相对比较简单





平均池化层


  • 另外一个常用的池化层,就是将最大池化层中取最大值的操作变成求平均值的操作
  • 最大池化层和平均池化层的区别:最大池化层输出的是每个窗口中最强的信号,平均池化层输出的是每个窗口中平均的信号强度





总结


  • 池化层的主要作用是用来缓解卷积层位置的敏感性
  • 通常池化层之作用在卷积层的后面
  • 池化层和卷积层不一样的地方在于池化层对每个通道分别作用、直接输出,没有输出通道数这个超参数,输入通道数是一定等于输出通道数的
  • 池化层没有可以学习的超参数,所以池化层是不会使模型变大的





----end----

22 池化层【动手学深度学习v2】的评论 (共 条)

分享到微博请遵守国家法律