在我的实验中,我试图训练一个神经网络来检测患者是否表现出症状A,B,C,D。我的数据由每位患者不同角度的照片以及他们是否患有症状A,B, C,D。
现在,pytoch,我正在使用MSELoss并将我的测试错误计算为正确的分类总数中的正确分类总数。我猜这太天真,甚至不合适。
测试错误计算的示例如下: 假设我们有2个病人,每个人都有两个图像。然后将有16种总分类(对于1号患者在照片1中是否具有症状A,B,C,D等,分类为1)。并且,如果模型正确地预测在照片1中患者1出现症状A,那么这将为正确分类的总数加1。
答案 0 :(得分:4)
我建议在多类多标签分类中使用binary-crossentropy
。对于多标签分类,这似乎违反直觉,但请记住,此处的目标是将每个输出标签视为一个独立的分布(或类)。
在pytorch
中,您可以使用torch.nn.BCELoss(weight=None, size_average=None, reduce=None, reduction='mean')
。这将创建一个衡量目标和输出之间的二进制交叉熵的标准。