损失函数

相关实现文件:py/lib/models/multi_part_loss.py

定义

为了有效训练YOLO模型,论文提供了一个Multi-Part Loss

  • \lambda_{coord} = 5
  • \lambda_{noobj} = 0.5

对于真值边界框而言,其置信度为1,对应的类别概率为\hat{p_{i}}(c) = 1

计算

对于预测边界框而言,其分为以下几种情况:

  • 所在网格存在目标
    • 其与真值边界框的IoU最大(情况一)
    • 其与真值边界框的IoU没有最大(情况二)
  • 所在网格不存在目标(情况三)

对于网格内不存在目标,或者不属于IoU最大的预测边界框而言,仅需要计算置信度损失。其实现如下:

loss = \lambda_{noobj}\sum_{i=0}^{S^{2}}\sum_{j=0}^{B} 1_{ij}^{noobj} (C_{i} - \hat{C_{i}})^{2}

而对于情况一而言,其需要计算边界框坐标损失、置信度损失和分类概率损失