如果我们在神经网络中使用 Z-Score(平均​​归一化)来标准化值会发生什么

数据挖掘 机器学习 神经网络
2022-03-07 18:55:41

我目前正在做 DeepLearning.ai 专业化,他们将像素强度与其具有的最大值 (255) 相除,以在处理猫的分类 NN 时标准化数据。Z_Score 对此有何影响?我的代码是否会因为像素不能具有将由 Z 分数分配的负值而失败?

1个回答

通过规范化数据,代码不太可能受到负面影响。这是因为网络不知道图像被用作输入数据的先验,它只接收一组数值(可以代表任何类型的数据)并找到合适的权重和偏差值,从而降低我们的成本功能。

因此,即使我们得到负值作为新的输入数据,也不意味着这种预处理会造成不好的影响。

但是,为什么规范化可能有用?

这里关于 Z-score 归一化的有用之处在于,通过这样做,所有“新像素”都有一个均值为零且方差相同的值。正如 Yann LeCun 在他的论文“ Efficient Backprop ”(第 8 页)中解释的那样,这是一件好事:

  • 为什么要使用均值接近于零的特征数据:

如果训练集上的每个输入变量的平均值接近于零,收敛通常会更快……..当输入向量的所有分量都是正数时,输入节点的所有权重更新将是同一个符号。因此,对于给定的输入模式,这些权重只能全部减少或全部增加。因此,如果权重向量必须改变方向,它只能通过曲折来实现,这是低效的,因此非常慢

他所指的表达式是用于更新第一层权重值的表达式,由下式给出:

Cwjkl=1=δjl=1xk

在哪里xk表示输入像素值和wjkl连接该输入的权重k对神经元j第一层(l=1)。所以,给定标量项δjl=1很明显,如果所有连接输入层和第一层神经元的权重都将沿同一方向更新xk正如报价所解释的那样,是积极的。

  • 为什么要使用具有相同方差的特征的数据?:

缩放加速学习,因为它有助于平衡连接到输入节点的权重的学习速率。

正如我们之前看到的,给出权重更新的表达式wjkl=1与输入成正比xk. 所以如果例如x1样本的值大于x2样品,然后更新wj1wj2可能不平衡,因此在两个参数上使用不同的节奏进行更新。

只是一个旁注将每个特征(每个像素强度)除以其最大值的方法不是Z-score归一化,而是另一种数据归一化的方法(为了使用 Z-score,我们必须用来除特征是所有样本中每个像素的标准偏差)。