【问题标题】:Using cnn models trained on different datasets使用在不同数据集上训练的 cnn 模型
【发布时间】:2019-10-12 11:00:27
【问题描述】:

我有 3 个不同的数据集,其中 3 个都是用相同化学物质染色的血涂片图像。血液涂片图像是捕获您的血液的图像,包括内部的红细胞、白细胞。

第一个数据集包含 2 个类别:正常与血癌 第二个数据集包含 2 个类别:正常与血液感染 第三个数据集包含 2 个类别:正常与镰状细胞病

所以,我想做的是:当我输入血涂片图像时,AI 系统会告诉我是:正常,还是血癌或血液感染或镰状细胞病(4 类分类任务)

我该怎么办?

我应该混合这 3 个数据集并只训练 1 个模型来检测 4 个类别吗?

或者我应该训练 3 个不同的模型并将它们组合起来?如果是,我应该用什么方法来组合?

更新:我搜索了一段时间。这个任务可以叫“学而不忘”吗?

【问题讨论】:

    标签: deep-learning conv-neural-network


    【解决方案1】:

    这是一个多类分类问题。您可以只训练一个模型,最后一层是 4 个单元(即输出维度)和 softmax 激活函数的全连接(密集)层。

    【讨论】:

    • 更新:我搜索了一段时间。这个任务能不能类似于“学而不忘”?
    • 我搜索了“Larning without forgetting”,它是关于重新训练模型的。您可以通过一些初始化从零开始训练模型,也可以使用预训练的模型。在任何情况下,您的解决方案都需要一个模型,其最后一层是 4 个单元的全连接层和 softmax 激活函数。
    • 感谢您的推荐
    【解决方案2】:

    正如@Peter 所说,它完全依赖于数据。如果 4 个类别的图像,即正常、血癌、血液感染、镰状细胞病,肉眼很容易区分,并且所有类别之间没有混淆范围,那么您应该选择 1 个给出概率的模型在所有 4 个类中(如@maxi marufo 所述)。如果类之间存在混淆,并且图像无法用肉眼区分,或者类之间存在很多混淆范围,那么您应该使用 3 种不同的模型,但您将需要。假设 p1(normal) 和 p1(c1)、p2(normal) 和 p2(c2)、p3(normal) 和 p3(c3),您只需从所有 3 个模型中获得预测概率。现在您可以平均(p1(normal),p2(normal),p3(normal)) 并为 p(normal), p1(c1), p2(c2), p3(c3) 使用 softmax。在您可以尝试的多种方法中,以上可能是其中一种。

    【讨论】:

    • 混淆是什么意思?你的意思是类之间的逻辑联系?
    • 我的意思是混淆,不能用肉眼轻易识别类之间的差异。
    【解决方案3】:

    我认为这取决于数据。

    您可以使用三种不同的模型并对每张图像进行三个二元预测。因此,对于每个 x 与正常值,您都会获得投票(概率)。如果二元分类是准确的,这应该会产生好的结果。但是在这种情况下,您会得到累积的错误分类或错误。

    如果您负担得起,您可以训练一个四类模型并将测试错误与一系列二元分类进行比较。我了解到您已经拥有三个模型。所以训练另一个可能不会太贵。

    如果只能出现其中一个类,则可以采用四类模型。如果实际上两个(或更多)类可以同时出现,那么一系列二元分类将是有意义的。

    【讨论】:

    • 我明白了,目前一次只能上一堂课。但是,“混合 4 个数据集并仅训练 1 个模型”是否有任何技术术语?
    • 不确定你的技术术语是什么意思......它只是一个有四个而不是两个类的模型。在这种情况下,输出层的维度为 4。训练等几乎相同(模型架构可能略有不同,但没有大的变化)。
    • 另请注意,您可能会从使用预训练模型中获益并在此基础上进行学习。
    • 这是一个基于预训练模型的 Keras 多类图像分类示例datascience.stackexchange.com/questions/52276/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多