我有一组用于训练的数据。当我将这些数据输入到我的神经网络中时,网络在这组数据上的错误率为3%。
我知道这组数据在某些方面存在过度表示的情况——例如,第5类的数据样本大约是其他类别的十分之一。
我的作业指出,通过对训练数据进行偏见处理——即删除或复制某些数据——可以提高检测率。然而,我认为神经网络应该能够自动处理这种情况,而我所做的任何修改都只会大幅降低网络的准确性。
我特别困惑,因为我判断网络是否有所改进的方法是用原始的训练数据集进行测试。我认为,使用修改后的训练数据集进行训练总是会在原始训练数据集上得到更差的检测率,但作业似乎表明情况并非如此。
由于这是作业,我希望得到一些建议而不是直接的答案。
回答:
我认为,使用修改后的训练数据集进行训练总是会在原始训练数据集上得到更差的检测率,但作业似乎表明情况并非如此。
简而言之,这是不正确的。训练集是帮助你最小化经验风险(训练集上的错误)的工具。另一方面,你试图最小化泛化风险(测试集上的错误),而在这里,添加一些额外的偏见(以多种形式)实际上可能有帮助,因为它可以防止过拟合。特别是,当处理类别严重不平衡的情况时,最小化经验风险可能会导致完全忽略少数类别(特别是在基于SGD的方法中,单次更新可能不足以摆脱较大类别的更强吸引力),因此,以某种方式引入偏见可能会改善整体分类效果。