数据预处理:我们应该按像素标准化图像吗?

数据挖掘 机器学习 深度学习 图像分类 预处理 计算机视觉
2021-10-06 07:22:29

让我向您展示一个玩具示例和我对图像规范化的推理:

假设我们有一个 CNN 架构来将 NxN 灰度图像分为两类。像素值范围从 0(黑色)到 255(白色)。

  • 0 类:图像中心包含一个实心圆圈的图像。圆圈内的像素值高,接近255。圆圈外的像素低,接近0。下面是一个0类图片的例子。

0 类示例

  • 第 1 类:为空的图像,包含接近 0 的像素。下面是一个示例,基本上是一张深色图像。

1 类示例

注意:图像基本上显示二进制值:白色/黑色,但是,假设黑色值可能在 [0, 30] 和白色值 [230-255] 的范围内,并具有一些随机分布。

在向网络提供图像之前,我们对数据进行预处理和规范化。这基本上意味着(i)使数据居中和(ii)缩放数据。一种典型且简单的方法是对所有像素减去 127.5 并按 255 缩放,以使像素值范围为 [-1, 1]。或者,另一种方法包括计算“平均图像”和“动态范围图像”,并以像素为单位对图像进行居中和缩放。让我们关注后者。

计算“平均图像”主要是指将所有图像按像素求和并按像素求平均。结果,我们获得了 NxN 平均图像。这有时可以阐明我们的任务并帮助我们了解我们正在使用的数据。同样,“动态范围图像”是通过逐像素计算最大值和最小值来获得的。“动态范围图像”向我们展示了每个像素可以取的值范围。

假设 1

在训练期间,CNN 中不同层的内核将尝试检测圆圈。由于任务相当简单,因此内核基本上必须了解当存在圆形时,存在从“空白区域”到“圆形区域”的强烈像素值转换。

假设 2

在对图像像素进行归一化之后,我们得到所有像素具有相同的范围和相同的均值,分别为 [-1, 1] 和 0。

最终假设

考虑一个 0 类图像(即图像有一个圆圈)。在归一化之前,像素 (i, j) 的值为 30(暗),这恰好是像素 (i, j) 所采用的最大值。像素 (i, j+1) 的值是 255(白色),也是像素 (i, j+1) 所取的最大值。所以我们有一个强大的过渡,第一层的内核应该能够学习。

但是,如果我们用“平均图像”和“动态范围图像”对数据进行归一化,这种强烈的转变不会被软化吗?特别是,转换将从值 1 到值 1,因为两者都是它们各自位置的最大值。从一个清晰而艰难的过渡中,我们以从相似值像素的过渡结束。

结论 使用这种逐像素归一化,我们最终会丢失全局像素信息,这可能会使内核的工作更加困难。我相信如果使用“方差图像”而不是“动态范围图像”,可能会得出相同的结论。

问题 是我遗漏了一些观点还是不再使用这种标准化?

另外 ,我还想到了批量标准化,它有时用于第一层,以便在网络内完成标准化。我想也许BN中使用的参数“beta”和“gamma”可能能够解决这个问题,如果它在训练时出现的话。

1个回答

我们首先通过减去批次的平均值来集中我们的数据。我们还除以标准差,所以我们的公式变为:

z=X-μσ

在哪里:

X是像素值

μ是通道分布的算术平均值

σ是通道的标准偏差,计算如下:

σ=一世=1ñ|X一世-μ|2ñ

通过以这种方式标准化数据,我们获得了一个平均值 (μ) = 0 和标准差 (σ) = 1。这允许 SGD 更快地收敛。

更容易看出特征缩放如何使 SVM 等更简单的模型受益,但 CNN 也同样受益。(Mini-)Batch normalization 使每个像素都有相似的分布,这有助于 SGD 更快地收敛。这是因为网络通常具有共享的超参数。例如,学习率是网络中所有权重的乘数,而不是每个权重都有一个学习率;因此,我们希望单个学习率在所有区域中具有成比例的影响。否则,学习率可能会使某些权重过度正确,而另一些权重则不正确。


这篇文章很好地解释了 CNN 的预处理。我会尽量突出重点(以下图片摘自其中)

让我们考虑一个人脸识别挑战: 野外标记的面孔

取批次的平均值(左)和标准差(右),我们得到以下结果: 平均值(左)和标准差(右)

我们居中的数据类似于一张脸,但更重要的是,我们的标准差图像沿边界和除人脸之外的任何地方都显示出很大的差异。从我们的 z-score 公式中,我们可以预测靠近边界和不相关区域的标准化值将比面部周围的值相对压缩更多。结果归一化如下所示: 在此处输入图像描述


归一化输入图像被广泛使用,通常被认为是必要的预处理步骤。但是,做出诸如“标准化总是有益的”或“标准化永远不会有益”这样的绝对陈述将是错误的。

在您提出的场景中,对数据进行规范化不会使 CNN 受益,但网络仍然能够很好地学习数据。然而,这是一种非常原始的情况,大多数现实世界的问题都需要考虑更多的噪声和方差。一般来说,对输入图像进行归一化会提高 SGD 的收敛时间。