将多个数据集组合成一个模型的最佳方法

数据挖掘 神经网络 张量流 多标签分类
2022-03-05 18:35:54

我想制作一个可以检测许多不同标签的多标签图像分类模型。对于每个标签,我可以得到至少 5000 个正例和 5000 个负例。但是,我的问题是如何使用这种格式的数据来训练多标签图像分类器。部分挑战是,例如,我可以下载 10,000 张手的图像并知道它们是正面的例子,但如果我也想检测一只鞋子,我不知道这些手照片中有多少也可能有里面有一只鞋。我正在尝试以这种方式制作模型,因为我将拥有相当多的标签并且需要不断添加新标签。这样做的最佳方法是什么?

2个回答

您为什么不尝试多标签分类。您实际上可以通过在具有多个标签的图像的数据集上训练模型来训练您的模型来预测一张图像的多个标签,您在这里可能面临的唯一问题是去哪里从您那里获取数据实际上可以使用此数据集进行练习: https ://www.kaggle.com/c/planet-understanding-the-amazon-from-space/data 。

您拥有的另一个更好的选择是,正如您在问题中所说,您想在多个类上训练模型,您实际上可以使用 Imagenet 数据集,它包含 1000 个类和超过一百万个图像。注意:使用转移学习来构建您的模型并观看 fast.ai 第 1 部分 2019 课程的第 1、2、3 课,您将获得所有答案。杰里米霍华德是神!!!!

我同意 khwaja wisal 的观点:拥有多个二进制数据集应该足以训练多标签模型。

您可以在嘈杂的数据集上训练模型,但仍然可以得到一个不错的模型。您的数据集会很嘈杂,因为正如您指出的那样,某些图像可能包含多个标签,而您只会对其进行训练以检测您实际拥有的单个标签。

如果您不喜欢在嘈杂的数据集上进行训练的想法,您可以使用一些掩码损失:使用多标签模型来预测所有标签,但对于每个图像,只优化该图像的标签。

这意味着您的掩蔽损失类似于multilabel_loss(y_true, y_pred) * is_label_knownlabel_known 是一个张量,如果标签已知(正或负),则为 1,如果您不知道标签是否存在,则为 0