机器学习3 -- 误差来源(偏差bias和方差variance)

1 偏差和方差

机器学习模型误差主要来源于两部分,即偏差bias和方差variance。如下
在这里插入图片描述
偏差bias为所有样本点的平均值与真实值的差距,方差variance则代表了样本点分布的波动性。由右下角的图可知,误差同时来源于方差和偏差。

2 模型复杂度与误差关系

对不同复杂度的模型,如一次线性、三次模型、五次模型,对他们分别采样,如下
在这里插入图片描述
从上到下依次为一次、三次和五次模型,模型复杂度递增。可以发现

  1. 一次模型比较集中,方差小而偏差大。由此可见简单模型方差小,偏差大。这个也是make sense的,考虑极端情况,模型如果为常数,则不论样本输入怎么变化,输出永远为同一个常数,方差为0
  2. 五次模型输出杂乱,方差大而偏差小。由此可见复杂模型方差大,偏差小。这是因为复杂模型拟合能力强,它可以让样本点输出尽量和真实值保持一致,但无法保证输出的一致性。

总体结论就是,简单模型方差小但偏差大,复杂模型方差大但偏差小。简单模型拟合能力差,容易出现欠拟合。复杂模型拟合能力强,容易出现过拟合。我们通过对模型进行采样,计算其方差和偏差,观察二者哪个大,则可以知道当前模型是欠拟合还是过拟合,从而可以对模型复杂度进行调整。
在这里插入图片描述
上图横坐标为模型复杂度,逐步递增,纵坐标为误差。当模型复杂度逐步增加时,偏差bias减小,而方差variance增大。小模型容易欠拟合,而大模型容易过拟合。

3 误差优化方案

优化误差首先得搞清楚你的模型是偏差大还是方差大,也就是过拟合还是欠拟合。可以对模型输出进行采样,然后和真实值进行对比,从而知道误差主要来源于方差还是偏差。

欠拟合

如果误差主要来源于偏差bias,则表明模型欠拟合。此时模型拟合能力偏弱,增加更多的训练数据也没太大卵用。此时要做的事情是

  1. 增加模型复杂度,加深加宽,如增加模型层数、卷积输入输出通道数、BERT隐层大小等等
  2. 增加输入特征,如加入用户画像特征、行为轨迹特征等等。实操中,特征获取可能比较困难

过拟合

如果误差主要来源于方差variance,则表明模型过拟合。目前深度学习模型普遍特别复杂,容易出现过拟合。此时

  1. 增加训练数据,实操中可以利用数据增强来增加数据,并提升模型鲁棒性
  2. 正则化,让模型更加平滑,对模型复杂度进行惩罚。比如L1正则、L2正则等。L1正则更稀疏,不一定处处可导。L2正则更平滑,处处可导。实操中L2正则使用更多
  3. 增加模型随机性,提升鲁棒性。比如dropout

猜你喜欢

转载自blog.csdn.net/u013510838/article/details/108278303