码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 图像识别(八)| 还对全连接层迷迷糊糊?背会一首诗就行了


    前面的一篇文章图像识别(七)| 池化层是什么?有什么作用?_董董灿是个攻城狮的博客-CSDN博客说到了CNN网络中的池化层,池化层一般接在卷积层后面,用来完成特征图的降维和特征融合操作。

    在CNN网络的最后,一般还会有一个全连接层(Fully Connected Layer)。CNN中为什么还需要一个全连接层呢,它的作用是什么?这篇文章会告诉你答案。

    全连接层

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

    前面的文章图像识别(四)| 卷积的核心,特征提取_董董灿是个攻城狮的博客-CSDN博客_图像识别特征提取提到卷积的作用是完成图像的特征提取,那提取出了特征之后,还是无法根据提取的一堆特征来完成图像的识别。

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

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

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

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

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

    或者说,全连接,可以完成特征的进一步融合。

    使得神经网络最终看到的特征是个全局特征(一只猫),而不是局部特征(眼睛或者鼻子)。

    知乎上对于这个问题有个比较形象的回答,大意是说:

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


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

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

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

    | 卷积和全连接

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

    我们知道卷积是对图像的局部区域进行连接,通过卷积核完成的是感受野内的长宽方向以及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, panther, Felis concolor 

    287 n02127052 猫, lynx, catamount

    One More Thing

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

    答案很简单。

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

     往期文章推荐:

    图像识别(一)| 从像素说起_董董灿是个攻城狮的博客-CSDN博客

    图像识别(二)| 图像的色彩空间_董董灿是个攻城狮的博客-CSDN博客

    图像识别(三)| 初识卷积_董董灿是个攻城狮的博客-CSDN博客

    图像识别(四)| 卷积的核心,特征提取_董董灿是个攻城狮的博客-CSDN博客_卷积图像特征提取

    图像识别(五)| 春天花开却不识?打开百度识图,残差和卷积带你识遍路边野花_董董灿是个攻城狮的博客-CSDN博客

    图像识别(六)| 激活函数_董董灿是个攻城狮的博客-CSDN博客

    图像识别(七)| 池化层是什么?有什么作用?_董董灿是个攻城狮的博客-CSDN博客

    更多信息,请查看专栏

    https://blog.csdn.net/dongtuoc/category_11863193.htmlhttps://blog.csdn.net/dongtuoc/category_11863193.html

    码字不易,如果你喜欢,请关注 董董灿是个攻城狮的博客_CSDN博客 或点赞。
    近期开通个人微信公众号:图像识别(八)| 还对全连接层迷迷糊糊?背会一首诗就行了 分享人工智能科技文章,欢迎关注。


    部分内容参考:https://www.zhihu.com/question/41037974/answer/150552142。如有问题,请联系删除。

  • 相关阅读:
    /etc/rc.d/rc.local和/etc/rc.local不一致问题
    GBase 8c维护审计日志(一)
    Excel 自动提取某一列不重复值
    c++中的指针
    从四分钟到两秒——谈谈客户端性能优化的一些最佳实践
    i711800h和i710875h性能差多少
    GoLand2022.2.5版本Hello调动Greetings包
    python货币转换
    【名城优企游学】国轩高科,用数字化带来强劲发展动力
    【目标检测论文解读复现NO.34】基于改进 YOLOv5s 的苹果叶片小目标病害轻量化检测方法
  • 原文地址:https://blog.csdn.net/dongtuoc/article/details/126243586
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号