Neural network (x,y)输出神经网络的归一化

Neural network (x,y)输出神经网络的归一化,neural-network,normalization,backpropagation,Neural Network,Normalization,Backpropagation,我构建了一个反向传播神经网络来从一个数据集学习,该数据集由7个连续输入和2个输出组成(x,y坐标)。我的实现选择是使用一个包含7个神经元的隐藏层,但我这样做的方式是,我可以尝试不同的隐藏层组合和不同数量的隐藏节点 误差测量是通常的均方误差,计算如下: MSE(x,y) = 1/N * sum((X - x)^2 + (Y - y)^2) 其中,X和Y是目标值,X和Y是预测值。我还需要计算一个精度度量,即每个点到目标点的平均欧氏距离,基本上与MSE相同,但是sum中的值是平方根的 输入范围都在区

我构建了一个反向传播神经网络来从一个数据集学习,该数据集由7个连续输入和2个输出组成(
x
y
坐标)。我的实现选择是使用一个包含7个神经元的隐藏层,但我这样做的方式是,我可以尝试不同的隐藏层组合和不同数量的隐藏节点

误差测量是通常的均方误差,计算如下:

MSE(x,y) = 1/N * sum((X - x)^2 + (Y - y)^2)
其中,
X
Y
是目标值,
X
Y
是预测值。我还需要计算一个精度度量,即每个点到目标点的平均欧氏距离,基本上与MSE相同,但是
sum
中的值是平方根的

输入范围都在区间[-2,+2]和一些异常值之间。 输出坐标具有完全不相关的分布(
x
为正态分布,
y
为均匀分布)。
x
范围很小(比如-1,平均值+1),而
y
范围变化较大(比如-10,平均值+10)

我得到的行为是,网络似乎很正确地预测了
y
输出,而
x
则“变平”到
y
。也就是说,
x
值越来越接近
y
值,网络无法正确预测
x

我最初的选择是将两个输入/输出作为一个整体缩放到通常的(0,1)间隔,但这并没有带来好的结果。因此,我选择了用z分数分别标准化每个特征,并在(0,1)间隔内缩放输出(我使用的是sigmoid激活函数,所以(0,1)看起来差不多正确)。但后来这种奇怪的行为出现了

所以我的问题是,你将如何规范这些输入/输出?有没有办法处理这些不相关的输出?我甚至想过使用两个独立的网络来预测一个输出,而放弃另一个输出,这是一个好的选择吗


你能给我指出一些讨论输出规范化的阅读材料吗?文献中讨论了很多关于输入标准化的内容,但似乎没有人关心输出。

你有没有对其进行标准化,因为这个问题是大约一年前提出的?事实证明,我根本不需要进行标准化(或者至少,即使没有标准化,网络也可以正常运行)。因为这是一个回归任务,所以我所要做的就是在输出层使用线性激活函数。我不知道这是否对你有什么帮助?我仍然需要使用最小/最大标准化对它进行标准化,看起来它运行正常,还需要进行更多的测试。我在输出中使用了一个线性激活函数,但是如果没有标准化的数据,它就不能很好地执行。不管怎样,从我所了解到的情况来看,当您在测试集上操作时,规范化输出可能会导致问题。假设测试集是盲的(即您只有输入,必须提供输出),那么您将如何规范化网络的结果?尽管您可以选择用于训练的最小/最大值,但这就像将从训练数据中获得的先验知识注入测试数据,这是不可取的。是的,这有点问题,但是如果网络正常工作,我不能告诉你太多。注意这个潜在的问题。嗯,谢谢,我会记住的