多标签图像分类:是否需要为每个标签组合提供训练数据?

Aar*_*nDT 5 machine-learning neural-network multilabel-classification conv-neural-network keras

我想使用keras训练CNN进行多标签图像分类任务.但是我不确定如何准备我的转换数据.更具体地说,我想知道我是否需要训练图像显示两个或更多标签的组合,或者是否足以在单个标签上训练网络,然后它将能够检测图像中的多个标签.

我认为我的问题变得更清楚了一个例子:

假设我正在使用dog vs cat分类数据集,我想建立一个能够将图像分类为狗或猫或在一个图像中看到两个动物的模型.在这种情况下,我是否需要使用显示猫,狗和图像的图像来训练模型,这些图像在一个图像中显示或者仅仅具有仅显示猫和狗的训练图像?

Mar*_*jko 2

好吧 - 在可能有多个类的情况下 - 你的问题从多类分类(将一个类分配给图像)变为多分类(将多个决策分配给图像)。例如,给定网络的示例输出应该是二维的,每个类都有单独的输出:

output = Dense(nb_of_classes, activation='sigmoid')(previous_layer)
model.compile(loss='binary_crossentropy`, ..)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的 - 您实际上是在训练两个单独的分类器,而不是一个。根据我的经验 - 尽管有两个类都存在的示例,但它应该可以正常工作 - 使培训更加高效。