【计算机视觉】——全局平均池化代替全连接层,全连接层的作用?

【计算机视觉】——全局平均池化代替全连接层,全连接层的作用?

一、参考链接如下:

二、需要解决的问题如下:

1.全连接层的作用是什么?

全连接层的作用主要包含以下三点:

  • 全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转化为卷积核为1x1的卷积;而前层是卷积层的全连接层可以转化为卷积核为hxw的全局卷积,h和w分别为前层卷积结果的高和宽
  • 目前由于全连接层参数冗余(仅全连接层参数就可占整个网络参数80%左右),近期一些性能优异的网络模型如ResNet和GoogLeNet等均用全局平均池化(global average pooling,GAP)取代FC来融合学到的深度特征,最后仍用softmax等损失函数作为网络目标函数来指导学习过程。需要指出的是,用GAP替代FC的网络通常有较好的预测性能
  • 在FC越来越不被看好的当下,我们近期的研究(In Defense of Fully Connected Layers in Visual Representation Transfer)发现,FC可在模型表示能力迁移过程中充当“防火墙”的作用。具体来讲,假设在ImageNet上预训练得到的模型为M,则ImageNet可视为源域(迁移学习中的source domain)。微调(fine tuning)是深度学习领域最常用的迁移学习技术。针对微调,若目标域(target domain)中的图像与源域中图像差异巨大(如相比ImageNet,目标域图像不是物体为中心的图像,而是风景照,见下图),不含FC的网络微调后的结果要差于含FC的网络。因此FC可视作模型表示能力的“防火墙”,特别是在源域与目标域差异较大的情况下,FC可保持较大的模型capacity从而保证模型表示能力的迁移。(冗余的参数并不一无是处。)
    【计算机视觉】——全局平均池化代替全连接层,全连接层的作用?

2.为什么使用全局平均池化代替全连接层?

  • 首先需要澄清一点:并不是使用全局平均池化代替全连接层,而是卷积层+全局平均池化代替卷积层+全连接层,全局平均池化本身并不具有可学习的参数
  • 使用卷积层+全局平均池化相比于卷积层+全连接层的好处:
    • 极大的减少了网络的参数量(原始网络中全连接层参数量占到整个网络参数总量的80%作用)
    • 相当于在网络结构上做正则,防止模型发生过拟合

3.为什么使用全局平均池化代替全连接层后,网络的收敛速度会变慢?

  • CNN+FC结构的模型,对于训练过程而言,整个模型的学习压力主要集中在FC层(FC层的参数量占整个模型参数量的80%),此时CNN层学习到的特征更倾向于低层的通用特征,即使CNN层学习到的特征比较低级,强大的FC层也可以通过学习调整参数做到很好的分类
  • CNN+GAP结构的模型,因为使用GAP代替了FC,模型的参数量骤减,此时模型的学习压力全部前导到CNN层,相比于CNN+FC层,此时的CNN层不仅仅需要学习到低层的通用特征,还要学习到更加高级的分类特征,学习难度变大,网络收敛变慢
综上所述,全局平均池化代替全连接层虽然可以减少模型的参数量,防止模型发生过拟合,但不利于模型的迁移学习,因为CNN+GAP的结构使得很多参数“固化”在卷积层中,增加新的分类时,意味着相当数量的卷积层特征需要重新进行调整(学习难度较大);而全连接层则可以更好的进行迁移学习,因为它的参数调整很大一部分是在全连接层中,迁移的时候虽然卷积层的参数也会调整,但是相对来说要小很多
上一篇:[人工智能-深度学习-20]:卷积神经网络CNN - 全连接网络的缺点与CNN的使命


下一篇:(2)pytorch 实现图片分类(多种模型对比)