machine-learning - 多标签图像分类: is it necessary to have training data for each combination of labels?

标签 machine-learning neural-network keras conv-neural-network multilabel-classification

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

我认为通过示例我的问题会变得更清楚:

假设我正在使用狗与猫分类数据集,并且我想构建一个模型,能够将图像分类为狗或猫,或者在一张图像中同时看到这两种动物。在这种情况下,我是否需要使用显示猫、狗的图像以及在一张图像中同时显示这两种图像的图像来训练模型,还是仅使用仅显示猫和狗的训练图像就足够了?

最佳答案

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

output = Dense(nb_of_classes, activation='sigmoid')(previous_layer)
model.compile(loss='binary_crossentropy`, ..)

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

关于machine-learning - 多标签图像分类: is it necessary to have training data for each combination of labels?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48367277/

相关文章:

tensorflow - TensorFlow 库未编译为使用 AVX - AVX2

Python|Keras : ValueError: Error when checking target: expected conv2d_3 to have 4 dimensions, 但得到了形状为 (1006, 5) 的数组

python - Keras - 如何获得非规范化的 logits 而不是概率

python - 使用 Keras 进行 LSTM 预测

r - 如何更改 R 中的 t-sne 距离?

machine-learning - 什么是神经网络的序列到序列学习

python-3.x - 导入错误: No module named keras.预处理

python - Keras:在新实验中重复使用经过训练的权重

machine-learning - Keras 文本预处理 - 将 Tokenizer 对象保存到文件以进行评分

machine-learning - 如何为火灾探测系统创建机器学习模型?