指数衰减的神经网络输入
Neural network input with exponential decay
通常,为了提高学习率,神经网络的输入会通过缩放和移动到 -1 和 1 之间进行预处理。我想知道这对于图形呈指数衰减的输入是否是个好主意.例如,如果我有一个整数值从 0 到 100 的输入,其中大多数输入为 0,较小的值比较大的值更常见,99 非常罕见。
似乎对它们进行缩放和移动并不理想,因为现在最常见的值是 -1。如何最好地处理此类输入?
假设您使用的是围绕原点对称的 S 形激活函数:
加速收敛的诀窍是让归一化数据集的均值也为0。激活函数的选择很重要,因为您不仅学习从输入到第一个隐藏层的权重,即规范化输入是不够的:第二个隐藏 layer/output 的输入也被学习,因此需要遵守相同的规则才能产生结果。在非输入层的情况下,这是由激活函数完成的。被多次引用的 Efficient Backprop paper by Lecun summarizes these rules and has some nice explanations as well which you should look up. Because there's other things like weight and bias initialization 也应该考虑。
在第 4.3 章中,他给出了一个公式来标准化输入,使均值接近 0,标准偏差为 1。如果您需要更多来源,this 也是很好的常见问题解答。
我不知道你的应用场景,但如果你使用的是符号数据,并且 0-100 代表百分比,那么你也可以将 softmax 应用到输入层以获得更好的输入表示.还值得注意的是,有些人更喜欢缩放到 [.1,.9] 而不是 [0,1]
编辑:重写以匹配评论。
通常,为了提高学习率,神经网络的输入会通过缩放和移动到 -1 和 1 之间进行预处理。我想知道这对于图形呈指数衰减的输入是否是个好主意.例如,如果我有一个整数值从 0 到 100 的输入,其中大多数输入为 0,较小的值比较大的值更常见,99 非常罕见。
似乎对它们进行缩放和移动并不理想,因为现在最常见的值是 -1。如何最好地处理此类输入?
假设您使用的是围绕原点对称的 S 形激活函数:
加速收敛的诀窍是让归一化数据集的均值也为0。激活函数的选择很重要,因为您不仅学习从输入到第一个隐藏层的权重,即规范化输入是不够的:第二个隐藏 layer/output 的输入也被学习,因此需要遵守相同的规则才能产生结果。在非输入层的情况下,这是由激活函数完成的。被多次引用的 Efficient Backprop paper by Lecun summarizes these rules and has some nice explanations as well which you should look up. Because there's other things like weight and bias initialization 也应该考虑。
在第 4.3 章中,他给出了一个公式来标准化输入,使均值接近 0,标准偏差为 1。如果您需要更多来源,this 也是很好的常见问题解答。
我不知道你的应用场景,但如果你使用的是符号数据,并且 0-100 代表百分比,那么你也可以将 softmax 应用到输入层以获得更好的输入表示.还值得注意的是,有些人更喜欢缩放到 [.1,.9] 而不是 [0,1]
编辑:重写以匹配评论。