Cyb*_*ent 6 image classification machine-learning multilabel-classification keras
我很感激在思考这个过程中提供了一些帮助.我有一个分类器,可以成功地将图像分类成狗或猫,准确性很高.我有一个很好的数据集来训练分类器.到目前为止没问题.
我有大约20,000只狗和20,000只猫图像.
然而,当我试图展示其他图像,如汽车或建筑物或没有狗或猫的老虎时,我希望分类器的输出为"Niether".现在很明显,分类器试图将所有东西分类为狗或猫,这是不正确的.
问题1:
我怎样才能做到这一点?我是否需要拥有一组不包含狗或猫的图像,并在这些附加图像上训练分类器以将其他所有内容识别为"两者"?
在近似的高水平,我需要多少图片的非狗/猫类才能获得良好的准确度?自从非狗/猫图像领域如此庞大以来,大约会有50,000张图像吗?还是我需要更多图片?
问题2:
我可以使用Imagenet训练的VGG16 Keras模型作为初始层,而不是使用我自己的图像数据训练我自己的分类器,并将DOG/CAT/Neither分类器添加到顶部作为完全连接层?
非常感谢你的帮助.
问题2
我将首先采用“杀手”启发法。是的,使用现有的训练模型。只需将所有狗分类合并为 1 类,将猫分类为 2 类,将其他所有分类合并为 0 类。这几乎可以解决您的所有问题。
问题1
问题是你的初始模型已经被训练成世界上的一切(所有 40,000 张图像)要么是狗,要么是猫。是的,你必须训练第三组,除非你的训练方法是自限制算法,例如单类 SVM(每个分类运行一次)。即便如此,我预计你在排除山猫或狼时也会遇到一些麻烦。
考虑到输入空间的高维性,您需要大量“两者都不是”类的示例:这不是图像的数量,而是它们的位置只是猫的“边界”或狗。我对一个项目感兴趣,以确定如何以最少的额外输入来做到这一点。
简而言之,不要简单地从 ImageNet 类型的世界中抓取 50K 图像;选择那些能够为您的模型提供最佳区分度的对象:其他猫科动物和犬科动物示例、您在类似环境中找到的其他物体(茶几、野外啮齿动物等)。