全连接层的作用是什么?

论坛 期权论坛 工作     
匿名用户1024   2021-5-28 00:39   7691   5
刚刚接触这方面,现在只清楚卷积层的作用是特征提取啊之类的,但是不明白为什么好像所有的卷积层之后都要加上全连接层?全连接层的作用是什么?如果说神经网络是模仿人的大脑,可是人的大脑不是好像没有全连接层的吗?
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
有关回应  16级独孤 | 2021-5-28 00:39:05 发帖IP地址来自
全连接层到底什么用?我来谈三点。
  • 全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转化为卷积核为1x1的卷积;而前层是卷积层的全连接层可以转化为卷积核为hxw的全局卷积,h和w分别为前层卷积结果的高和宽(注1)。
  • 目前由于全连接层参数冗余(仅全连接层参数就可占整个网络参数80%左右),近期一些性能优异的网络模型如ResNet和GoogLeNet等均用全局平均池化(global average pooling,GAP)取代FC来融合学到的深度特征,最后仍用softmax等损失函数作为网络目标函数来指导学习过程。需要指出的是,用GAP替代FC的网络通常有较好的预测性能。具体案例可参见我们在ECCV'16(视频)表象性格分析竞赛中获得冠军的做法:「冠军之道」Apparent Personality Analysis竞赛经验分享 - 社区专栏 ,project:Deep Bimodal Regression for Apparent Personality Analysis
  • 在FC越来越不被看好的当下,我们近期的研究(In Defense of Fully Connected Layers in Visual Representation Transfer)发现,FC可在模型表示能力迁移过程中充当“防火墙”的作用。具体来讲,假设在ImageNet上预训练得到的模型为
    ,则ImageNet可视为源域(迁移学习中的source domain)。微调(fine tuning)是深度学习领域最常用的迁移学习技术。针对微调,若目标域(target domain)中的图像与源域中图像差异巨大(如相比ImageNet,目标域图像不是物体为中心的图像,而是风景照,见下图),不含FC的网络微调后的结果要差于含FC的网络。因此FC可视作模型表示能力的“防火墙”,特别是在源域与目标域差异较大的情况下,FC可保持较大的模型capacity从而保证模型表示能力的迁移。(冗余的参数并不一无是处。)

注1: 有关卷积操作“实现”全连接层,有必要多啰嗦几句。
以VGG-16为例,对224x224x3的输入,最后一层卷积可得输出为7x7x512,如后层是一层含4096个神经元的FC,则可用卷积核为7x7x512x4096的全局卷积来实现这一全连接运算过程,其中该卷积核参数如下:
“filter size = 7, padding = 0, stride = 1, D_in = 512, D_out = 4096”
经过此卷积操作后可得输出为1x1x4096。
如需再次叠加一个2048的FC,则可设定参数为“filter size = 1, padding = 0, stride = 1, D_in = 4096, D_out = 2048”的卷积层操作。
3#
有关回应  16级独孤 | 2021-5-28 00:39:06 发帖IP地址来自
卷积层本来就是全连接的一种简化形式:不全连接+参数共享,同时还保留了空间位置信息。这样大大减少了参数并且使得训练变得可控。
全连接就是个矩阵乘法,相当于一个特征空间变换,可以把有用的信息提取整合。再加上激活函数的非线性映射,多层全连接层理论上可以模拟任何非线性变换。但缺点也很明显: 无法保持空间结构。
全连接的一个作用是维度变换,尤其是可以把高维变到低维,同时把有用的信息保留下来。
全连接另一个作用是隐含语义的表达(embedding),把原始特征映射到各个隐语义节点(hidden node)。对于最后一层全连接而言,就是分类的显示表达。
不同channel同一位置上的全连接等价与1x1的卷积。
N个节点的全连接可近似为N个模板卷积后的均值池化(GAP)。
4#
有关回应  16级独孤 | 2021-5-28 00:39:07 发帖IP地址来自
全连接的核心操作就是矩阵向量乘积

本质就是由一个特征空间线性变换到另一个特征空间。目标空间的任一维——也就是隐层的一个 cell——都认为会受到源空间的每一维的影响。不考虑严谨,可以说,目标向量是源向量的加权和。
在 CNN 中,全连接常出现在最后几层,用于对前面设计的特征做加权和。比如 mnist,前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。(卷积相当于全连接的有意弱化,按照局部视野的启发,把局部之外的弱影响直接抹为零影响;还做了一点强制,不同的局部所使用的参数居然一致。弱化使参数变少,节省计算量,又专攻局部不贪多求全;强制进一步减少参数。少即是多)
在 RNN 中,全连接用来把 embedding 空间拉到隐层空间,把隐层空间转回 label 空间等。
5#
有关回应  16级独孤 | 2021-5-28 00:39:08 发帖IP地址来自
在计算机视觉中,全连接层和卷积层没有太大区别。
卷积层其实就是在spatial上部分连接,在channel上全连接的结构。
因此如果舍弃在spatial上的部分连接,将卷积核换成1x1的,那么就只有在channel上全连接。这个时候卷积层=全连接层。
这就是为什么imagenet分类最后一层是pooling+fc。pooling完之后feature就1x1xC的了,这时候再做fc就是对channel进行全连接,把feature映射到label上。
细心的人会发现很多特征融合的卷积都采用1x1的kernel,这也算是全连接层的一个功能。
另外卷积层可以看作是计算量和准确度的一种妥协。
如果要绝对的精确,为什么不在spatial上也做全连接呢?毕竟一张图片如果用卷积相当于只看到了一部分(比如3x3),而用全连接层可以看到整张图片。
如果各位好奇的话可以把卷积层拉平做全连接试试,绝对挤爆GPU显存。因此为了妥协,卷积层只能一部分一部分的看,最后把所有部分拼成一张图。
现在这个问题已经被人察觉了,最近很火的non-local network实际上就是在解决这个问题。他们用attention的方式近似代替全连接层,让卷积层看到整张图片,当然付出的计算量也是惊人的。


6#
有关回应  16级独孤 | 2021-5-28 00:39:09 发帖IP地址来自
在卷积神经网络尚未火热的年代,人们使用haar/lbp + adaboost级连的组合方式检测人脸,hog+svm的组合方式检测行人。这种传统的目标检测方法一个认知上的优势就是: 模块的功能明确,划分得很清晰,符合人们的理解方式。其中,haar,lbp,hog等手工设计的特征提取算子用于提取特征,adaboost,svm用于对提取的特征分类。

而早期的全连接神经网络,就是属于用于对提取的特征进行分类的模块,我们也可以同样将神经网络替换掉adaboost,svm用于分类。

后来将神经网络用于图像分类中,面对早期的小分辨率图片,我们依旧可以使用特征提取+神经网络分类的模式,也可以直接将每个像素点作为特征输入用于神经网络的分类。但面对后期的大分辨率图像,如果依旧使用逐像素点输入的方式,很明显将会导致全连接中的权值过于稀疏,造成模型训练的困难。

而卷积神经网络中conv+relu(早期为sigmoid)+pooling(以下称三剑客)的组合,不仅可以替代手工设计特征算子的繁琐,而且局部感受野+权值共享的设计思想也能避免全连接网络中的种种弊端。此时人们将三剑客的组合视为特征提取的过程,如果按照早期人们特征提取+分类的设计思路,那么分类使用全连接的设计方式,就可以刚好实现了一个end-to-end的架构,也即早起卷积神经网络的原型。

但必须明白的是,虽然模型完成了一个end-to-end的设计架构,可以直接用于训练和分类,但在人们的认知上,特征提取和分类依然是分开的,也就是说三剑客用于特征提取,全连接用于分类。

后来随着更优秀分类网络的出现(alexnet,vgg等),人们不再仅仅满足于分类准确率的提升,面对动辄两三百M的模型,人们思考能否减少模型的大小。人们通过研究发现,在包含全连接的网络中,全连接的参数占据了所有参数中的大部分比例,这样使得精简全连接参数变得刻不容缓。

于是一部分优秀的人们想到了使用svd等方式减少参数,另一部分优秀的人们开始思考: 是否真的需要使用全连接层,或者有无可以替代全连接层的方法?

于是就出现了如nin,squeezenet中,直接使用global average pooling的方式,直接替代全连接层。人们发现不使用全连接层,模型的检准率并没有降低,而模型的大小却极大的减少(当然了,也包括以上网络中其他模块优化的功劳,如1*1卷积的使用等)。

另一方面,同样在nin,以及用于图像分类的fcn中,人们发现使用1*1卷积,也可以达到与全连接层同样的功效,依然能保证同样的检准率(经评论区 @机器学习的提醒,1*1卷积的使用,对比fc并不能 减少模型参数,特此说明)。

这时候人们就又开始重新思考,全连接层在卷积神经网络中真正的作用是什么了。于是就又有了@魏秀参 回答中新的探索。

最后总结就是,卷积神经网络中全连接层的设计,属于人们在传统特征提取+分类思维下的一种"迁移学习"思想,但在这种end-to-end的模型中,其用于分类的功能其实是被弱化了,而全连接层参数过多的缺点也激励着人们设计出更好的模型替代之达到更好的效果。同时,也将促进我们更深入地探讨其中的奥秘。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:136515
帖子:27303
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP