对每个类别使用不同数量的训练图像进行图像分类

数据挖掘 机器学习 神经网络 深度学习 训练
2022-02-25 02:18:04

我正在尝试用 4 个不同的类训练神经网络进行图像分类:

  1. 汽车(22k 训练示例)
  2. 构建(8k 训练示例)
  3. 行人(5k 训练示例)
  4. 树(1k 个训练示例)

问题在于训练图像的数量偏向于一/二类。

我想知道是否有一种方法可以根据每类训练示例的数量来训练神经网络?

我是否必须将每个类的训练示例数限制为所有类的最小数量?

2个回答

没有不平衡的不同类别的数据并不重要。重要的是你的数据应该有一个真实的分布。您的训练数据的分布应该与您的测试环境相同。正如您在此处所读到的,您的数据应该非常适合将要使用的任务。因此,如果您的样本分布是真实的,就不会有问题。考虑一下,对于不平衡的数据集,我们应该使用适当的评估指标,例如F1分数。

最后,如果这是你的数据的真实分布,我强烈建议你不要改变真实分布,即使你想增加你的数据。你不应该改变不同类别的相对比例。

有时可能是一个类比其他类更常见。通常,这确实值得考虑。我猜您所描述的情况并非如此(即,人们稍后想要对生产中的图像进行分类是相当随意的),所以让我们忽略这种情况(尽管它可能会影响测试集的性能,具体取决于关于测试集中最常见的内容)。不过,一般来说,您会尝试一些策略(例如,不进行过采样,是否通过数据增强进行一定程度的过采样)并在实际测试集上测试它们的性能。

绝对不要丢弃任何图像。通常我们很难在数据增强中创建逼真的图像 - 在这里你已经有了它们!因此,一种更具吸引力的方法是使用数据生成器从每个类中均匀(或以最有意义的任何比例)采样,以创建批量训练数据(通过一些数据增强,例如轻微旋转、颜色/饱和度的变化ETC。)。