对全连接层(fully connected layer)的通俗理解

对全连接层(fully connected layer)的通俗理解我的机器学习教程「美团」算法工程师带你入门机器学习已经开始更新了,欢迎大家订阅~任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~定义…

大家好,又见面了,我是你们的朋友全栈君。

任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~

对全连接层(fully connected layer)的通俗理解

 

定义

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

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

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

 

本质就是由一个特征空间线性变换到另一个特征空间。目标空间的任一维——也就是隐层的一个 cell——都认为会受到源空间的每一维的影响。不考虑严谨,可以说,目标向量是源向量的加权和。

 

在 CNN 中,全连接常出现在最后几层,用于对前面设计的特征做加权和。比如 mnist,前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。(卷积相当于全连接的有意弱化,按照局部视野的启发,把局部之外的弱影响直接抹为零影响;还做了一点强制,不同的局部所使用的参数居然一致。弱化使参数变少,节省计算量,又专攻局部不贪多求全;强制进一步减少参数。少即是多) 在 RNN 中,全连接用来把 embedding 空间拉到隐层空间,把隐层空间转回 label 空间等。

 

CNN与全连接

在CNN结构中,经多个卷积层和池化层后,连接着1个或1个以上的全连接层.与MLP类似,全连接层中的每个神经元与其前一层的所有神经元进行全连接.全连接层可以整合卷积层或者池化层中具有类别区分性的局部信息.为了提升 CNN网络性能,全连接层每个神经元的激励函数一般采用ReLU函数。

 

最后一层全连接层的输出值被传递给一个输出,可以采用softmax逻辑回归(softmax regression)进行 分 类,该层也可 称为 softmax层(softmax layer).对于一个具体的分类任务,选择一个合适的损失函数是十分重要的,CNN几种常用的损失函数并分析了它们各自的特点.通 常,CNN的全连接层与MLP 结构一样,CNN的训练算法也多采用BP算法

举个例子:

对全连接层(fully connected layer)的通俗理解

最后的两列小圆球就是两个全连接层,在最后一层卷积结束后,进行了最后一次池化,输出了20个12*12的图像,然后通过了一个全连接层变成了1*100的向量。

 

这是怎么做到的呢,其实就是有20*100个12*12的卷积核卷积出来的,对于输入的每一张图,用了一个和图像一样大小的核卷积,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。全连接的目的是什么呢?

 

因为传统的网络我们的输出都是分类,也就是几个类别的概率甚至就是一个数–类别号,那么全连接层就是高度提纯的特征了,方便交给最后的分类器或者回归。但是全连接的参数实在是太多了,你想这张图里就有20*12*12*100个参数,前面随便一层卷积,假设卷积核是7*7的,厚度是64,那也才7*7*64,所以现在的趋势是尽量避免全连接,目前主流的一个方法是全局平均值。

 

也就是最后那一层的feature map(最后一层卷积的输出结果),直接求平均值。有多少种分类就训练多少层,这十个数字就是对应的概率或者叫置信度。

 

>>>关于作者

CSDN 博客专家,2019-CSDN百大博主,计算机(机器学习方向)博士在读,业余Kaggle选手,有过美团、腾讯算法工程师经历,目前就职于Amazon AI lab。喜爱分享和知识整合。

关注微信公众号,点击“学习资料”菜单即可获取算法、编程资源以及教学视频,还有免费SSR节点相送哦。其他平台(微信/知乎/B站),欢迎关注同名公众号「图灵的猫」~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148969.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring aop实例讲解_java swing 教程

    spring aop实例讲解_java swing 教程1.SpringAOP是什么?AspectOrientedProgramming:面向切面编程什么时候会出现面向切面编程的需求?按照软件重构的思想,如果多个类中出现重复的代码,就应该考虑定义一个共同的抽象类,将这些共同的代码提取到抽象类中,比如Teacher,Student都有username,那么就可以把username及相关的get、set方法抽取到SysUser中,这种情况,我们称…

    2022年8月11日
    1
  • flanking sequence_integration by parts

    flanking sequence_integration by partseXtremeDBpaginationpaging分页

    2022年8月31日
    0
  • linux网络配置出现E325,Linux CentOS E325错误,如何解决?VI如何使用?「建议收藏」

    linux网络配置出现E325,Linux CentOS E325错误,如何解决?VI如何使用?「建议收藏」Linuxvi命令即vi编辑器,是Linux/UNIX环境下经典的编辑器。Linuxvi命令非常强大,可以使用它高效的编辑代码,配置系统文件等,运用非常广泛。但在Linux系统中打开vi编辑器时,不少朋友会提示E325:ATTENTION类的错误。那么,遇到这种情况后,该如何解决此类问题呢?为什么会出现E325:ATTENTION类的错误?出现此类错误是vi程序对文件的一种保护机制(…

    2022年5月12日
    36
  • java权限拦截器

    java权限拦截器SecurityInterceptor.javapackagelight.mvc.framework.interceptors;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importlight.

    2022年5月29日
    30
  • @Transactional作用(成像原理)

    事务主要保证了数据操作的原子性,一致性,隔离性和持久性。事务不会跨线程传播,事务不能跨数据源。

    2022年4月13日
    57
  • UVa 414 – Machined Surfaces

    UVa 414 – Machined Surfaces题目:n个由X和空格组成的串,两边有至少一个X,将n个串压缩,每次每行消除一个空格,问到不能消除时剩余的空格。分析:简单题。统计全体空格数sum_b和最少空格数min_b,则结果就是sum_b-n*min_b。注意:利用gets或者getline读入串。#include#include#include#includeusingnamespacestd;

    2022年5月29日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号