Deep learning 使用在不同数据集上训练的cnn模型

Deep learning 使用在不同数据集上训练的cnn模型,deep-learning,conv-neural-network,Deep Learning,Conv Neural Network,我有3个不同的数据集,其中3个都是用相同的化学物质染色的血液涂片图像。血液涂片图像是采集血液的图像,包括血液中的红细胞、白细胞 第一个数据集包含两类:正常和血癌 第二个数据集包含两类:正常与血液感染 第三个数据集包含两类:正常与镰状细胞病 所以,我想做的是:当我输入一张血液涂片图像时,AI系统会告诉我它是:正常,还是血癌,还是血液感染,还是镰状细胞病(4类分类任务) 我该怎么办 我应该混合这3个数据集,只训练1个模型来检测4个类吗 或者我应该训练3种不同的模型并将它们结合起来?如果是,我应该使用

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

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

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

我该怎么办

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

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


更新:我搜索了一会儿。这项任务能否称为“学习而不遗忘?”

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

我认为这取决于数据

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

如果您负担得起,您可以训练一个四类模型,并将测试错误与一系列二进制分类进行比较。我知道你们已经有三种型号了。因此,培训另一个可能不会太贵


如果只有一个类可以出现,那么四个类的模型可能是最好的选择。如果事实上两个(或更多)类可以同时出现,那么一系列二元分类将是有意义的。

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

我明白,目前一次只能上一节课。然而,“混合4个数据集和只训练1个模型”是否有任何技术术语?不确定您的技术术语是什么意思。。。它只是一个有四个类而不是两个类的模型。在这种情况下,输出层的尺寸为4。培训etc基本相同(模型架构可能略有不同,但在其他方面没有大的变化)。还请注意,您可能会从使用预培训模型中获益,并在此基础上学习。这是一个基于预培训模型更新的Keras多类图像分类的示例:我搜索了一会儿。这项任务是否与“学习而不忘记”类似?我搜索了“拉宁而不忘记”,它是关于重新培训一名模特的。您可以通过初始化从零开始训练模型,也可以使用预训练模型。在任何情况下,您的解决方案都需要一个模型,最后一层是由4个单元和softmax激活功能组成的完整连接层。谢谢您的建议。您的混淆是什么意思?你指的是类之间的逻辑联系?我指的是混淆,不能用肉眼轻易识别类之间的差异。