[Inception V1]FC & GAP

本文深入探讨了全连接层(FC)如何将CNN的输出转换成长向量,并解释了为何在经典网络中常常使用两层FC来解决非线性问题。同时,介绍了Global Average Pooling (GAP)作为FC的替代方案,用于减少计算量并避免过拟合。GAP通过计算特征图的均值生成特征向量,以供Softmax层进行分类。文章还讨论了FC和GAP在神经网络模型中的本质和作用。
摘要由CSDN通过智能技术生成

FC的作用

在这里插入图片描述
全连接层中的每一层是由许多神经元组成的( 1 × 4096 1×4096 1×4096)的平铺结构。


这里我们探讨的是:FC是怎么样把 3 × 3 × 5 3\times3\times5 3×3×5 的输出,转换成 1 × 4096 1\times4096 1×4096 这样长向量形式的。

其实在CNN中,FC将高维向量拉平的操作和前面的Conv层的操作是一样的,都是卷积,如下图所示:
在这里插入图片描述
从上图我们可以看出,我们用一个 3 × 3 × 5 3\times3\times5 3×3×5的 filter 去卷积激活函数的输出,得到的结果就是FC上一个神经元的输出,这个输出就是一个值(标量)。因为我们有4096个神经元,一个filter生成一个神经元上的值,所以我们需要 4096 个filter,即让一个filter.size()=3×3×5×4096卷积层去卷积前一层的feature map。

Note:

  • 3×3×5为filter的长×宽×通道数
  • 4096为filter的个数,即这一卷积层里面有4096个filter

和以往的Conv不同,这里的一个filter值产生一个神经元的标量而非常规的feature map。

两层FC的作用

在这里插入图片描述

上面是ZFNet的网络结构,它共有8层带参数的网络,5个卷积层,3个全连接层。
我们看Layer6和Layer7会发现二者的结构是一样的,那么为什么会有两个FC呢?

我们观察其它的经典网络时会发现,很多网络中都会出现2层FC,为什么是2层呢?明明一层就可以生成一个长向量,我们再把这个长向量送入Softmax层即可完成分类任务。

我们首先要明确CNN的本质,CNN其实就是一个非常长的多项式,阶数很高,元很多,最后求出一个长向量,我们再把这个长向量送入Softmax层得到这个长向量中每一个值的概率,取出最大的概率,再对应我们的label编号,我们就可以求出模型推算出的类别。

即神经网络的本质就是:多项式函数去拟合光滑函数

我们这里的FC中一个神经元就可以看成一个多项式,我们用许多神经元去拟合数据分布,但是只用一层FC有时候没法解决非线性问题,而如果有两层或以上FC就可以很好地解决非线性问题了

这跟感知机(Perception)是一样的,“单层感知机无法表示异或门”或者“单层感知机无法分离非线性空间”。

GAP替代FC

Global Average Pooling这个概念出自于《Network in Network》。Global Average Pooling是一种取代全连接的方式,主要是用来解决全连接的问题,其主要是是将最后一层的特征图进行整张图的一个均值池化,形成一个特征点,将这些特征点组成最后的特征向量(也就是一个长向量),我们在把这个长向量送进Softmax层中进行分类和概率的计算。

通道数代表了这个feature map是由几张图叠在一起的,GAP是将这些叠在一起的图拆开,每张图求一个[代表值],最后再将这些值组合起来形成一个长向量。这其实就是实现了FC层的一个作用
这样说其实并不严谨,GAP取代的其实是FC中的Flatten层,剩下的和FC是一样的。
也就是说,我们使用GAP生成的长向量去取代Flatten层生成的长向量——使用Flatten会耗费大量的算力,GAP的计算量明显少于Flatten!

举个例子。假如,最后的一层的数据是 10 个 6 × 6 6×6 6×6 的特征图(即 6 × 6 × 10 6×6×10 6×6×10),GAP是将每一个Channel的特征图计算一个均值,输出一个数据值,这样通道为 10 的特征图就会输出 10 个数据点,将这些数据点组成一个 1 × 10 1×10 1×10 的长向量,即为一个特征向量,之后再将这个长向量送入Softmax层中进行分类和概率的计算。

  • 6×6是feature map的尺寸
  • 10是Channel数

参考文献

  1. 蒋竺波:https://www.zhihu.com/question/41037974/answer/320267531
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值