代码之家  ›  专栏  ›  技术社区  ›  A. Piro

为什么在应用批次规范化时使用批次进行预测是欺骗?

  •  1
  • A. Piro  · 技术社区  · 7 年前

    post on Quora ,有人说:

    因此,计算整个批次的均值/方差是 不可行(并且是欺骗)。

    但是,只要在训练期间网络没有看到测试数据,就可以使用多个测试图像吗?

    如果有人能解释一下我们的网络从批次中获得了哪些信息,而这些信息本来是不应该有的,那就太好了:)

    非常感谢。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Maxim    7 年前

    但是,只要在训练期间网络没有看到测试数据,就可以使用多个测试图像吗?

    首先,可以使用批次进行测试。其次,在测试模式下, batchnorm 试验批次的平均值或方差。它取已经存在的均值和方差(我们称之为 mu sigma**2 ),仅基于训练数据计算。测试模式中批量范数的结果是所有张量 x 标准化为 (x - mu) / sigma .

    我刚刚浏览了Quora的讨论,可能这句话有不同的背景。但它本身就是 错误的 sigma 与所有其他变量一样,在测试期间不会更改。所以这里没有作弊。

        2
  •  -1
  •   lejlot    7 年前

    声明非常简单,您需要训练您的模型,以便它对某些任务有用。在分类中,任务通常是 数据点 并且你输出了类,没有批处理。当然,在一些实际应用中,您可以批量处理(例如来自同一用户的许多图像等)。就是这样-就是这样 取决于应用程序 因此,如果你想对学习模型提出“一般”的要求,你不能假设在测试期间一个人可以访问批次,仅此而已。