gpt4 book ai didi

c# - 多输出神经网络中的训练误差和验证误差

转载 作者:行者123 更新时间:2023-11-30 14:56:42 25 4
gpt4 key购买 nike

我正在开发一个研究神经网络的程序,现在我明白了将数据集分成 3 组(训练、验证和测试)的区别(我猜)。我的网络可能只有一个输出或多个输出,具体取决于数据集和问题。学习算法是反向传播。

所以,问题基本上是我对每个错误及其计算方式感到困惑。

哪个是训练误差?如果我想使用 MSE 是 (desired - output)^2 ?但是,如果我的网络有 2 个或更多输出,训练误差将是所有输出的总和,会发生什么情况?

然后,validation error只是用validation数据集计算输出,然后将得到的结果和期望的结果进行比较,这样会报错,是不是和training error中的计算方式一样?并有多个输出?

最后,不完全清楚,验证应该在什么时候运行?我在某处读到它可能每 5 个纪元一次,但是,这有什么规则吗?

提前致谢!

最佳答案

对于多个输出神经元,要计算训练误差,在每个时期/迭代中,您取每个输出值,得到与该神经元目标值的差值。平方,对其他输出神经元做同样的事情,然后得到平均值。例如,有两个输出神经元,

均方误差 = (|op1 - targ1|^2 + |op2 - targ2|^2 )/2

训练、验证和测试错误的计算方式相同。不同之处在于它们的运行时间和使用方式。
通常在每个训练时期检查完整的验证集。也许为了加快计算速度,您可以每 5 次运行一次。
验证测试/检查的结果不用于更新权重,仅用于决定何时退出训练。它用于确定网络是否对数据进行了泛化,并且没有过度拟合。

检查本题第一个答案中的伪代码
whats is the difference between train, validation and test set, in neural networks?

关于c# - 多输出神经网络中的训练误差和验证误差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com