代码之家  ›  专栏  ›  技术社区  ›  Jame

为什么我们需要将输入标准化为零均值和单位方差,然后再输入网络?

  •  0
  • Jame  · 技术社区  · 7 年前

    在深度学习中,我看到许多论文将预处理步骤作为规范化步骤。它将输入标准化为零均值和单位方差,然后送入卷积网络(has BatchNorm)。为什么不使用原始强度?标准化步骤的好处是什么?如果我在图像之间使用直方图匹配,我还应该使用标准化步骤吗?谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   Suleiman    7 年前

    squared error function

    因此最好是正常化。

        2
  •  0
  •   Viman Deb    5 年前

    答案可以在Andrew Ng的教程中找到: https://youtu.be/UIp2CMI0748?t=133 .

    太长,读不下去了 :如果不规范化输入特征,某些特征可能具有非常不同的比例,并会减慢渐变下降。

    :让我们考虑一个模型,它使用两个特性Feature1和Feature2,范围如下:

    特征1:[1010000] 特征2:[0.00001,0.001]

    Contour plot of Feature1 and Feature2

    当您执行梯度下降时,您将计算d(特征1)和d(特征2),其中“d”表示差分,以便使模型权重更接近于最小化损失。从上面的等高线图可以明显看出,与d(特征2)相比,d(特征1)要小得多,所以即使你选择了一个合理的中等学习率值,那么你也会因为d(特征2)的相对较大的值而绕来绕去,甚至可能错过全局最小值。 Medium value of learning rate

    Very small Gradient Descent

    所以从上面的例子可以看出,不缩放特征会导致效率低下的梯度下降,从而导致找不到最佳模型

    推荐文章