将视觉上不同的对象分类为一个类

时间:2018-05-03 01:23:10

标签: machine-learning classification

我们正在建立一个神经网络来对象进行分类,并拥有1000个类的大型图像数据集。其中一个类是“香蕉”,它包含1000张香蕉图像。这些图像中的一些(约10%)是捣碎的香蕉,其在视觉上与该类中的其余图像非常不同。

如果我们想要将捣碎的香蕉和普通香蕉分类,我们是否应该将香蕉图像分成两个单独的类并单独训练,或者保持两个子集合并?

我试图了解视觉上不同的子类的存在如何影响对给定类的识别。

2 个答案:

答案 0 :(得分:1)

这里没有标准答案;如果它们的子类在特征空间中是不同的,那么您的网络可能很难对类进行泛化,在这种情况下,通过后处理将多个虚拟类折叠成单个类将是理想的解决方案。您还可以预先训练具有不同类的模型(以便构建区分它们的表示),然后弹出最终的网络层(分类器)并将其替换为折叠分类器,并使用初始标签。这将实现具有通常简单分类的区别表示。在任何情况下,我都会建议你构建子类特定的标签,并在使用原始类进行训练时检查每个子类的错误;通过这种方式,您将能够量化您获得的预测误差,并避免过度设计您的网络,以防它可以在没有更严格监督的情况下自行学习任务。

答案 1 :(得分:1)

这里的问题很简单。你需要你的神经网络来学习这两组图像。这意味着您需要反向传播合理的错误信息。如果你确实有关于捣碎香蕉的基本事实信息,那么反向传播肯定是有用的。它有助于第一层学习两组功能。

请注意,神经网络的优点在于您可以反向传播任何类型的错误向量。如果您的输出有3个节点banana, non-mashed banana, mashed banana,您基本上回避了问题中隐含的二进制选择。您可以在推理期间始终删除输出节点。