同样的数据集,为什么yolov4,yolov5,yolox训练的效果差距这么大?
yolov4的loss:
yolov5的loss:
yolox的loss:
1.请问这是和什么有关呢,不是应该yolo越先进,效果应该越好吗?
2.loss值是越接近0越好吗?
你说的置信度是最终图片检测结果的置信度,还是训练的acc?
单单从loss图片没看出来有啥大问题,基本上都在在下降啊。yolo系列的loss是越接近0越好,但是并不是说yolov4的loss比yolov5低,v4效果就一定比v5好
其中:
网格共有KxK个,每个网格产生M个候选框anchor,每个anchor经过网络会得到相应的bounding box,最终形成KxKxM个bounding box,如果box内noobj,则只计算该box的置信loss。
1.回归loss会乘以一个(2-wxh)的比例系数,用来加大对小box的损失。
其中box_loss_scale=(2-wxh);object_mask其实是个置信度,如果有目标则为1,没有目标为0;对于wh_loss采用回归方法;而对于xy_loss,上述公式采用回归方法,xi和yi hat其实是取了sigmoid之后的值,而在keras版本中,采用了交叉熵,因为raw_pred是经过model的卷积输出,如果采用sigmoid+方差,容易梯度消失,收敛较慢,所以采用二值交叉熵binary_crossentropy更容易计算。
2.置信度loss损失函数采用交叉熵,分为两部分:obj和noobj,其中noobj的loss还增加了权重系数lambda,这是为了减少noobj计算部分的贡献权重。
3.分类loss损失函数采用交叉熵,当第i个网格的第j个anchor box负责某一个真实目标时,那么这个anchor box所产生的bounding box才会去计算分类损失函数。