估计神经网络的平均误差超平面

时间:2013-02-27 13:46:24

标签: neural-network

我有一个神经网络,我需要估计平均超平面,它表示所有训练样例的平均误差。训练样例一次出现。例如,如果我有一个变量函数,那么我需要找到表示函数平均值的行。对于我的应用程序,不需要精确平均值,启发式也可以。

所有训练样例中每个输出神经元的平均输出。其中:

t_j' = sum_i_1_to_N (t_i_j)/N            

训练样例的每个输出神经元的平均输出(上面计算)与每个示例的实际目标输出之间的平方差的总和:

Avg Error = 1/2 * sum_i_1_to_N (sum_j_1_C (t_j' - t_i_j))^2)

这是一种启发式方法,但我想知道如何保持某个训练集的Avg Error不变。

这种方式有效吗?有没有更好的方法来找到固定训练集的神经网络的平均值(种类)?

1 个答案:

答案 0 :(得分:0)

如果不了解您的问题,我会拒绝。

  

平均误差= 1/2 * sum_i_1_to_N(sum_j_1_C(t_j' - t_i_j))^ 2)

以上看起来更像是标准差而不是平均值。这不会告诉你太多,请考虑一下:

Error = sum_i_1_to_N (sum_j_1_C ( ABS(c_j' - t_i_j) ))

(其中c_j是j)

的正确输出

现在你正在寻找计算上便宜的数字,这个数字与数字均值的目的相同(你可以将所有数字除以N得到实际均值,但你为什么要打扰?)。 RMS看起来像这样:

ErrorRMS = sum_i_1_to_N (sum_j_1_C ( ABS(e_j' - t_i_j)^2 ))

您是否需要RMS或平均值将取决于您的问题,但通常情况下,它并不重要(具有较低RMS的设置倾向无论如何都具有较低的平均值,所以你主要是演变同样的事情。)

请注意ErrorErrorRMS这些实际上不是平均值或RMS值,但它们的排名相同,而且获得的价格也更便宜。

除此之外,假设您有一个具有多个输出的神经网络,在多个步骤上操作(从而产生您正在讨论的错误超平面),那么我首先建议将问题结构略有不同。

你应该拥有一个输出超过1的神经网络的唯一原因是输出只能被理解为相互连接。否则你应该训练N神经网络,而不是1个带有N输出的神经网络。话虽如此,如果你不能产生一个错误来描述所有网络的输出,那么你应该把它分成多个网络吗?然后,您可以简单地在测试网络的样本上获取RMS或直接平均误差。

这有意义吗?