在训练神经网络的整个过程中,数据集的验证误差能否高于测试误差?
Can the validation error of a dataset be higher than the test error during the whole process of training a neural network?
我正在使用 pylearn2 库训练卷积神经网络,在所有 ephocs 期间,我的验证错误始终高于测试错误。可能吗?如果有,是在什么情况下?
训练集是一组输入网络的图像,在另一端计算误差,然后根据这些误差调整网络参数。
验证集是一组输入网络的图像,计算误差但不调整网络参数。
基本上,您使用验证来查看网络在未针对其进行训练的图像上的表现如何。
在这种情况下,在大多数情况下,valid_y_misclass
的错误率应该高于 train_y_miscalss
。
有关图像集的讨论,请参阅 here。
编辑:使用 pylearn2 符号的示例
训练集的大小:700
个例子;有效集的大小:300
个例子
经过一些训练(比如 5 个 epoch)后,网络在训练集中 700
个示例中确定了 650
个,在有效集中 300
个示例中确定了 200
个。
结果,5个epoch后:
train_y_misclass = (700 - 650) / 700 = 0.07142857142
valid_y_misclass = (300 - 200) / 300 = 0.33333333333
valid_y_misclass
> train_y_misclass
这是意料之中的事情。
将评论移至答案;修改我之前的答案似乎是错误的
完整的数据集可能没有正确打乱,因此测试集中的示例可能更容易分类。
使用在训练/有效/测试子集中重新分配的示例再次进行实验将显示是否是这种情况。
我正在使用 pylearn2 库训练卷积神经网络,在所有 ephocs 期间,我的验证错误始终高于测试错误。可能吗?如果有,是在什么情况下?
训练集是一组输入网络的图像,在另一端计算误差,然后根据这些误差调整网络参数。 验证集是一组输入网络的图像,计算误差但不调整网络参数。
基本上,您使用验证来查看网络在未针对其进行训练的图像上的表现如何。
在这种情况下,在大多数情况下,valid_y_misclass
的错误率应该高于 train_y_miscalss
。
有关图像集的讨论,请参阅 here。
编辑:使用 pylearn2 符号的示例
训练集的大小:700
个例子;有效集的大小:300
个例子
经过一些训练(比如 5 个 epoch)后,网络在训练集中 700
个示例中确定了 650
个,在有效集中 300
个示例中确定了 200
个。
结果,5个epoch后:
train_y_misclass = (700 - 650) / 700 = 0.07142857142
valid_y_misclass = (300 - 200) / 300 = 0.33333333333
valid_y_misclass
> train_y_misclass
这是意料之中的事情。
将评论移至答案;修改我之前的答案似乎是错误的
完整的数据集可能没有正确打乱,因此测试集中的示例可能更容易分类。
使用在训练/有效/测试子集中重新分配的示例再次进行实验将显示是否是这种情况。