@Auto: lyyyyy_16
@Date: 06/25/2024 17:05
@Version: 1.0
本文仅做作者个人学习记录和总结所用,不作为任何价值发行。
当下个人总结:
最根本的调优方式是数据集的质量筛选,拥有一组好的数据集,我们的模型学习的更深刻识别效果也更优;其次呢,是一些适当的训练参数,epchos、batch_size等参数;
一、调优方向总结
提高模型的识别效果,大致可以从以下几点出发:
-
更多的数据:
- 收集更多的训练数据,尤其是覆盖各种场景和条件的数据,以提高模型的泛化能力。
-
数据清理:
- 清理和预处理数据,确保数据质量,去除异常或错误标注的样本。
-
调整输入数据:
- 调整输入图像的尺寸、亮度、对比度等,以确保模型能够适应不同的图像条件。
-
调整网络架构:
- 尝试更深或更宽的网络架构,或者使用先进的模型版本,以提高模型的表达能力。
-
迁移学习:
- 使用在大规模数据集上预训练的模型进行迁移学习,可以加速收敛并提高性能。
-
集成学习:
- 考虑使用集成学习方法,将多个模型的预测进行组合,以提高整体的准确性。
-
调整损失函数:
- 根据任务需求选择适当的损失函数,或者调整损失函数的权重,以更好地优化模型。
-
超参数调整:
- 仔细调整超参数,包括学习率、批量大小等,以获得更好的训练效果。
-
模型解释和调试:
- 使用工具和技术进行模型解释和调试,了解模型在不同样本上的表现,并根据需要进行调整。
-
定期评估和更新:
- 定期评估模型性能,监控模型在实际环境中的表现,并及时更新模型以适应新的数据和场景。
记住,优化模型是一个迭代的过程,需要不断尝试和调整。根据具体任务和数据情况,选择适合的方法来提高模型的识别效果。
二、调优方式:
数据集
质量、数量、类别平均
在切分数据集,开始正式训练之前,可以考虑加入一些背景图,当前这个背景图通俗理解指的是没有目标类别的图片加入到训练集中。比如我要检测猫狗,除了含猫狗的数据样本之外,再加入一些不含猫狗的图片;一版背景图片数量的比例是10:1(训练集:背景图);
训练参数
预训练模型的选择 s、m、l、x等
数据增强
aibumentations
loss回归方式
Giou Ciou Diou Eiou VFloss等
超参数
hyp
合适的特征学习方式
Baceone
优化器
随机梯度下降是最简单的优化器,它采用了简单的梯度下降法,只更新每一步的梯度,但是它的收敛速度会受到学习率的影响。
优点: 简单性,在优化算法中没有太多的参数需要调整,通过少量的计算量就可以获得比较好的结果。
缺点: 在某些极端情况下容易受到局部最小值的影响,也容易出现收敛的问题。
SGDR指的是Stochastic Gradient Descent with Warm Restarts(带有热重启的随机梯度下降)。它是一种优化器调度策略,旨在帮助模型在训练过程中更好地收敛,避免陷入局部最优解。
优点:
因为使用了学习率衰减和周期性重启技术,从而在训练结束前使模型更加充分地探索数据的不同部分, 改善了训练的泛化性能。
SGDR具有周期性重启的机制,因此有可能使优化过程跳出局部最优解。
GDR使用周期性重启技术,可以使模型更快地收敛,从而缩短训练时间。
缺点:
SGDR的性能取决于学习率的初始值、最小值、重启周期等超参数的选择,需要仔细地调整这些超参数才能取得最佳效果。
SGDR的性能优化取决于数据分布和模型的复杂度等因素,对于某些问题可能无法带来显著的性能提升。
Adam是改进的SGD,它加入了更新的动量和自适应的学习率,可以帮助更快地收敛。
优点:
它融合了Momentum优化方法和RMSProp优化方法,可以帮助优化算法提高精度。
它还可以自动调整学习率,因此不需要太多参数调整。
缺点: 它需要消耗更多的内存,而且可能会出现收敛问题。
AdamW是Adam的变体,用来处理大型数据集,它以一定的比率来缩减模型参数的梯度,从而减少计算量,提高训练速度。
优点:
它可以自动调整学习率,而不需要太多参数调整,降低了冗余性。
它也可以自动调整权重衰减系数,使模型更加稳定,避免过拟合。
缺点: 学习率容易受到网络噪声的影响,从而影响优化过程。
数据处理方式
色彩空间 缩放比例等
三、业界难点部分
增加小目标的识别:
1.增大模型网络参数img-size,例如:640改成1280
更改举例:
更改img-size参数,调为1280,相对应的letterbox函数中的new_shape(图片输入范围)参数要改成1280
原理:输入图片的尺寸增大,让模型检测的范围扩大