YOLOv5选择二元交叉熵损失(BCE)而非多分类交叉熵损失(CE)作为分类损失,其核心原因与目标检测任务的特性和模型设计需求密切相关。以下从任务需求、数学原理、实现优化三个维度详细解析这一设计选择:
一、任务需求:目标检测的“多标签”特性
目标检测任务中,一个锚框(Anchor)可能同时覆盖多个物体或部分物体(尤其在密集场景中),且需要模型对每个锚框独立判断其所属类别。这导致两个关键特点:
- 多标签可能性:一个锚框可能对应多个潜在类别(如同时覆盖“行人”和“汽车”的边界)。
- 类别独立性:不同类别的存在性应独立判断(如“猫”和“狗”可能共存于同一区域)。
CE的局限性:
多分类交叉熵通过Softmax强制所有类别概率之和为1,隐含“类别互斥”假设。若锚框覆盖区域存在多个类别,Softmax会迫使模型在相似类别间竞争概率值(如“猫” vs “狗”),导致以下问题:
- 锚框的类别预测受无关类别干扰(如某区域明显是“猫”,但因存在“狗”类