目录
1. YOLOv5的三种损失函数
2. 交叉熵损失函数
1. YOLOv5的三种损失函数
损失函数是用来衡量模型预测值和真实值不一样的程度,极大程度上决定了模型的性能。
YOLOv5一共有三种损失函数:
- 分类损失cls_loss:计算锚框与对应的标定分类是否正确
- 定位损失box_loss:预测框与标定框之间的误差(GIoU)
- 置信度损失obj_loss:计算网络的置信度
总的损失函数=分类损失+定位损失+置信度损失
分类损失和定位损失使用二元交叉熵损失函数BCEWithLogitsLoss计算
置信度损失计算使用前文介绍过的IoU函数计算,IoU只解决两个物体重叠的情况,为了解决两物体重叠引入GIoU维持IoU尺寸的不变性,重叠时也能保持与IoU的强关联性:YOLOv5用TensorBoard可视化结果解读
2. 交叉熵损失函数
x表示样本,y标签,a表示预测的输出,n表示样本总量
本质上说和对数损失函数是一致的
同时YOLOv5采用sigmoid作为激活函数,解决了损失函数权重更新过慢的问题,具有“误差大的时候,权重更新快;误差小的时候,权重更新慢”的特点(本质上是解决输出层的学习率缓慢的问题,对于隐藏层不会有改善)。