system: [SYSTEM]

user: 3. 池化核大小不固定的池化方法 3.1. 重叠池化 传统的池化方法池化区域相互间不会重叠，与此不同，重叠池化(Overlapping Pooling) [ 20 ] 则使用重叠的模式来选择池化区域。更准确地说，池化层可以被认为是由间隔s个像素的池单元组成的网格，每个单元汇总以池化单元的位置为中心的z × z大小的邻域。如果设置s = z，将获得卷积神经网络中常用的传统池化，而设置成s < z时，则会获得重叠池化。大多数池化都会把步长s设置为2，而池化框z也同样设置为2，这样可以使得在卷积神经网络正向或反向传播时更容易计算。但是当特征图的分辨率较大时，大多数池化方法不能快速降维，若是通过提高网络层数以达到降维目的又会导致参数过多，增加过拟合的风险。毕竟网络层数并不一定是越多越好，过多的网络层会使特征图维度骤降，而重叠池化相较传统的池化方法在同样数量的网络层中可以达到保留更多特征图维度的效果。在ILSVRC数据集的实验表明，保持步长s为2不变，而将池化框设置为3时，与之前相比top 1和top 5的错误率分别下降了0.3%和0.4%，且从网络训练过程可以看出，重叠池化可以更好的避免过拟合。重叠池化虽然可以更快降维，但是在设置步长和池化框大小时也需要慎重，若设置不合理，则可能因为降维过快导致网络精确率大幅降低。 3.2. 空间金字塔池化 对于大多数卷积神经网络而言，都有着一个限制，那就是输入的图像需要是固定尺寸(224 × 224)。为很好地解决这一限制。空间金字塔池化(Spatial Pyramid Pooling) [ 21 ] [ 22 ] 提出一种多尺度池化方法，这种池化方法可以处理图片中不同尺度的信息，按照三个不同的尺度对一张输入图片或特征进行划分，具体的示意图如图3所示。 图3. 空间金字塔池化 从示意图中可以看出，把一个图片分别经过三个不同的池化窗口最终得到了1 × 1，2 × 2，4 × 4一共21个池化结果，将这21个特征连接起来再输入到下一层。通常空间金字塔池化的池化窗口的步长都会设置为 ⌊ a / n ⌋ ，而池化框大小设置为 ⌈ a / n ⌉ ，其中a为特征图大小，而n指一个池化需要得到n × n个池化结果，上图的例子中n分别为1、2和4。不难看出，无论特征图大小a如何改变，只要固定了n的值，最终都会得到固定数量的特征，进而可以正常的传递给全连接层。空间金字塔池化使用起来非常的灵活，既可以用于图像分类也可以用于目标检测，根据网络的不同需求来调整n值。大多数网络中n都会保留1和2这两个值，而最后一个值n大多情况取3或者4，但也可以取更大的正整数。空间金字塔池化由于可以处理不同尺度的图像，因此使用非常灵活，并可以有效防止过拟合。从Pascal VOC数据集的实验结果来看，相比于固定大小输入的图像，多尺度图像的输入可以使网络更好的收敛。但空间金字塔池化也有少数情况不能计算，例如a为14，n为4的时候，此时池化框为5，步长为4，这样会导致小部分特征图未被池化计算，因此设置n的时候也要考虑到实际情况的限制。 3.3. 全局最大/平均池化 传统的卷积神经网络都会包含全连接层，而全连接层过多的参数会严重影响到网络训练的速度，同时也容易导致过拟合。为了解决全连接层导致的一系列问题，NIN提出了全局池化。全局池化 [ 23 ] 分为全局平均池化(Global Average Pooling)和全局最大池化(Global Max Pooling)。全局平均池化和全局最大池化的计算方法和传统的平均池化和最大池化类似，区别在于池化框大小设置成和整个特征图的尺寸相同。这样就把每个w × h × c的特征图转化为1 × 1 × c即c个通道的输出，作为最终提取的分类或回归特征。全局池化对于输入图像的尺寸大小没有要求，因此使用起来更加灵活。其中，全局最大池化由于提取整个特征图中的最大值，因此更易受噪声的影响，且从消融实验的结果也显示其错误率要略高于全局平均池化，因而大多模型选择全局平均池化。全局平均池化的优点在于通过增强特征映射和类别之间的对应关系，使得其更适合卷积结构。另一个优点是在全局平均池化中没有需要优化的参数，因而相对于全连接来说更有利于避免过拟合。此外，全局平均池化将空间信息进行归并，从而对输入的空间平移更具鲁棒性。从CIFAR-10、CIFAR-100、MNIST和SVHN等数据集的实验结果来看，全局平均池化代替了全连接层之后，测试集的错误率有了明显下降。即使全连接层加上了dropout，错误率依旧高于全局平均池化。自从全局平均池化方法提出后，深度卷积神经网络模型基本都用其替代了全连接层。 3.4. 多尺度无序池化 传统的卷积神经网络(CNN)对整张输入图进行卷积和激活后都会获取许多特征，而全局卷积神经网络激活后获得的特征会缺少几何不变性，几何不变性包括旋转不变性、平移不变性等，导致了CNN对图片的旋转、缩小和平移相当敏感，这限制了它们对可变场景的分类和匹配的鲁棒性。而多尺度无序池化(Multi-Scale Orderless Pooling) [ 24 ] 的提出，就是为了在不降低卷积神经网络的分辨能力的前提下去提高几何不变性。多尺度无序池化的示意图如图4所示： 从图中可以看出，多尺度无序池化共有三个level，每个level用于提取不同尺度的特征。对于第一个level，需要对整个图像缩放至256 × 256像素，首先把经过卷积层的特征图中的每个像素值都减去像素值的平均值，对全局进行Relu激活后，最后取全连接层的4096维的特征作为level 1特征。对于第二个level，将池化框设为128 × 128，以32像素作为步长进行计算，维度也是4096。为了提高计算效率，把每次通过滑动窗口池化计算提取的卷积神经网络特征聚集起来后，通过主成分分析法(PCA)将维度从4096降低至500。接着采用k均值算法，将k设置为100，并且使用局部聚合向量(VLAD)对多个500维的特征进行编码，生成50000维的特征。接着再利用PCA把维度恢复成4096，最终这4096维的特征就是level 2的特征。Level 3的计算过程和level 2一样，区别在于池化框设为64 × 64，最后把三个level的特征拼接起来作为输出特征。在SUN397和ILSVRC数据集中的实验结果证明，多尺度无序池化提取出的一般特征均可以用于图像分类这等有监督任务或实例检索等无监督识别任务，其表现明显优于传统池化方法。 图4. 多尺度无序池化 3.5. 感兴趣区域池化 感兴趣区域池化(Region of Interest Pooling) [ 25 ] 首先被用在了Fast RCNN [ 26 ] 中，输入的图片经过卷积层后获得特征图，特征图再通过RPN算法获得多个目标的候选框，其中候选框中的区域就是感兴趣区域。网络结构图如图5所示： 图5. ROI池化网络结构图 上图中只有一个候选框，大多时候会有多个候选框，候选框中的往往是图片中的关键目标。感兴趣区域池化将任何大小的有效感兴趣区域内的特征图转换为固定尺寸为h × w的小特征图，其中h和w是独立于任何特定感兴趣区域池化层的超参数。这也意味着经过感兴趣区域池化后输出的特征图尺度是固定的，而输入的特征图的尺寸却是可变的。假设输入的感兴趣区域内的一个特征图的尺寸大小为H × W，为了保证能获得固定尺寸h × w的输出，则需要把该感兴趣区域划分成多个尺寸为(H/h) × (W/w)的子网格，感兴趣区域池化的计算方法和最大池化一样，因此每个子网格都保留该网格中的最大值。若H/h或W/w不为整数，则采用量化操作，去除小数点后面的数字。该池化方法的好处在于可以根据需求任意指定输出尺寸的大小而不用对原图进行缩放，且只需要对原图中感兴趣的部分进行计算，从而很大程度上减少了计算量。但由于会采用量化操作，将不可避免的导致在计算过程中候选框的位置会出现偏差。从VOC系列的数据集实验结果上看，添加了感兴趣区域池化的Fast RCNN相较之前的RCNN，测试和训练的速度都大幅提升，且在多个数据集上，目标检测的识别率也有所上升。