每个图像归一化与整体数据集归一化

机器算法验证 机器学习 深度学习 卷积神经网络 张量流 计算机视觉
2022-03-28 02:16:51

我很困惑是否应该按图像基本或整个数据集进行标准化(减去平均值并除以标准差)。虽然整体数据集更有意义,但 TensorFlow 等流行库提供tf.image.per_image_standardization的功能如下。

线性缩放图像以具有零均值和单位范数。

此操作计算 (x - mean) /adjusted_stddev,其中均值是图像中所有值的平均值,adjusted_stddev = max(stddev, 1.0/sqrt(image.NumElements()))。

stddev 是图像中所有值的标准差。在处理统一图像时,它的上限远离零以防止被 0 除。

这够好吗?

1个回答

每种方法都有自己的目的。在诸如语音 [1] 等序列数据中,均值和协方差是从话语(录音)中计算出来的,然后从该话语中的所有观察值中减去。这是对每个话语分别进行的。

另一方面,在图像中,一个图像可以看作是一系列像素。因此,图像中的均值和方差是根据该图像中的单个像素计算的。对于逐像素或逐图像归一化,分别为每个图像计算均值和协方差。

在整体归一化的情况下,最好从训练数据中计算均值和方差,并使用它来归一化所有集合,包括训练、验证、测试等。

[1] https://en.wikipedia.org/wiki/Cepstral_mean_and_variance_normalization