为什么在自动编码器中将数据标准化为 [0,1] 范围?

机器算法验证 正常化 自动编码器
2022-03-16 19:20:24

当人们使用自动编码器时,他们通常对数据进行归一化,使值归一化到 [0,1] 范围内。这是为什么?例如,为什么不使用零均值单位方差归一化?我在 Quora 上读到这个范围为您提​​供了更多损失函数的选择,但我真的不明白为什么。有任何想法吗?

1个回答

一般来说,只要输入处于合理的规模,数据的精确归一化在神经网络中并不是非常重要。正如 Alex 所提到的,对于图像,归一化为 0 和 1 恰好非常方便。

归一化无关紧要的事实只有通过使用批量归一化才能变得更强,这是神经网络中经常使用的一个函数/层,它将网络中途的激活重新归一化为零均值和单位方差。而且您链接的论文的作者确实使用了批量标准化,这意味着无论数据之前是标准化的,无论如何它在网络内部都被重新标准化了很多次。

此外,阅读他们在 github 上的代码,他们实际上确实以两种方式对数据进行了预处理——零均值单位方差归一化,以及 min 0 max 1 归一化。他们没有解释为什么选择一个预处理数据集而不是另一个,但我怀疑他们要么只是随意使用 min 0 max 1 归一化,要么一些初步的超参数搜索表明,无论出于何种原因,一个比另一个工作得更好。