神经网络回归问题的输入特征重新缩放

在用于回归问题的Neural Nets中,我们会根据输出激活函数一致地重新缩放连续标签,例如,如果使用逻辑Sigmoid函数,则对其进行归一化;如果使用tanh函数,则进行调整后的归一化。最后,我们可以通过重新归一化输出神经元来恢复原始范围。

我们是否也应该对输入特征进行归一化?如果是,应该如何操作?例如,如果隐藏层的激活函数与输出层的激活函数不同呢?比如,如果隐藏层的激活函数是TANH,而输出层的激活函数是LOGISTIC,输入特征应该归一化到[0,1]还是[-1,1]区间呢?


回答:

简短的回答是肯定的,你也应该对输入值进行缩放,尽管这样做的原因与输出神经元的不同。激活函数只是使得某些输出值无法达到(例如,Sigmoid只能输出[0,1]区间内的值,tanh只能输出[-1,1]区间内的值),而这对于输入来说并非如此(所有激活函数都在整个实数域上定义)。缩放输入是为了加速收敛(以避免进入激活函数的“平坦”部分),但没有确切的规则。至少有三种广泛使用的可能性:

  • 线性缩放到[0,1]
  • 线性缩放到[-1,1]
  • 归一化到均值为0和标准差为1

每种方法在某些特定数据集上都有其优缺点。据我所知,最后一种方法具有最佳的统计特性,但在神经网络的背景下仍然是一种“经验法则”。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注