CNN基础知识——全连接层(Fully Connected Layer)

CNN基础知识——全连接层(Fully Connected Layer)

之前的文章我们已经讲过什么是卷积、什么是池化、什么是激活函数,今天终于进入CNN的末尾了——全连接层(Fully Connected Layer)。

我们已经占领了敌方高地,就差最后一下,坚持住,马上就victory了。

全连接层就是将最后一层卷积得到的特征图(矩阵)展开成一维向量,并为分类器提供输入。最开始看到这个全连接层,我就很是疑问:它是怎么做的呢?

举个列子:

我们输入一个 28\times28 的灰度图像,经过卷积层和池化层输出20个 12\times12 的图像,然后通过了一个全连接层变成了 1\times100 的向量。

这是怎么做到的呢?很简单,可以理解为在中间做了一次卷积。我们用一个12x12x20的filter 去卷积激活函数的输出,得到的结果就是一个fully connected layer 的一个神经元的输出,这个输出就是一个值。因为我们有100个神经元,所以输出一个1\times100 的向量。我们实际就是用一个12x12x20x100的卷积层去卷积激活函数的输出,最终得到1\times100 的向量。

【全连接层的作用】:全连接层在整个网络卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数等操作是将原始数据映射到隐层特征空间的话(特征提取+选择的过程),全连接层则起到将学到的特征表示映射到样本的标记空间的作用。换句话说,就是把特征整合到一起(高度提纯特征),方便交给最后的分类器或者回归。

【全连接层存在的问题】:参数冗余(仅全连接层参数就可占整个网络参数80%左右),降低了训练的速度,容易过拟合。

CNN(带有FC层)输入图片尺寸是固定的原因:全连接层要求固定的输入维度(如4096)

CNN支持任意尺寸输入图像的方法:(1)使用全局平均池化层或卷积层替换FC层(2)在卷积层和FC层之间加入空间金字塔池化

发布于 2019-08-22 10:43