Neural network 神经网络的训练数据范围

Neural network 神经网络的训练数据范围,neural-network,normalization,training-data,Neural Network,Normalization,Training Data,神经网络使用较小范围的训练数据更好还是无关紧要?例如,如果我想用角度(浮点值)训练ANN,我应该以度[0;360]或弧度[0;6.28]为单位传递这些值,还是应该将所有值归一化为范围[0;1]?训练数据的范围是否影响神经网络的学习质量? 我的神经网络有6个输入神经元,1个隐藏层,我使用的是S形对称激活函数(tanh)。数据点范围会影响训练模型的方式。假设数据集中要素的值范围未规范化。然后,根据您的数据,您可能最终会在特征空间中为数据点使用拉长的椭圆,学习模型将很难学习数据点所在的流形(学习底层分

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

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

对于神经网络来说,数据是否规范化并不重要。 然而,训练方法的表现可能会有很大的不同。 简而言之:通常方法更喜欢具有较大值的变量。这可能会使培训方法偏离轨道

对于大多数神经网络训练方法来说,关键在于训练数据的所有维度都具有相同的域。如果所有变量都是角度,则不管它们是[0,1]还是[0,2*pi]或[0360],只要它们具有相同的域。但是,应避免使用一个变量表示角度[0,2*pi],另一个变量表示距离(mm),其中距离可以远大于200000mm

在这些情况下,算法可能会受到影响的两种情况:

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

(b) 梯度下降:如果步长受到限制,则会产生类似的效果

建议:所有变量应具有相同的域大小,无论是[0,1]还是[0,2*pi]或…都无所谓

此外:对于许多领域,“z分数归一化”效果非常好