图像 CNN 的批量归一化 - 为什么不使用整个批次的平均值?

数据挖掘 批量标准化
2022-02-22 23:02:45

问题

为了让 CNN 识别图像,为什么不使用整个批次数据而不是每个特征来计算 Batch Normalization 中的平均值?

当每个特征独立时,需要使用每个特征。然而,对于 CNN,具有 8 位颜色的 RGB 通道的图像的特征(像素)是相关的。如果图像的 R 通道中有 256 个像素,则255 个像素i255 个像素j都是白色的,这意味着 R 颜色的强度(?)相同。

那为什么不批量使用整个数据的平均值呢?如果像素通道i恰好有 (0, 127) 和通道j有 (128, 255) 之间的值,则 (0, 127) 的含义在 [0, 255] 之间i以及 和之间的关系含义j,即像素i强度低于j) 丢失。

在此处输入图像描述

1个回答

如果您将 BN 应用于输入层,则上述情况实际上是正确的。😌

然而,关键是 BN 主要用于卷积层或全连接层之后(激活层之前)。因此,BN 将不是针对像素值计算,而是针对 conv 或 FC 层的输出计算,它们的范围不受限制(值可以是从 -inf 到 +inf 的任何值)。🤸‍♂️

此外,conv/FC 层的输出将具有完全不同的维度(因为您应用了不同的内核),因此实际上不能被视为彼此“以某种方式相关”。

编辑:添加了全连接层