我正在使用经典的SIFT – BOW – SVM方法进行图像分类。我的分类器是使用1对所有(1vsAll)范式创建的。
假设我目前有100个类别。之后,我想添加新的类别,或者我想通过使用额外的训练集来改善某些特定类别的识别效果。
最好的方法是什么?当然,最好的方式是重新执行训练阶段的每一步骤。
但是,只使用与之前模型相同的词汇表来计算额外的(或修改的)类别是否有意义,这样可以避免重新计算新的词汇表并重新训练所有类别?
回答:
简而言之 – 不行。如果你添加新类别,它应该被添加到每个“旧”的分类器中,这样“一对所有”仍然有意义。如果你假设新类别会随着时间出现,考虑使用单类分类器,例如单类SVM。这样,一旦你获得特定类别的新样本,你只需重新训练特定的模型,或者向系统中添加一个全新的模型。
此外,对于大量类别,1对所有SVM的效果相当差,而单类方法通常要好得多。