为什么我们需要在将图像放入 CNN 之前对其进行归一化?

机器算法验证 深度学习 卷积神经网络 图像处理
2022-01-16 17:37:28

我不清楚我们通过 (image - mean_image) 对 CNN 的图像进行归一化的原因?谢谢!

1个回答

首先注意:您确实也应该除以每个特征(像素)值的标准偏差。减去均值使输入居中为 0,然后除以标准差,使任何缩放的特征值​​成为远离均值的标准差数。

回答您的问题:考虑神经网络如何学习其权重。C(NN)s 通过不断地将反向传播计算的梯度误差向量(乘以学习率)添加到整个网络中的各种权重矩阵来学习,因为训练示例通过。

这里要注意的是“乘以学习率”。

如果我们不缩放输入训练向量,则每个特征的特征值分布范围可能会有所不同,因此学习率会导致每个维度的校正(按比例)彼此不同。我们可能会过度补偿一个重量维度的校正,而在另一个重量维度上补偿不足。

这是不理想的,因为我们可能会发现自己处于振荡(无法集中在成本(权重)空间中更好的最大值)状态或缓慢移动(行驶太慢而无法达到更好的最大值)状态。

当然可以有一个按权重的学习率,但是要引入一个已经很复杂的网络,我们还必须优化才能找到更多的超参数。通常学习率是标量。

因此,我们尝试在将图像用作 NN(或任何基于梯度的)算法的输入之前对其进行归一化。