我建立了一个反向传播神经网络来学习由7个连续输入和2个输出(x
,y
坐标)组成的数据集。我的实现选择是使用一个带有7个神经元的隐藏层,但我这样做是因为我可以尝试不同的隐藏层组合和可变数量的隐藏节点。</ p>
误差测量是通常的均方误差,计算如下:
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-score分别标准化每个特征,并在(0,1)间隔中缩放输出(我使用sigmoid激活函数,所以(0,1)似乎是正确的)。但随后出现了这种奇怪的行为。
所以我的问题是,您如何规范这些输入/输出?有没有办法处理这种不相关的输出?我甚至考虑过使用两个独立的网络来预测丢弃另一个的单个输出,这是一个不错的选择吗?
你能否指点我讨论输出规范化的一些内容?文献谈到了很多关于规范化输入的内容,但似乎没有人关心输出。