3

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

所有训练示例中每个输出神经元的平均输出。在哪里:

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某个训练集上保持不变。

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

4

1 回答 1

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_jj 处的正确输出在哪里)

现在您正在寻找与数值均值相同目的的计算便宜的数字(您可以将所有数字除以 N 以获得实际均值,但您为什么要打扰?)。RMS 如下所示:

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

无论您想要 RMS 还是平均值取决于您的问题,但通常情况下,这并不重要(具有较低 RMS 的集合无论如何都会倾向于具有较低的平均值,因此您主要是在进化相同的东西) .

请注意,Error这些ErrorRMS实际上并不是平均值或 RMS 值,但它们的排名相同,而且获得起来更便宜。

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

您应该拥有一个具有超过 1 个输出的神经网络的唯一原因是,输出只能相互关联地理解。否则,您应该训练N神经网络,而不是 1 个带N输出的神经网络。话虽如此,如果您不能在一个步骤中产生一个错误来描述网络的所有输出,也许您应该将其划分为多个网络?然后,您可以简单地在测试网络的样本上获取误差的 RMS 或直接平均值。

这有意义吗?

于 2013-10-21T07:29:02.923 回答