Tensorflow,cnn,dnn中的全连接层的理解

上一篇我们讲了使用cnn实现cifar10图像分类,模型经过隐藏层中的卷积、归一化、激活、池化之后提取到主要的特征变量,就会到全连接层,那么全连接层是什么意思呢?通过自己的努力终于理解了全连接层的意思。

1. 全连接层

以上图为例,我们仔细看上图全连接层的结构,全连接层中的每一层都是由许多神经元组成的。


他是怎么把 3 * 3 * 5 的输出 转换为1 * 4096 的形式的呢?很简单,可以理解成咋i中间做了一个卷积

从上图可以看出,我们用 3 * 3 * 5 的filter去卷积激活函数的输出,得到的是一个fully connected layer 的一个神经元的输出,这个输出就是一个值

因为我们有4096个神经元 我们实际就是使用 3* 3 * 5 * 4096 的卷积层去卷积激活函数的输出 重要的理解:这一步的卷积是一个非常重要的作用,就是把分布式特征representation映射到样本标记空间 通俗理解就是把特征representation整合到一起,输出为一个值,这样可以大大减少特征的位置不同而分类错误 我们只需要去计算预测对象的值是否和我们已知对象的值是否相等即可,因为他们的位置不同可能会造成影响,但是值是相同的
例:
第一幅图是我们训练的数据,第二幅图是我们的测试数据,但是两幅图中猫的位置不一样,但是图片内容一样,当我们使用全连接时,会根据图片的内容得出一个值,也就是分类结果,但是不会因为图片的位置不同而造成影响。这样大大增强了模型预测的鲁棒性。

2、使用多层全连接层

在平时的模型建设中很多时候我们都是用两层全连接层,这个是为什么呢?

我们在使用许多神经元去拟合数据分布时,有时候只是用一层fully connected layer没法解决非线性问题,但是如果使用两层或者以上的fully connected layer就可以很好地解决非线性问题了。
根据泰勒公式可知,可以使用多项式函数去拟合光滑函数,我们在这里的全连接层中一层的一个神经元就是可以看成时一个多项式。
在全连接层之前的作用时特征的提取,全连接层的作是分类
举个例子

假设有一个神经网络模型已经训练完成
并且全连接层已经知道,当我们得到以下特征是,结果为一只猫

之前已经说过全连接层的作用是去分类
所以从下图我们可以看出

红色的神经元表示该特征已经被找到,已经被激活 同一层的其他神经元,没有被激活的要么是猫的特征不明显,要么是没找到 当我们把找到的特征组合在一起时,发现最符合要求的是猫 分类更细时,我们对子特征进行分类,如,猫头,猫尾巴,猫眼进行分类
例如对猫头进行分类

猫头有以上的这几种特征,于是我们把猫头的几种特征找到,比如说,猫眼,猫耳朵

道理和找猫的道理一样,当我们找到这些特征,神经元就被激活了,这些子特征就是从前面的卷积层,下采样层得来的。

3、总结
全连接层的参数很多,可以占整个网络参数的80%,近期一些性能优异的网络模型如ResNet和GoogLeNet等军用全局平均池化,取代全连接层来融合学到的深度特征,而且,使用GAP替代FC的网络通常有较好的预测性能。
全连接层对模型的影响

首先全连接层的模型组成如上,那么全连接层对模型影响的参数就是三个:

1、全连接层的总层数 2、单个全连接层的神经元数 3、激活函数

我们先理解激活函数的作用:是增加模型的非线性表达能力

如果全连接层的宽度不变,增加长度

优点:神经元个数增加,模型复杂度提升,全连接层数加深,模型非线性表达能力加强,理论上可以提高模型的学习能力

如果全连接层的长度不变,宽度增加

优点:神经元的个数增加, 增加模型的复杂性,理论上可以提高模型的学习能力

全连接层的长度和宽度并不是越多越好,学习能力太好的话容易过拟合,也会增加运算的时间,效率变低

通过预测的结果进行判断,在其他条件理想的情况下,如果 training accuracy高, validation accuracy比较低,也就是发生了过拟合,可以尝试去减少层数或者参数,如果training accuracy比较低,说明模型的学习能力不强,可以尝试增加模型的层数,或者改变参数,根据实际情况而顶,很多时候会设计一个网络模型, 不光考虑准去率,也在AccuracyEfficiency中寻找一个较好的平衡点。


望您:
“情深不寿,强极则辱,谦谦君子,温润如玉”。

九、(机器学习)-Tensorflow算法之全连接层相关推荐

  1. Tensorflow笔记之 全连接层tf.kera.layers.Dense()参数含义及用法详解

    想了解Dense()全连接层函数的参数意义和用法,首先来一段官方文档,这是tf.keras.layers.Dense()函数的参数,这么多参数需要逐个去理解它的用法,我们先理解每个函数的含义,然后通过 ...

  2. resnet(4)------全连接层与softmax

    文章目录 1. 全连接层 2. SoftMax算法 1. 全连接层 全连接层,指的是每一个结点都与上一层的所有结点相连,用来把前面几层提取到的特征综合起来. 举个例子,前面通过卷积和池化层提取出来的特 ...

  3. 【tensorflow】全连接层函数tf.layers.dense()原理

    TensorFlow全连接层函数tf.layers.dense()原理 - jian shu https://www.jianshu.com/p/3855908b4c29 最近在用TensorFlow ...

  4. 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理

    卷积神经网络(Convolutional Neural Network,CNN)CNN 被用于图像识别.语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础. 1. 全连 ...

  5. (15)tensorflow全连接层的张量实现

    全连接层的张量实现----单层神经网络的实现 定义好权值张量

  6. Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现

    二 架构对参数量/计算量的影响 在自建架构的时候,除了模型效果之外,我们还需要关注模型整体的计算效率.深度学习模型天生就需要大量数据进行训练,因此每次训练中的参数量和计算量就格外关键,因此在设计卷积网 ...

  7. 卷积核和全连接层的区别_「动手学计算机视觉」第十六讲:卷积神经网络之AlexNet...

    前言 前文详细介绍了卷积神经网络的开山之作LeNet,虽然近几年卷积神经网络非常热门,但是在LeNet出现后的十几年里,在目标识别领域卷积神经网络一直被传统目标识别算法(特征提取+分类器)所压制,直到 ...

  8. 全连接层 时间复杂度_神经网络全连接层(3)

    CNN网络基础结构 神经网络-全连接层(3) 上一回我们聊完了算法,这回我们正式开始写代码.上回在做公式推导的时候,我们实际上只是针对一个数据样本进行推导,而实际中,计算和训练都是一批一批完成的.大多 ...

  9. 全连接层的作用_python构建计算图2——全连接层

    (好久不更~)前文中,参照tensorflow的方式实现了简单的自动求导.接下来要在自动求导的基底(模板)上搭建简单的bp神经网络. 计算图 前文曾多次提到计算图,关于什么是计算图,有很多种说法.既然 ...

最新文章

  1. linux发布java网站_Linux下部署java web项目
  2. Ubutu16.04+Cuda9.2/9.0+Cudnn7.12/7.05+TensorFlow-gpu-1.8/1.6
  3. 2013\National _C_C++_B\2.连续奇数和
  4. linux使用环境实验报告,Linux 及其使用环境实验报告.doc
  5. 第二届大数据科学与工程国际会议在贵阳成功召开
  6. 面试题:DUBBO源码使用了哪些设计模式
  7. asp.net webform设计思路的思考
  8. java动态删除map元素报错_java map使用迭代器遍历时执行删除元素报空指针异常
  9. java架构师之路:推荐的15本书
  10. BNU 斩(超级大水题)
  11. 基于模块化多电平换流器(MMC)的柔性直流输电系统simulink仿真模型开发
  12. 基于STM32的高精度温度测控系统-PCB设计
  13. fw325r虚拟服务器,fw325r无线路由器设置
  14. CleanMyMac X苹果电脑系统管家级的多功能百宝箱
  15. 一文读懂 Jmeter - 你以为Jmeter只能用来做压力测试?
  16. 涨姿势!摹客切图小技巧
  17. 微信公众号查询账户余额等
  18. traceback说明
  19. 16 个动态图:一款好用到爆的 Python 可视化利器
  20. 1217. Play with Chips*

热门文章

  1. Java POI处理Word表格并建立副本文档
  2. 提高 “非技术性” 能力是关键
  3. 智能门锁行业,未来发展的大趋势
  4. odoo15 信息提示的又一点炫酷
  5. 苹果cmsV10x在线视频网站源码
  6. 【C++初阶7-string实现】xxx坐享其成,xxx苦不堪言
  7. D-U-N-S 号申请最新流程的心得
  8. 01-fink基础知识
  9. linux管理工具:WinSCP使用
  10. linux 查看显卡(NVIDIA)的算力