图像分类:数千个类别的数据严重不平衡

Ton*_*hen 6 classification deep-learning tensorflow

我有一个由大约 5000 个类别的图像组成的数据集,但每个类别的图像数量从 20 到 2000 个不等,这是相当不平衡的。此外,图像数量远远不足以从头开始训练模型。我决定对预训练模型进行微调,例如 Inception 模型。

但我不确定如何处理不平衡的数据。有几种可能的方法:

  1. 过采样:对少数类别进行过采样。但即使采用积极的图像增强技术,我们也可能无法解决过度拟合的问题。
    另外,如何从如此多类别的不平衡数据集中生成平衡批次?您对 TensorFlow 的这种管道机制有什么想法吗?
  2. SMOTE:我认为它对于图像等高维信号不是那么有效。
  3. 在每批中重视交叉熵损失。这对于单个批次可能有用,但无法处理整体不平衡。

对此有什么想法吗?任何反馈将不胜感激。

Mit*_*eat 1

从预先训练的 ImageNet 层开始,添加您自己的最终层(根据需要使用适当的卷积、丢弃和展平层)。冻结除最后几个 ImageNet 层之外的所有层,然后在数据集上进行训练。

对于不平衡数据(以及一般的小数据集),使用数据增强来创建更多训练图像。Keras 内置了此功能:使用很少的数据构建强大的图像分类模型