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