zoukankan      html  css  js  c++  java
  • 卷积神经网络的结构及对卷积的理解

    1、参考

    https://www.cnblogs.com/skyfsm/p/6790245.html

    https://zhuanlan.zhihu.com/p/27642620

    2、卷积神经网络的层级结构:
          • 数据输入层/ Input layer
      • 卷积计算层/ CONV layer
      • ReLU激励层 / ReLU layer
      • 池化层 / Pooling layer
      • 全连接层 / FC layer

    2.1 数据输入层

    该层要做的处理主要是对原始图像数据进行预处理,其中包括:
      • 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。
      • 归一化:幅度归一化到同样的范围,如下所示,即减少各维度数据取值范围的差异而带来的干扰,比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。
      • PCA/白化:用PCA降维;白化的目的就是降低输入的冗余性,假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。

    白化对数据做白化处理必须满足两个条件:

    1. 使数据的不同维度去相关;

    2. 使数据每个维度的方差为1;

    条件1要求数据的协方差矩阵是个对角阵;条件2要求数据的协方差矩阵是个单位矩阵。通常情况下,数据进行白化处理与不对数据进行白化处理相比,算法的收敛性较好

    去均值和归一化效果图:

    PCA和白化的效果图:

    2.2、卷积计算层

    卷积计算层因进行卷积计算而得名,介绍其特性和计算方式

    1、局部连接

    选择一个局部区域(卷积核),用这个局部区域扫描整个图片,被选中的所有节点会被连接到到下一层的一个节点中

    2.空间共享

     当filter扫到其他位置计算输出节点y_i 时,w_1,w_2,w_3,w_4包括b_0是共用的,空间共享引入了先验信息

     3、输出表达

    图片不用向量去表示是为了保留图片平面结构的信息。 同样的,卷积后的输出若用上图的排列方式则丢失了平面结构信息。 所以我们依然用矩阵的方式排列它们,就得到了下图所展示的连接。

    4.depth维的处理

    在2D卷积中,filter在张量的width维, height维上是局部连接,在depth维上是贯串全部channels的

    注意:三个channels的权重并不共享。 即当深度变为3后,权重也跟着扩增到了三组,下式所示,不同channels用的是自己的权重。 式子中增加的角标r,g,b分别表示red channel, green channel, blue channel的权重。

    2.3 激励层

    把卷积层输出结果做非线性映射。

    激励层的实践经验
      ①不要用sigmoid!不要用sigmoid!不要用sigmoid!
      ② 首先试RELU,因为快,但要小心点
      ③ 如果2失效,请用Leaky ReLU或者Maxout
      ④ 某些情况下tanh倒是有不错的结果,但是很少

    2.4 池化层

    池化层夹在连续的卷积层中间, 用于压缩数据和参数的量,减小过拟合。
    简而言之,如果输入是图像的话,那么池化层的最主要作用就是压缩图像。

    2.5 全连接层

    两层之间所有神经元都有权重连接,通常全连接层在卷积神经网络尾部。也就是跟传统的神经网络神经元的连接方式是一样的:

  • 相关阅读:
    Gym101630A Archery Tournament
    BZOJ2588 Count on a tree
    Redis主从复制
    Redis事务
    Redis持久化RDB和AOF
    设计模式之代理模式
    Spring AOP(面向切面编程)
    基于TCP和UDP的Socket通信
    Ajax无法访问回调函数seccess问题
    SpringBoot Ajax跨域问题(session共享问题)
  • 原文地址:https://www.cnblogs.com/abella/p/10256076.html
Copyright © 2011-2022 走看看