zoukankan      html  css  js  c++  java
  • 深度学习(二)常见概念

    下面介绍深度学习算法中常用的一些概念。

    (1)层(Layer)

      神经网络是由多层组成的,层(Layer)就是接受加权输入、经过非线性激励函数变换、作为输出传递给下一层的容器。

      一层通常只含一种激励函数,如池化、卷积等等。第一层和最后一层分别称为“输入层”和“输出层”,中间的都称作“隐藏层”。

    (2)局部连接(Local connection),权值共享(weight sharing)

      图像中某点只有它周边点存在联系,而不是全图。此外,卷积核的权值对图中所有点一致,通过卷积可以得到feature map

    (3)池化操作

      也是一种降采样的操作,将feature map中的特征进行聚合统计,

      max_Pooling:对抽象特征提取较好(如纹理)

      average_Pooling:对较形象的特征提取较好(如背景信息)

      不用Pooling的替代方案:增加conv的stride以免去pooling操作

    (4)激活函数(tanh,relu,sigmoid)

      提供网络的非线性建模映射能力,如果没有激活函数,就只是线性映射,相当于多层感知器(MLP)

      常见的激活函数对比可参考:https://blog.csdn.net/NOT_GUY/article/details/78749509

    (5)全连接运算(inner product)

      全连接层的每个点都是与上一层的所有点关联的,是用来把上一层的所有特征关联起来,一般全连接层的参数是比较多的。

    (6)LRN(Local Response Normalization)

      首次在AlexNet中提出并使用,在该模型中用以提高准确率,但在后来的一些文献中表明该方法其实并不是特别奏效。

      一般是用在激活和池化之后,对局部神经元创造竞争机制,使得响应较大的值变得更大,抑制一些响应较小的值(侧抑制)。

      函数定义等可参考:https://blog.csdn.net/program_developer/article/details/79430119

    (7)BatchNormalization

      在使用激活函数前,对特征进行归一化处理,

      白化:把输入数据的分布变换到0均值,单位方差的正态分布, 那么数据就会收敛的更快

      BatchNorm类似于对神经网络的激活层输入做简略版白化 (随着网络加深和不断训练,激活变换的输入分布会发生偏移,往上下限两端靠近,容易导致低层神经网络的梯度消失,所以可以通过bn把)

      详细解释可参考:https://www.cnblogs.com/guoyaohua/p/8724433.html 及 https://blog.csdn.net/hjimce/article/details/50866313

    (8)momentum参数理解

      梯度下降法中的收敛加速法,带有momentum的时候可以使用较大的learningRate

    (9)数据增强(Data Augmentation)

      通过一些变换手段增加数据量和场景,从而提高模型的泛化能力,常见的增强技术有:

      水平翻转,垂直翻转,旋转

      缩放尺度、随机裁剪

      加噪声,颜色变换

  • 相关阅读:
    java工程师面试总结
    多线程面试题
    冒个泡
    给大家简单介绍一下:Elasticsearch
    单点登录
    (jQuery)Cookie记住用户名和密码
    我们需要循序渐进的代码重构
    Java序列化(Serialization)的理解
    Java对象序列化
    【武】做一个有自控力的人,开始你的时间规划吧!
  • 原文地址:https://www.cnblogs.com/lightsun/p/9488555.html
Copyright © 2011-2022 走看看