深度学习(二)常见概念

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

(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)

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

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

  缩放尺度、随机裁剪

  加噪声,颜色变换

posted @ 2018-08-16 17:33  大球和二憨  阅读(274)  评论(0编辑  收藏  举报