深度学习-归一化算法

深度学习-归一化算法目录

  • 前言
  • 一、归一化
    • 1. 什么是归一化
    • 2. 为什么要归一化
    • 3. 为什么归一化能提高求解最优解的速度
    • 4. 归一化有哪些类型
    • 5. 不同归一化的使用条件
    • 6. 归一化和标准化的联系与区别
    • References
  • 二、层归一化
    • 1. 层归一化详解
    • 2. 提出背景
    • 3. 概念及算法
    • 4. 算法作用
    • 5. 应用场景


前言

本深度学习系列是根据paddle飞浆所简单整理的,需要可自行跳转学习。本节是关于深度学习-归一化算法的相关内容,包括归一化和层归一化等。这是只简单记录部分知识,目的是方便以后复习。


一、归一化

1. 什么是归一化

归一化是一种数据处理方式,能将数据经过处理后限制在某个固定范围内。归一化存在两种形式,一种是在通常情况下,将数处理为 [0, 1] 之间的小数,其他情况下,也可将数据处理到 [-1, 1] 之间,或其他的固定范围内。另一种是通过归一化将有量纲表达式变成无量纲表达式。那么什么是量纲,又为什么需要将有量纲转化为无量纲呢?经过归一化处理后,不仅可以消除量纲的影响,也可将各数据归一化至同一量级,从而解决数据间的可比性问题。

2. 为什么要归一化

  1. 如在1.什么是归一化中所讲,归一化可以将有量纲转化为无量纲,同时将数据归一化至同一量级,解决数据间的可比性问题。
  2. 数据归一化后,寻求最优解的过程会变得平缓,可以更快速的收敛到最优解

3. 为什么归一化能提高求解最优解的速度

我们可以看到,经过归一化后的数据属于同一量级,损失函数的等高线呈现为一个矮胖的椭圆形(如图1(右)所示),求解最优解过程变得更加迅速且平缓,因此可以在通过梯度下降进行求解时获得更快的收敛。

4. 归一化有哪些类型

  1. Min-max normalization (Rescaling):
  2. Mean normalization:
  3. Z-score normalization (Standardization):
  4. 非线性归一化:

5. 不同归一化的使用条件

  1. Min-max归一化和mean归一化适合在最大最小值明确不变的情况下,如果对处理后的数据范围有严格要求,也应使用min-max归一化或mean归一化。
  2. Z-score归一化也可称为标准化,经过处理的数据呈均值为0,标准差为1的分布。在数据存在异常值、最大最小值不固定的情况下,可以使用标准化。标准化会改变数据的状态分布,但不会改变分布的种类。特别地,神经网络中经常会使用到z-score归一化,针对这一点,我们将在后续的文章中进行详细的介绍。
  3. 非线性归一化通常被用在数据分化程度较大的场景,有时需要通过一些数学函数对原始值进行映射,如对数、反正切等。
    注意:
    “在分类、聚类算法中,需要使用距离来度量相似性的时候,z-score归一化也就是标准化的效果比归一化要好,但是对于这个观点并没有给出足够的技术支持。最好的选择方法就是进行实验,选择在当前实验条件下,能够使模型精度更高的一种。

6. 归一化和标准化的联系与区别

谈到归一化和标准化可能会存在一些概念的混淆,我们都知道归一化是指normalization,标准化是指standardization,但根据wiki上对feature scaling方法的定义,standardization其实就是z-score normalization,也就是说标准化其实是归一化的一种,而一般情况下,我们会把z-score归一化称为标准化,把min-max归一化简称为归一化。在下文中,我们也是用标准化指代z-score归一化,并使用归一化指代min-max归一化。
归一化和标准化的本质都是一种线性变换,他们都不会因为对数据的处理而改变数据的原始数值排序。

那么归一化和标准化又有什么区别呢?

归一化不会改变数据的状态分布,但标准化会改变数据的状态分布;

归一化会将数据限定在一个具体的范围内,如 [0, 1],但标准化不会,标准化只会将数据处理为均值为0,标准差为1。

References

二、层归一化

1. 层归一化详解

归一化定义:数据标准化(Normalization),也称为归一化,归一化就是将需要处理的数据在通过某种算法经过处理后,将其限定在需要的一定的范围内。

2. 提出背景

3. 概念及算法

层归一化:通过计算在一个训练样本上某一层所有的神经元的均值和方差来对神经元进行归一化。

4. 算法作用

  1. 加快网络的训练收敛速度 在深度神经网络中,如果每层的数据分布都不一样,将会导致网络非常难以收敛和训练(如综述所说难以在多种数据分布中找到平衡点),而每层数据的分布都相同的情况,训练时的收敛速度将会大幅度提升。
  2. 制梯度爆炸和防止梯度消失。采用归一化算法后,可以使得f′i∗O′i的结果不会太大也不会太小,有利于控制梯度的传播。

5. 应用场景

层归一化在递归神经网络RNN中的效果是受益最大的,它的表现优于批归一化,特别是在动态长序列和小批量的任务当中

但是,研究表明,由于在卷积神经网络中,LN会破坏卷积所学习到的特征,致使模型无法收敛,而对于BN算法,基于不同数据的情况,同一特征归一化得到的数据更不容易损失信息,所以在LN和BN都可以应用的场景,BN的表现通常要更好。


你可能感兴趣的:(#,深度学习基础篇,深度学习,算法,人工智能)