【问题标题】:Arbitary choosen values as std/mean for normalizatio. why?任意选择的值作为标准化的标准/平均值。为什么?
【发布时间】:2020-05-29 15:31:33
【问题描述】:

我对@9​​87654325@ 方法有疑问。
此方法使用z-scorenormalize 数据集的值,需要mean/std
我知道您通常应该使用数据集的mean/std
但是我在 pytorch.orgnet 上看到了多个教程,他们只是将 0.5 用于 mean/std,这对我来说似乎完全是任意的。
我想知道他们为什么不使用数据集的mean/std

仅使用 0.5 作为mean/std 的示例教程: https://pytorch.org/tutorials/beginner/dcgan_faces_tutorial.html
https://medium.com/ai-society/gans-from-scratch-1-a-deep-introduction-with-code-in-pytorch-and-tensorflow-cb03cdcdba0f
https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py

【问题讨论】:

  • 也许链接教程也会有所帮助。
  • 因为有时它们不那么相关,所以提供[0, 1.] 范围的平均值。我会说这取决于数据集的偏差。
  • 我的意思是我知道在你链接的情况下他们从哪里得到平均值和标准。他们计算了数据集的平均值和标准差。我想知道的是那些只使用 0.5 作为均值/标准进行归一化而不计算数据集的均值/标准的情况,这在我看来完全是任意的。

标签: pytorch normalization


【解决方案1】:

如果您使用数据集的标准/均值对同一数据集进行归一化,您将在归一化后获得 均值 0标准 1
其中标准化数据集的 min/max不在一定范围内。

如果您使用 mean/std of 0.5 作为数据集标准化的参数,您将有一个数据集在 -1 的 范围 到1
并且标准化数据集的mean接近零,标准化数据集的std接近0.5强>。

所以要回答我的问题,当您希望数据集在 -1 到 1 的范围内时,您可以使用 0.5 作为均值/标准
例如,在神经网络中使用 tanh 激活函数时,这将是有益的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2020-10-10
    • 2022-12-23
    • 2018-01-21
    • 2017-06-10
    相关资源
    最近更新 更多