我正在开发一个程序来研究神经网络,现在我了解将数据集分为 3 组(训练、验证和测试)的区别(我猜)。我的网络可能只有一个输出或多个输出,具体取决于数据集和问题。学习算法是反向传播。
所以,问题基本上是我对每个错误和计算它的方式感到困惑。
哪个是训练错误?如果我想使用 MSE 是 (desired - output)^2 吗?但是,如果我的网络有 2 个或更多输出,训练误差将是所有输出的总和,会发生什么?
那么,验证错误只是使用验证数据集计算输出并将获得的结果与期望的结果进行比较,这会给我一个错误,它的计算方式与训练错误相同吗?并有多个输出?
最后,不完全清楚,验证应该何时运行?我在某处读到它可能每 5 个 epoch 一次,但是,这有什么规则吗?
提前感谢时间!