在CheXNet论文中的密集网络模型的实现中,在第 3.1 节中提到:
在将图像输入网络之前,我们将图像缩小到 224x224,并根据 ImageNet 训练集中图像的均值和标准偏差进行归一化。
- 为什么我们要使用不同数据集的均值和标准对新的图像集进行归一化?
- 我们如何获得 ImageNet 数据集的均值和标准差?它在某处提供吗?
在CheXNet论文中的密集网络模型的实现中,在第 3.1 节中提到:
在将图像输入网络之前,我们将图像缩小到 224x224,并根据 ImageNet 训练集中图像的均值和标准偏差进行归一化。
减去均值使输入居中为 0,然后除以标准差,使任何缩放的特征值成为远离均值的标准差数。
考虑神经网络如何学习其权重。C(NN)s 通过不断地将反向传播计算的梯度误差向量(乘以学习率)添加到整个网络中的各种权重矩阵来学习,因为训练示例通过。
这里要注意的是“乘以学习率”。
如果我们不缩放输入训练向量,则每个特征的特征值分布范围可能会有所不同,因此学习率会导致每个维度的校正(按比例)彼此不同。我们可能会过度补偿一个重量维度的校正,而在另一个重量维度上补偿不足。
这是不理想的,因为我们可能会发现自己处于振荡(无法集中在成本(权重)空间中更好的最大值)状态或缓慢移动(行驶太慢而无法达到更好的最大值)状态。
他们使用 ImageNet 训练集的均值和标准差,因为他们模型的权重是在 ImageNet 上预训练的(请参阅本文的模型架构和训练部分)。