Machine learning 神经网络数据归一化

Machine learning 神经网络数据归一化,machine-learning,neural-network,normalization,Machine Learning,Neural Network,Normalization,我目前正在训练一个带有tanh激活函数的神经网络(基本反向传播,没有重量衰减、动量或任何其他改进)来映射任意函数。训练数据在区间(-1,1)内 我的培训方法如下: 将数据分为两部分(培训和验证数据) 将整个训练数据输入网络(更新权重) 输入验证数据(不更新权重)并计算所有验证条目的MSE 重复(从2开始),直到t-1处的验证MSE几乎等于t处的MSE 我尝试使用 f(x)=(x-mean)/std_deviation 但验证数据的MSE并未低于约1.49。没有标准化过程,它达到0.005。是否

我目前正在训练一个带有tanh激活函数的神经网络(基本反向传播,没有重量衰减、动量或任何其他改进)来映射任意函数。训练数据在区间(-1,1)内

我的培训方法如下:

  • 将数据分为两部分(培训和验证数据)
  • 将整个训练数据输入网络(更新权重)
  • 输入验证数据(不更新权重)并计算所有验证条目的MSE
  • 重复(从2开始),直到t-1处的验证MSE几乎等于t处的MSE
  • 我尝试使用

    f(x)=(x-mean)/std_deviation
    

    但验证数据的MSE并未低于约1.49。没有标准化过程,它达到0.005。是否有人对此有解释,或对改进我的培训程序和数据规范化有什么建议?

    有几个问题:您有多少输入/功能?当您进行规格化时,您是针对所有特征一起进行规格化还是单独进行规格化?就像在中一样,你找到每个特征的平均值,然后减去每个样本的平均值,或者减去每个样本中所有特征的平均值。我正在试验特征计数和输入,上面的例子是4个输入,3个隐藏单位和一个输出。整个样本约为900个。600用于培训,300用于验证。通过计算整个样本的标准偏差和平均值进行归一化。事实上,您的第二个选项:)可能会有帮助:输入和目标是训练数据的子集。我通过定义n个元素的序列来训练网络,从索引0开始。我将子集从0定位到n-1,并使用n作为目标。之后,我继续进行n到n+n-1等等。您是否对特征进行了规范化?还是样品?你们是否也规范化了因变量(输出)?我规范化了整个样本,所以样本是明智的。不,我没有规范化输出,而是规范化目标/期望值,因为它们是示例的一部分。我应该在计算MSE之前对输出进行标准化吗?有几个问题:您有多少输入/功能?当您进行规格化时,您是针对所有特征一起进行规格化还是单独进行规格化?就像在中一样,你找到每个特征的平均值,然后减去每个样本的平均值,或者减去每个样本中所有特征的平均值。我正在试验特征计数和输入,上面的例子是4个输入,3个隐藏单位和一个输出。整个样本约为900个。600用于培训,300用于验证。通过计算整个样本的标准偏差和平均值进行归一化。事实上,您的第二个选项:)可能会有帮助:输入和目标是训练数据的子集。我通过定义n个元素的序列来训练网络,从索引0开始。我将子集从0定位到n-1,并使用n作为目标。之后,我继续进行n到n+n-1等等。您是否对特征进行了规范化?还是样品?你们是否也规范化了因变量(输出)?我规范化了整个样本,所以样本是明智的。不,我没有规范化输出,而是规范化目标/期望值,因为它们是示例的一部分。我应该在计算MSE之前对输出进行标准化吗?