Resnet图像识别入门——全连接

简介: 全连接,到底连接的是什么?看完这篇文章,相信你会有所了解。

大家好啊,我是董董灿。

上一篇介绍了池化层Resnet图像识别入门——池化层,池化层一般接在卷积层后面,用来完成特征图的降维和特征融合操作。

除了池化层,在CNN网络的最后,一般还会有一个全连接层(Fully Connected Layer)。

那么CNN中为什么还需要一个全连接层呢,它的作用是什么?这篇文章会告诉你答案。

全连接层

image.png

全连接层,指的是每一个结点都与上一层的所有结点相连(示意图如上图所示),用来把前面几层提取到的特征综合起来。由于其全连接的算法,一般全连接层的参数也是最多的。

前面的文章卷积的核心,特征提取提到卷积的作用是完成图像的特征提取,那提取出了特征之后,还是无法根据提取的一堆特征来完成图像的识别。

因为卷积层提取出来的特征太多了。

举个例子,一张画着猫咪的图片,经过几十层卷积的特征提取,很有可能已经提取出了几十个甚至上百个特征,那我们如何根据这几十上百个特征来最终确认,这是一只猫呢?

把上面的问题细化并且简化一下,不说几十上百个特征,就说卷积层只提取了3个特征:分别是鼻子,耳朵和眼睛。实际上,有鼻子、耳朵和眼睛这三个特征的动物有很多,我们并不能只根据某个动物有鼻子、耳朵和眼睛,就把它简单的认为是一只猫。

image.png

那么就需要一种方法,把鼻子、耳朵和眼睛这三个特征进一步融合,使得神经网络看到这三个特征的融合集合之后,可以区分这是一只猫而不是一只狗。

上面的例子比较简单,实际网络中卷积提取的特征远远不止3个,而是成百上千个,将这些特征进一步融合的算法,就是全连接。

或者说,全连接,可以完成特征的进一步融合。使得神经网络最终看到的特征是个全局特征(一只猫),而不是局部特征(眼睛或者鼻子)。

之前在某文章中看到过一个对全连接的比较形象的回答,大意是说:

假设你是一只蚂蚁,你的任务是找小面包。这时候你的视野比较窄,只能看到很小一片区域,也就只能看到一个大面包的部分。

当你找到一片面包之后,你根本不知道你找到的是不是全部的面包,所以你们所有的蚂蚁开了个会,互相把自己找到的面包的信息分享出来,通过开会分享,最终你们确认,哦,你们找到了一个大面包。

上面说的蚂蚁开会的过程,就是全连接,这也是为什么,全连接需要把所有的节点都连接起来,尽可能的完成所有节点的信息共享。

说到这,大概就能理解全连接的作用了吧。

image.png

卷积和全连接

其实有两首诗可以很形象的概括卷积和全连接的作用。

我们知道卷积是对图像的局部区域进行连接,通过卷积核完成的是感受野内的长宽方向以及channel 方向的数据连接。因此,卷积操作,提取的特征是局部特征。也就是说,卷积是“不是庐山真面目,只缘身在此山中”。

而全连接层呢?它的每次完成的是所有channel方向的连接,它看到的是全局特征。全连接是“不畏浮云遮望眼,自缘身在最高层”。

除此之外,卷积和全连接在算法上是可以转换的。通常情况下,在进行全连接的计算时,可以把它等效于卷积核为1x1的卷积运算。

总结一下

全连接的作用,说的学术专业一点,就是把卷积层学到的特征空间映射到样本标记空间。

说的通俗易懂点,就是把卷积学到的一堆特征互相融合一下,变成样本(比如一只猫)的代表。

在使用Resnet50对ImageNet2012数据集进行分类时,最终完成某个图片的分类,全连接层会输出一个值。在ImageNet 中,281-287都代表猫。比如282这个值,代表的是一只虎猫,而这个值,就是把所有的虎猫的特征进行了融合后计算而来的。

  • 281 n02123045 猫, tabby, tabby cat
  • 282 n02123159 猫, tiger cat
  • 283 n02123394 猫, Persian cat
  • 284 n02123597 猫, Siamese cat, Siamese
  • 285 n02124075 猫, Egyptian cat
  • 286 n02125311 猫, cougar, puma, catamount, mountain lion, painter
  • 287 n02127052 猫, lynx, catamount

看到这,可能有人会问,既然全连接层处理的特征比卷积层信息更丰富,那为什么在CNN网络中进行图像识别和分类时,我们还大量的使用卷积而不全部使用全连接呢?

答案很简单。

全连接由于连接了上一层所有的节点,需要的模型参数更多,计算更密集。一个普通的卷积神经网络,如果用全连接来实现,你可以试试,分分钟挤爆你的CPU,甚至你的显卡。

欢迎关注@董董灿是个攻城狮 和同名微信公众号
本文作者原创,转载请联系作者,请勿随意转载

相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
相关文章
|
5月前
|
机器学习/深度学习 并行计算 算法
【计算机视觉+CNN】keras+ResNet残差网络实现图像识别分类实战(附源码和数据集 超详细)
【计算机视觉+CNN】keras+ResNet残差网络实现图像识别分类实战(附源码和数据集 超详细)
68 0
|
机器学习/深度学习 算法
Resnet图像识别入门——Softmax分类是如何工作的
softmax作为一个分类器,它只是把重要的信息变得更重要了而已。
Resnet图像识别入门——Softmax分类是如何工作的
|
机器学习/深度学习 算法
Resnet图像识别入门——池化层
池化和卷积不同,它没有channel维度的累加。
Resnet图像识别入门——池化层
|
机器学习/深度学习 人工智能 算法
|
机器学习/深度学习 人工智能 算法
Resnet图像识别入门——残差结构
残差结构像是Resnet的告诉公路,可以将计算误差很好的保留下来。
Resnet图像识别入门——残差结构
|
机器学习/深度学习 人工智能 算法
|
机器学习/深度学习 人工智能 算法
Resnet图像识别入门——初识卷积
卷积对于Resnet的重要性,不亚于反向传播算法对于深度学习的重要性。可以说,是灵魂。
Resnet图像识别入门——初识卷积
|
22小时前
|
机器学习/深度学习 异构计算
深度学习在图像识别中的应用与挑战
【5月更文挑战第8天】 随着科技的不断发展,深度学习技术在图像识别领域取得了显著的成果。然而,尽管深度学习在图像识别中表现出优越的性能,但仍面临着诸多挑战。本文将探讨深度学习在图像识别中的应用及其面临的挑战,以期为相关研究提供参考。
|
1天前
|
机器学习/深度学习 算法 网络架构
深度学习在图像识别中的应用与挑战
【5月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的重要力量。本文深入探讨了深度学习技术在图像识别任务中的应用,包括卷积神经网络(CNN)的基础架构、训练策略以及优化方法。同时,文章还分析了当前面临的主要挑战,如数据集偏差、模型泛化能力和计算资源消耗等,并提出了潜在的解决方案。
|
1天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
【5月更文挑战第8天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉进步的核心技术之一。本文聚焦于深度学习在图像识别领域的应用及其所面临的挑战。首先,简述了深度学习的基本概念和关键技术,随后深入探讨了卷积神经网络(CNN)在图像分类、目标检测和语义分割中的具体应用案例。接着,分析了当前深度学习技术在处理大规模图像数据时遇到的计算资源需求高、模型泛化能力不足、对抗性攻击等问题。最后,展望了通过模型压缩、迁移学习以及增强学习等策略来应对这些挑战的未来研究方向。