gka*_*ann 3 c# backpropagation mse neural-network
我正在开发一个用于研究神经网络的程序,到目前为止,我已经了解将数据集分为3组(训练,验证和测试)的区别(我想)。我的网络可能只有一个输出或多个输出,具体取决于数据集和问题。学习算法是反向传播。
因此,问题基本上是让我对每个错误及其计算方法感到困惑。
哪个训练错误?如果我想使用MSE是(期望的输出)^ 2吗?但是,如果我的网络有2个或更多输出,训练错误将是所有输出的总和,那会发生什么?
然后,验证错误只是使用验证数据集来计算输出,并将获得的结果与所需结果进行比较,这会给我带来错误,它的计算方法与训练错误中的计算方法相同吗?并有多个输出?
最后,不清楚的是,验证何时开始运行?我在某处读到它可能每5个周期出现一次,但是,对此有任何规定吗?
提前感谢时间!
对于多个输出神经元,要计算训练误差,请在每个时期/迭代中获取每个输出值,并获得与该神经元目标值的差。将其平方,对其他输出神经元执行相同的操作,然后获得均值。例如,有两个输出神经元
MSE =(| op1-targ1 | ^ 2 + | op2-targ2 | ^ 2)/ 2
训练,验证和测试错误的计算方法相同。区别在于它们何时运行以及如何使用。
通常在每个训练时期检查完整的验证集。也许为了加快计算速度,您可以每5
次运行一次。验证测试/检查的结果不会用于更新权重,而只是用来决定何时退出训练。它用于确定网络是否对数据进行了泛化,而不是过拟合。
在该问题的第一个答案中检查伪代码
,在神经网络中训练,验证和测试集之间有什么区别?
| 归档时间: |
|
| 查看次数: |
3113 次 |
| 最近记录: |