损失函数¶
相关实现文件: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}
而对于情况一而言,其需要计算边界框坐标损失、置信度损失和分类概率损失