卷积神经网络[CNN]笔记(三)—— 池化层[Pooling Layer]

  这是卷积神经网络笔记第三篇,完整的笔记目录可以点击这里查看。
  
  在ConvNet体系结构中,在连续的Conv层之间定期插入池化层是很常见的。它的功能是逐步减小表示的空间大小,以减少网络中的参数和计算量,从而控制过拟合。池化层在输入的每个深度片上独立操作,并使用MAX运算在空间上调整其大小。最常见的形式是使用大小为2x2的过滤器的池化层,在输入的每个深度片上以2的宽度和高度下采样,舍弃75的激活值。池化层不会改变图像的深度。总的来说,池化层:

  • 接受大小为W1×H1×D1的输入
  • 需要两个超参数:
    • 它们的空间范围F
    • 步长S
  • 产生大小为W2×H2×D2的输出,其中:
    • W2=(W1−F)/S+1
    • H2=(H1−F)/S+1
    • D2=D1
  • 没有引入任何参数,因为它是用固定的函数来对输入进行处理
  • 对于池化层,使用zero-padding来填充输入是不常见的。

  值得注意的是,实践中发现的最大池层只有两种常见的设置:F=3,S=2的池化层(也称为重叠池化);以及更常见的F=2,S=2。
  除了最大池化外,池化单元还可以执行其他功能,例如平均池化甚至L2标准池化。平均池化在历史上经常被使用,但是最近与最大池化操作相比已经失宠了,最大池化操作在实践中被证明工作得更好。
在这里插入图片描述
  上图为池化示意图。池化层在空间上对输入进行下采样,每次只对每个深度切片进行操作。左图:在本例中,大小为[224x224x64]的输入通过大小为2,跨步长也为2的池化操作后,其输出大小为[112x112x64]。右图:最常见的下采样操作max池化的示例。
  回想一下,在神经网络反向传递过程中,max函数的梯度是:最大值对应的梯度与上一层的梯度一致,而其余值的梯度则都为0。因此,在CNN中,max池化的反向传播梯度计算也遵循这个规则。
  需要注意的是,许多人不喜欢池化操作,认为我们可以不使用它。例如,这篇文章建议放弃池化层,而采用只包含重复CONV层的体系结构。为了减小表示的大小,他们建议偶尔在CONV层中使用更大的步幅。丢弃池化层对于训练良好的生成模型也很重要,例如变分自动编码器(variational autoencoders,VAEs)或生成对抗网络(generative adversarial networks,GANs)。未来的CNN体系结构中很可能很少甚至没有池化层。



*本博客翻译总结自CS231n课程作业网站,该网站需要翻墙才能访问。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值