machine-learning - 具有指数衰减的神经网络输入

标签 machine-learning neural-network

通常,为了提高学习率,神经网络的输入会通过缩放并移动到 -1 和 1 之间来进行预处理。不过,我想知道对于图形呈指数衰减的输入来说,这是否是一个好主意。例如,如果我有一个整数值从 0 到 100 分布的输入,大多数输入为 0,较小的值比大的值更常见,而 99 则非常罕见。

似乎缩放它们和移动并不理想,因为现在最常见的值是 -1。如何最好地处理这种类型的输入?

最佳答案

假设您使用的是围绕原点对称的 sigmoid 激活函数:

enter image description here

加速收敛的技巧是让归一化数据集的均值也为 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/

相关文章:

html - 使用 R 抓取亚马逊评论

machine-learning - NEAT 和强化学习之间有什么关系?

python - 使用机器学习解码回溯

c++ - 您建议使用什么用于前馈神经网络的 C++?

image-processing - 让神经网络输出高斯分布而不是单个值?

machine-learning - 如何添加一个热向量?

machine-learning - Azure 机器学习 : error with multiclass classification algo

tensorflow - 如何确保你的计算图是可微的

带有 S 型神经元的 OpenCV MLP,输出范围

neural-network - Tensorflow:GPU 利用率几乎始终为 0%