池化技术总结

导言:

    池化是一个几乎所有做深度学习的人都了解的一个技术,大家对池化如何进行前向传播也都了解,池化的作用也了解一二。然而,池化如何回传梯度呢,池化回传梯度的原则是什么呢,最大池化与平均池化的区别是什么呢,什么时候选择最大池化、什么时候选择平均池化呢。

    主要用的池化操作有平均池化、最大池化、全局平均池化,全局自适应池化。此外还有很多,如RoI池化、金字塔池化、重叠池化、随机池化、双线性池化等。

    在本文中将会对这些内容一一总结。

池化的作用

1. 抑制噪声,降低信息冗余。

2. 提升模型的尺度不变性、旋转不变性。

3. 降低模型计算量。

4. 防止过拟合。

此外,最大池化作用:保留主要特征,突出前景,提取特征的纹理信息。平均池化作用:保留背景信息,突出背景。这两者具体后面会介绍,这里只介绍它们的作用。

池化回传梯度

池化回传梯度的原则是保证传递的loss(或者说梯度)总和不变。根据这条原则很容易理解最大池化和平均池化回传梯度方式的不同。

平均池化的操作是取每个块( 如2x2 )的平均值,作为下一层的一个元素值,因此在回传时,下一层的每一元素的loss(或者说梯度)要除以块的大小( 如2x2 = 4),再分配到块的每个元素上,这是因为该loss来源于块的每个元素。

注意:如果块的每个元素直接使用下一层的那个梯度,将会造成Loss之和变为原来的N倍。具体如下图。

图片

 最大池化的操作是取每个块的最大值作为下一层的一个元素值,因此下一个元素的Loss只来源于这个最大值,因此梯度更新也只更新这个最大值,其他值梯度为0。因此,最大池化需要在前向传播中记录最大值所在的位置,即max_id。这也是最大池化与平均池化的区别之一。具体如下图所示:

图片

最大池化与平均池化的使用场景

根据最大池化的操作,取每个块中的最大值,而其他元素将不会进入下一层。众所周知,CNN卷积核可以理解为在提取特征,对于最大池化取最大值,可以理解为提取特征图中响应最强烈的部分进入下一层,而其他特征进入待定状态(之所以说待定,是因为当回传梯度更新一次参数和权重后,最大元素可能就不是在原来的位置取到了)。

一般而言,前景的亮度会高于背景,因此,正如前面提到最大池化具有提取主要特征、突出前景的作用。但在个别场合,前景暗于背景时,最大池化就不具备突出前景的作用了。

因此,当特征中只有部分信息比较有用时,使用最大池化。如网络前面的层,图像存在噪声和很多无用的背景信息,常使用最大池化。

同理,平均池化取每个块的平均值,提取特征图中所有特征的信息进入下一层。因此当特征中所有信息都比较有用时,使用平均池化。如网络最后几层,最常见的是进入分类部分的全连接层前,常常都使用平均池化。这是因为最后几层都包含了比较丰富的语义信息,使用最大池化会丢失很多重要信息。

空间金字塔池化

首先尝试一下用几句话介绍一下空间金字塔池化的背景,空间金字塔池化出自目标检测的SPPNet中,在目标检测中需要生成很多区域候选框,但这些候选框的大小都不一样,这些候选框最后都需要进入分类网络对候选框中的目标进行分类,因此需要将候选框所在区域变成一个固定大小的向量,空间金字塔池化就是解决这么一个问题。

下面是具体做法。

图片

对于一个通道数为C的feature map,一取全局最大值,得到一个1xC的张量,二将feature map分割成4块,在每一块上进行最大池化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值