通常,为了提高学习率,神经网络的输入会通过缩放并移动到 -1 和 1 之间来进行预处理。不过,我想知道对于图形呈指数衰减的输入来说,这是否是一个好主意。例如,如果我有一个整数值从 0 到 100 分布的输入,大多数输入为 0,较小的值比大的值更常见,而 99 则非常罕见。
似乎缩放它们和移动并不理想,因为现在最常见的值是 -1。如何最好地处理这种类型的输入?
最佳答案
假设您使用的是围绕原点对称的 sigmoid 激活函数:
加速收敛的技巧是让归一化数据集的均值也为 0。激活函数的选择很重要,因为您不仅学习从输入到第一个隐藏层的权重,即标准化输入还不够:输入到第二个隐藏层/输出也被学习,因此需要遵守相同的规则才能产生结果。在非输入层的情况下,这是由激活函数完成的。被广泛引用的Efficient Backprop Lecun 的论文总结了这些规则,并提供了一些很好的解释,您应该查阅。因为还有其他类似 weight and bias initialization 的东西人们也应该考虑这一点。
在第 4.3 章中,他给出了一个公式,用于对输入进行归一化,使均值接近 0,标准差接近 1。如果您需要更多源,this也是很棒的常见问题解答。
我不知道你的应用场景,但如果你使用的是符号数据,并且0-100代表百分比,那么你也可以应用 softmax到输入层以获得更好的输入表示。还值得注意的是,有些人更喜欢缩放到 [.1,.9] 而不是 [0,1]
编辑:重写以匹配评论。
关于machine-learning - 具有指数衰减的神经网络输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32509774/