语文建设 官方网站,手机兼职快递录单员,台州做网站设计的公司,wordpress子页面不显示模型训练[训练集、验证集、过拟合、欠拟合]
在不断补充训练数据集的过程中#xff0c;发现纯粹增加数据集并不会使得模型效果单向地变好#xff0c;如果是多目标检测模型的话#xff0c;常会出现精度变低的现象本文想总结在模型训练时的一些注意事项#xff0c;比如训练集…模型训练[训练集、验证集、过拟合、欠拟合]
在不断补充训练数据集的过程中发现纯粹增加数据集并不会使得模型效果单向地变好如果是多目标检测模型的话常会出现精度变低的现象本文想总结在模型训练时的一些注意事项比如训练集与验证机测试集的数量分割占比模型如果出现过拟合或者欠拟合时该采取什么措施改善还有就是多目标检测时样本标签数量的不平衡性后边再有问题慢慢补充吧
1. 数据集分割
一般情况下我们会在模型训练前将数据集分为训练集验证集和测试集三部分
#-------各自作用------------
训练集用于训练模型找出最佳的w 和b 。
验证集用以确定模型超参数选出最优模型。
测试集仅用于对训练好的最优函数进行性能评估。训练集顾名思义用于模型来进行特征提取与分析训练然后验证集Val与测试集test的区别如下 我们将上述3个概念贯穿于机器学习的全过程从而加深理解
#--------------------训练过程-------------------------
1.确定模型的一组超参数
2.用训练集训练该模型找到使损失函数最小的最优函数。
3.在验证集上对最优函数的性能进行度量。
4.重复1、2、3步直到搜索完指定的超参数组合。
5.选择在验证集上误差最小的模型并合并训练集和验证集作为整体训练模型找到最优函数。
6.在测试集上对最优函数的泛化性能进行度量。在实际训练中这3个部分占比该是多少呢对训练结果的影响如何 测试集只用一次可以不用单独分割数据有没有均可。 如果数据集数量较少比如几百张或者几千张(数据场景比较复杂)需在保证在训练集足够的基础上尽量分配给验证集一些比重以便对调整合适的超参数。此时训练集验证机可以是[6:4]或者[7:3]等。 如果数据集达到万张或者几万张那两个比重可以[8:2]或者[9:1]来分 测试集可有可无验证集必须要有且数据划分应随机划分需要正验证集中的数据种类肯定要包含训练集中的数据种类或者场景变化情况 后续补充…
2. 过拟合与欠拟合
过拟合 是指学习时选择的模型所包含的参数过多以至于出现这一模型对已知数据预测的很好但对未知数据预测得很差的现象。这种情况下模型可能只是记住了训练集数据而不是学习到了数据特征。欠拟合 模型描述能力太弱以至于不能很好地学习到数据中的规律。产生欠拟合的原因通常是模型过于简单。
我们要知道机器学习的根本问题是解决优化和泛化的问题。
优化: 是指调节模型以在训练数据上得到最佳性能。泛化: 是指训练好的模型在前所未见的数据(测试集)上的性能好坏。
2.1 如何应对过拟合 最优方案 增加源头数据数量 数据增强 次优方案 调节模型允许存储的信息量或者对模型允许存储的信息加以约束该类方法也称为正则化。即 调节模型大小 约束模型权重即权重正则化在机器学习中一般使用 L2正则化 随机失活Dropout L2正则化 L2正则损失对于大数值的权值向量进行严厉惩罚鼓励更加分散的权重向量使模型倾向于使用所有输入特征做决策此时的模型泛化性能好 Dropout 随机失活 随机失活使得每次更新梯度时参与计算的网络参数减少了降低了模型容量所以能防止过拟合。
2.2 应对欠拟合 增加新特征可以考虑加入进特征组合、高次特征来增大假设空间。 添加多项式特征这个在机器学习算法里面用的很普遍例如将线性模型通过添加二次项或者三次项使模型泛化能力更强。 减少正则化参数正则化的目的是用来防止过拟合的但是模型出现了欠拟合则需要减少正则化参数。 使用非线性模型比如核SVM 、决策树、深度学习等模型 。 调整模型的容量(capacity)通俗地模型的容量是指其拟合各种函数的能力。 容量低的模型可能很难拟合训练集使用集成学习方法如Bagging ,将多个弱学习器Bagging。
3. 目标检测中的数据类别不均衡问题 在进行模型训练时不同需求下的数据集可能标注的标签类别数量不平衡 由于某些类别数量较少模型预测结果可能会偏向数量多的类别从而导致数量低的类别识别率低召回率低 改善方法 自造数据彩图时尽量保证类别数量差不多 程序优化重采样
参考
1.机器学习系列五——训练集、测试集、验证集与模型选择 2.深度学习相关概念过拟合与欠拟合