我正在使用神经网络解决图像分类问题。在训练数据集中,90% 的样本属于所有类别的 10%,而 10% 的样本属于其他 90% 的类别。因此,一个示例并非均匀分布在所有类别中。如果我们假设这个分布反映了现实世界的分布,我是否需要在训练之前过滤我的数据集,以便每个类别都有相似数量的样本?
数据倾斜在分类问题中是否重要?
人工智能
神经网络
图像识别
数据预处理
不平衡数据集
2021-10-18 01:56:02
2个回答
是的。数据倾斜是人工智能应用程序中最大的问题之一。正如您正确指出的那样,现实世界的分布是有偏差的。进行随机抽样会导致抽样不均匀的一个主要问题(就像您的情况一样)。更糟糕的是,所有样本都可能属于一个类别,而其他类别甚至可能无法被您的分类器识别。这称为类不平衡问题。
有很多方法可以缓解这个问题。这里很少提到它们。我给大家总结一下:
- 基于采样的缓解(当您尝试处理倾斜数据时)
- 基于成本函数的缓解(当您尝试改进分类器时,以防无法避免倾斜数据)
基于抽样的缓解可以通过对少数类进行过采样或从多数类进行欠采样或同时使用两者来完成。
另一种更公平的方法是进行分层抽样。如果 A 类占总人口的 1/6,B 类占 2/6,C 类占总人口的 3/6,那么,您应该从 A 类中的对象中随机抽取 1/6 的样本,2/6 从B 类和 C 类的 3/6。这样所有样本都可以以正确的比例代表总体,并且不会遗漏任何类。
如果这没有帮助(例如,您的数据集很小并且采样没有意义)并且数据偏斜太多),则可以修改成本函数以制作更明智的分类器。为错误分类和/或正确分类保留不同的成本。错误分类可能会受到更高的惩罚。这可以帮助使用倾斜的数据找到更好的分类器。
确实。NN 可以学习你教给他们的数据。如果你教他们有偏见,网络就会有偏见。正如您所提到的,一种解决方案是减少您拥有的数据。但是,这不是最好的方法,因为您将丢失宝贵的数据。我建议尝试对剩余数据集进行数据扩充,以增加缺失的数据类型样本并获得相似的数字,以获得最佳、均匀分布的准确性。
其它你可能感兴趣的问题