为什么在网络的最后用average pooling layer 代替FC

Global Average Pooling一般用于放在网络的最后,用于替换全连接FC层,为什么要替换FC?
因为在使用中,例如alexnet和vgg网络都在卷积和softmax之间串联了fc层,发现有一些缺点:

(1)参数量极大,有时候一个网络超过80~90%的参数量在最后的几层FC层中;
(2)容易过拟合,很多CNN网络的过拟合主要来自于最后的fc层,因为参数太多,却没有合适的regularizer;过拟合导致模型的泛化能力变弱;
(3)实际应用中非常重要的一点,paper中并没有提到:FC要求输入输出是fix的,也就是说图像必须按照给定大小,而实际中,图像有大有小,fc就很不方便;
作者提出了Global Average Pooling,做法很简单,是对每一个单独的feature map取全局average。要求输出的nodes和分类category数量一致,这样后面就可以直接接softmax了。

                           为什么在网络的最后用average pooling layer 代替FC_第1张图片

作者指出,Global Average Pooling的好处有:

  • 因为强行要求最后的feature map数量等于category数量,因此feature map就会被解析为categories confidence maps.
  • 没有参数,所以不会过拟合;
  • 对一个平面的计算,使得利用了空间信息,对于图像在空间中变化更鲁棒;

为什么在网络的最后用average pooling layer 代替FC_第2张图片

你可能感兴趣的:(计算机视觉,深度学习)