训练神经网络的数据范围

时间:2015-12-28 13:38:06

标签: neural-network normalization training-data

神经网络使用较小范围的训练数据或无关紧要吗?例如,如果我想训练一个角度(浮点值)的ANN,我应该以度[0; 360]或以弧度为单位[0; 6.28]或者可能所有值都应归一化到[0; 1]?培训数据的范围是否会影响ANN的学习质量? 我的神经网络有6个输入神经元,1个隐藏层,我使用sigmoid对称激活函数(tanh)。

2 个答案:

答案 0 :(得分:0)

数据点范围会影响您训练模型的方式。假设数据集中要素的值范围未规范化。然后,根据您的数据,您最终可能会为特征空间中的数据点延长椭圆,并且学习模型将很难学习数据点所在的流形(学习基础分布)。此外,在大多数情况下,如果未标准化(see this),数据点将稀疏地分布在要素空间中。因此,带回家的消息是在可能的情况下规范化功能。

答案 1 :(得分:0)

对于神经网络,数据是否标准化并不重要。 但是,训练方法的表现可能会有很大差异。 简而言之:通常,这些方法更喜欢具有较大值的变量。这可能会使培训方法偏离正轨。

大多数NN训练方法的关键是训练数据的所有维度都具有相同的域。如果所有变量都是角度则无关紧要,只要它们具有相同的域,它们是[0,1)还是[0,2 * pi]还是[0,360]。但是,你应该避免使用角度[0,2 * pi)的一个变量和另一个以mm为单位的变量,其中距离可以远大于2000000mm。

在这些情况下算法可能会遇到的两种情况:

(a)正则化:如果NN的权重很小,控制大域变量输入的权重的微小变化对小域的影响要大得多

(b)梯度下降:如果步长有限,则会产生类似的影响。

建议:所有变量都应具有相同的域大小,无论它是[0,1]还是[0,2 * pi]还是......都无关紧要。

补充:对于许多领域,“z-score normalization”的效果非常好。