机器学习 – 在训练数据中引入偏见

我有一组用于训练的数据。当我将这些数据输入到我的神经网络中时,网络在这组数据上的错误率为3%。

我知道这组数据在某些方面存在过度表示的情况——例如,第5类的数据样本大约是其他类别的十分之一。

我的作业指出,通过对训练数据进行偏见处理——即删除或复制某些数据——可以提高检测率。然而,我认为神经网络应该能够自动处理这种情况,而我所做的任何修改都只会大幅降低网络的准确性。

我特别困惑,因为我判断网络是否有所改进的方法是用原始的训练数据集进行测试。我认为,使用修改后的训练数据集进行训练总是会在原始训练数据集上得到更差的检测率,但作业似乎表明情况并非如此。

由于这是作业,我希望得到一些建议而不是直接的答案。


回答:

我认为,使用修改后的训练数据集进行训练总是会在原始训练数据集上得到更差的检测率,但作业似乎表明情况并非如此。

简而言之,这是不正确的。训练集是帮助你最小化经验风险(训练集上的错误)的工具。另一方面,你试图最小化泛化风险(测试集上的错误),而在这里,添加一些额外的偏见(以多种形式)实际上可能有帮助,因为它可以防止过拟合。特别是,当处理类别严重不平衡的情况时,最小化经验风险可能会导致完全忽略少数类别(特别是在基于SGD的方法中,单次更新可能不足以摆脱较大类别的更强吸引力),因此,以某种方式引入偏见可能会改善整体分类效果。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注