机器学习的特征归一化Normalization

电玩女神 2023-10-04 22:17 83阅读 0赞

文章目录

  • 为什么需要做归一化?
  • 两种常用的归一化方法
  • 批归⼀化(Batch Normalization)
    • 局部响应归⼀化
    • 批归⼀化(Batch Normalization)
    • 批归一化的适用场景及优点

为什么需要做归一化?

为了消除数据特征之间的量纲影响,就需要对特征进行归一化处理,使得不同指标之间具有可比性。对特征归一化可以将所有特征都统一到一个大致相同的数值区间内。

  1. 为了后⾯数据处理的⽅便,归⼀化可以避免⼀些不必要的数值问题。
  2. 为了程序运⾏时收敛加快。
  3. 统一量纲。
  4. 保证输出数据中数值⼩的不被吞⾷。
  5. 避免神经元饱和。

在这里插入图片描述

两种常用的归一化方法

  • 线性归⼀化(最大最小归一化,Min-Max Scaling)
    在这里插入图片描述
  • 标准差标准化(零均值归一化,Z-Score Scaling)
    在这里插入图片描述

经过处理的数据符合标准正态分布,即均值为 0,标准差为 1。

批归⼀化(Batch Normalization)

局部响应归⼀化

局部响应归⼀化(Local Response Normalization ,LRN)是AlexNet中首次引入的归一化方法。

使用LRN的原因是为了鼓励横向抑制

横向抑制:这是神经生物学中的一个概念,是指神经元减少其邻居活动的能力。在深度神经网络中,这种横向抑制的目的是进行局部对比度增强,以便使局部最大像素值用作下一层的激励。

批归⼀化(Batch Normalization)

以前在神经⽹络训练中,只是对输⼊层数据进⾏归⼀化处理,却没有在中间层进⾏归⼀化处理。要知道,虽然我们对输⼊数据进⾏了归⼀化处理,但是输⼊数据运算之后,其数据分布很可能被改变,⽽随着深度⽹络的多层运算之后,数据分布的变化将越来越⼤。

这种在神经⽹络中间层也进行归⼀化处理,使训练效果更好的方法,就是批归⼀化。

批归一化的算法流程:

输⼊:上⼀层输出结果X = {x1, x2, …, xm}

  1. 计算上⼀层输出数据的均值:
    在这里插入图片描述
  2. 计算上⼀层输出数据的标准差
    在这里插入图片描述
  3. 归一化
    在这里插入图片描述
  4. 重构
    在这里插入图片描述γ和β为可学习的参数。

批归一化的适用场景及优点

在CNN中,批归一化应作⽤在⾮线性映射前。在神经⽹络训练时遇到收敛速度很慢,或梯度爆炸等⽆法训练的状况时可以尝试BN来解决。

当BatchSize比较大,数据分布比较接近,并在训练前对数据充分shuffle。
批归一化不适⽤于动态的⽹络结构和RNN⽹络。

使用批归一化具有以下优点:

  1. 减少了人为选择参数。
  2. 减少了对学习率的要求。
  3. 破坏原来的数据分布,⼀定程度上缓解过拟合。
  4. 减少梯度消失,加快收敛速度,提⾼训练精度。

发表评论

表情:
评论列表 (有 0 条评论,83人围观)

还没有评论,来说两句吧...

相关阅读