深度学习模型训练之偏差与⽅差
此篇介绍了使⽤TensorFlow进⾏机器学习的基本流程,此篇介绍了在设计神经⽹络的时候怎么确定各层矩阵的维度(矩阵的⾏数与列数),接下来就可以开始训练模型了,在训练模型的过程中,怎么衡量模型的好坏呢?通常⽤模型与真实之间的误差来表⽰,误差由偏差和⽅差两部分组成。
Bias(偏差)
模型在样本上的输出与真实值之间的误差,即模型本⾝的精准度,反应出算法的拟合能⼒。
Variance(⽅差)
模型每⼀次输出结果与模型输出期望之间的误差,即模型的稳定性,反应出预测的波动情况。
偏差与⽅差的关系
偏差与⽅差之间按照⾼低,可以组合成四种关系,如下图所⽰
上图中偏离红⾊靶⼼的蓝点越多、越远,表⽰模型越差。
1、低偏差低⽅差
表⽰模型既准确⼜稳定,效果最好,但是现实中这种情形很少遇见。
2、低偏差⾼⽅差
表⽰模型准确但是稳定性差,对验证数据&测试数据的拟合能⼒差,即是模型的泛化能⼒差,产⽣了过拟合(Overfitting)。
3、⾼偏差低⽅差
表⽰模型的准确度差,对数据的拟合能⼒弱,产⽣了⽋拟合(Underfitting)。
4、⾼偏差⾼⽅差
表⽰模型既不准确⼜不稳定。
过拟合与⽋拟合
由上⾯的分析可知,⾼⽅差往往预⽰着过拟合,⾼偏差则是⽋拟合。
避免⽋拟合(拟合太差)
1、增加训练样本数据
2、设计更复杂的神经⽹络模型(加深、加宽等)
3、增加迭代次数
4、更好的优化函数
5、调整超参数值
避免过拟合(拟合过度,泛化太差)
1、设计更简单的神经⽹络模型
2、增加训练样本数据
3、正则化。在损失函数后⾯添加L2正则项
4、使⽤dropout。dropout的作⽤是随机地使得⽹络中的部分神经元失效,效果上类似将模型变得更简单。正则化的回归分析可以避免
5、调整超参数值
6、尝试其他模型
7、提前结束训练(early stopping)。即是提前结束优化损失函数。
简单⼩结
在实际的模型训练中,通常可以按下⾯的来操作
贝叶斯(最优)误差:理论上的最⼩误差值(通常⽐⼈类误差⼩)
可避免偏差:训练误差与贝叶斯误差之间的差值
⽅差:验证集误差与训练误差的差值
当可避免偏差⼤于⽅差时,发⽣⽋拟合。
当⽅差⼤于可避免偏差时,发⽣过拟合。
在训练模型时对照以上描述,有助于定位问题,采取对应的措施调整模型,更快训练出最适合的模型。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。