仅 1900 个样本的 10 类图像分类问题的推荐机器学习算法

Posted

技术标签:

【中文标题】仅 1900 个样本的 10 类图像分类问题的推荐机器学习算法【英文标题】:Recommended machine learning algorithms for a 10-class image classification problem with only 1900 samples 【发布时间】:2019-06-27 19:07:04 【问题描述】:

我正在尝试为涉及 10 个类和仅 1900 个样本的图像分类问题确定正确的方法。图像(1288 x 964 分辨率)是工业零件,每个零件由 10 个类别之一表示;图像类别在图像中存在的序列号以及其他细微特征方面存在本质上的不同。我考虑过使用 CNN,但我想知道由于数据集的大小,是否不建议这样做,即数据集是否太小了?否则,我考虑使用 KNN 或 SVM 算法,我认为由于数据较少,它们可能会更好地工作,但需要一些专家指导。谢谢。

【问题讨论】:

尽管您的训练数据集较少,但特征集非常丰富(1288 x 964 像素强度值)。我相信,多个算法对多个评估指标的比较结果将是您确定最有效算法的最佳方式。单个算法并不总是可以正常工作。我相信比较分析将是一个很好的方法。 在不了解更多分类和相同数据集的情况下,这个问题无法真正回答。类的区别有多大?您预期的图像有多干净?分类错误有什么影响?是否会有人/物介入以纠正错误分类的项目? 【参考方案1】:

您可以使用预训练的特征提取器(例如,keras 中的标准 inceptionV3)。因为它已经在其他数据上进行过训练,所以只有最后一层应该根据您的特定需求进行重新训练,每个类 100 张图像应该足以做到这一点

【讨论】:

非常感谢,那么您是否建议将这种方法与 CNN 一起使用,而不是使用更经典的 ML 算法(例如 kNN)? 是的,我将从 inceptionV3 CNN 开始

以上是关于仅 1900 个样本的 10 类图像分类问题的推荐机器学习算法的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中使用神经网络进行分类:获取属于第i类的元素的概率

SVM 分类器没有保存在“.xml”中?

图像分类迁移学习需要负样本吗?

水果图像分类器(Python)

OpenCV 迭代随机森林训练

SkLearn SVM - 如何获得按概率排序的多个预测?