【深度学习】全连接层

4.5 全连接层

全连接层是一个列向量(单个样本)。通常用于深度神经网络的后面几层,用于图像分类任务。

全连接层,是每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性, 一般全连接层的参数也是最多的。

图1

全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”。映射到样本标记空间的作用。

全连接层将特征提取得到的高维特征图映射成一维特征向量,该特征向量包含所有特征信息,可以转化为最终分类成各个类别的概率。

转自:https://blog.csdn.net/qq_39521554/article/details/81385159


举个栗子:

现在全连接层得到一个3x3x5x4096的输出,经过全连接层后,输出一个1x1x4096x1的一维向量

【深度学习】全连接层_第1张图片

那它是怎么样把3x3x5x4096的输出,转换成1x1x4096x1的形式?很简单,可以理解为在中间做了一个卷积。

【深度学习】全连接层_第2张图片

从上图我们可以看出,我们用一个3x3x5的filter 去卷积激活函数的输出,得到的结果就是一个fully connected layer 的一个神经元的输出,这个输出就是一个值。因为我们有4096个神经元。我们实际就是用一个3x3x5x4096的卷积层去卷积激活函数的输出。


再比如说:我们要从图中找到有没有猫,我们可以用训练好的卷积核对原图进行卷积,根据输出来进行判断。

【深度学习】全连接层_第3张图片

从上图我们可以看出,猫在不同的位置,输出的feature值相同,但是位置不同。

对于电脑来说,特征值相同,但是特征值位置不同,那分类结果也可能不一样。

这时全连接层filter的作用就相当于

喵在哪我不管,我只要喵,于是我让filter去把这个喵找到,

实际就是把feature map 整合成一个值,这个值大,有喵,这个值小,那就可能没喵

和这个喵在哪关系不大了,鲁棒性有大大增强。

因为空间结构特性被忽略了,所以全连接层不适合用于在方位上找Pattern的任务,比如segmentation。

全连接层中一层的一个神经元就可以看成一个多项式(类似加权平均),我们用许多神经元去拟合数据分布

但是只用一层fully connected layer 有时候没法解决非线性问题,

而如果有两层或以上fully connected layer就可以很好地解决非线性问题了

转载自:https://zhuanlan.zhihu.com/p/33841176

在实际使用中,全连接层可由卷积操作实现:

  • 对前层是全连接的全连接层可以转化为卷积核为1x1的卷积;
  • 而前层是卷积层的全连接层可以转化为卷积核为h*w的全局卷积,h*w分别为前层卷积结果的高和宽。

全连接的核心操作就是矩阵向量乘积 y = Wx

【深度学习】全连接层_第4张图片

其中,x1、x2、x3为全连接层的输入,a1、a2、a3为输出,

【深度学习】全连接层_第5张图片


注:本文内容来源于书本和网络整理,仅作为个人学习笔记使用

你可能感兴趣的:(深度学习,深度学习,pytorch)