YOLO调参后结果波动大的一个可能原因

先说结论,warmup_bias_lr是一个被忽略的重要超参数,尤其是在没有预训练权重的情况下,应该随着学习率的调整进行对应的缩放(采用正式训练时学习率的10倍为佳,在默认设置学习率0.01的SGD时和默认值0.1对应)。

使用Gold YOLOn进行训练,SGD1e-2的学习率运行良好,但是自己改进后的网络SGD有概率触发梯度爆炸,为了对比直接改用AdamW和1e-3的学习率,此时验证集结果出现大幅波动(如MAP从0.16跳变到1e-7量级再回到0.09之类的,P和R也有30%上下的波动)

先后尝试调节学习率,学习率的衰减方式和幅度,权重衰减和warmup轮数均效果有限。而且初始学习率下降到3e-4时进一步恶化,无法冲出局部最优导致结果极差。(其实这里已经有提醒了)

直到后面看到这个图,发现warmup对网络的收敛性能影响比想象中的大很多,于是细致地过了一遍超参数,发现原始网络的warmup_bias_lr为0.1,在使用AdamW的情况下这显然高到无法接受,于是果断改0.01,验证集波动的情况有了较大的缓解(如下图),至少是稳步上升的情况。学习率换3e-4的时候也可以正常收敛。

最后分析这种现象出现的原因,可能warmup时过大的偏置学习率给了AdamW巨大的惯性,因而导致warmup不仅没有稳定骨干网络的参数,反而起了副作用。采用1e-3这种偏大的学习率时,尚且能够部分抵消这巨大的惯性,因而表现出剧烈的震荡,当改用3e-4这种偏小的学习率时,甚至无法短时间内抵消这份惯性,随着学习率的衰减,自然而然便陷入了局部最优。

事实证明,对于Gold-YOLO这种带attention结构的网络,warmup的重要性可能高过之前几个全卷积的,如果其学习率不随着正常的学习率对应更改,可能会带来较大的副作用。

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用YOLO(You Only Look Once)进行驾驶员状态识别实验时,实验结果分析可以包括以下几个方面: 1. 准确率和召回率:计算实验中的准确率和召回率。准确率表示被正确分类的驾驶员状态所占的比例,召回率表示正确分类的驾驶员状态所占的比例。可以通过与标注数据进行比较来计算这些指标。 2. 混淆矩阵:绘制混淆矩阵来分析模型在不同驾驶员状态下的分类情况。混淆矩阵可以展示模型的真正例(True Positive)、假正例(False Positive)、真反例(True Negative)和假反例(False Negative)的数量。 3. 平均精度均值(mAP):对于多类别的驾驶员状态识别任务,可以计算平均精度均值(mAP)。mAP是各个类别精度均值的平均值,用于评估模型对于不同类别的识别能力。 4. 模型性能比较:可以将YOLO与其他目标检测模型进行比较,例如Faster R-CNN、SSD等。通过比较模型在准确率、召回率、mAP等指标上的表现,评估YOLO在驾驶员状态识别上的优势和劣势。 5. 错误分析:分析模型在预测中的错误情况。观察模型容易混淆的类别,分析造成错误的原因,例如数据不平衡、训练集质量等。根据错误分析结果,可以进一步优化模型或采取后续措施。 6. 实际应用评估:将模型应用到实际驾驶场景中,评估其在实际环境中的性能和鲁棒性。例如,在不同光照条件下、不同驾驶场景下的表现如何。 以上是对YOLO识别驾驶员状态实验结果进行分析的一些建议。具体分析方法和指标选择可以根据实验设计和任务需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值