ReLu 的输入标准化?

数据挖掘 机器学习 神经网络 深度学习 激活函数
2021-10-03 07:14:32

让我们假设一个用于分类的普通 MLP,具有给定的隐藏层激活函数。

我知道如果 sigmoid 是激活函数,将网络的输入规范化在 0 和 1 之间是一种已知的最佳实践,如果 tanh 是激活函数,则将网络的输入规范化为 -0.5 和 0.5。

ReLu 呢?

我应该将网络输入标准化为 0 和 1、-0.5 和 0.5 还是 -1 和 1

那里有任何已知的最佳实践吗?

我不是在谈论 ReLu 输入的规范化,例如在 ReLu 之前或之后使用 Batch Normalization:https ://arxiv.org/pdf/1508.00330

但我说的是标准化整个网络的输入。

1个回答

您必须标准化您的数据以加速学习过程,但根据经验,最好以标准方式标准化您的数据,即均值零和标准差一。虽然映射到接近零的其他小区间也可能很好,但后一种情况通常比另一种需要更多时间。如果您使用ReLU,再次根据经验,您必须标准化您的数据并为您的权重使用标准初始化技术,例如He 或 Glorot方法。原因是您应该避免每次激活都太大,因为您的网络将非常依赖于该激活,并且您可能会遇到过度拟合问题。当你使用ReLU因为它的输出没有限制,所以您必须规范化输入数据,并使用避免权重值较大的初始化技术。有关更多信息,我鼓励您查看此处此处