bias and variance trade off
bias代表模型预测值和数据间的差距,代表模型的误差或精度
variance表示模型在不同数据间bias的差距,代表了模型的泛性的好坏
机器学习模型都存在bias和variance的trade off问题,两者不能兼得,即降低bias的同时会增加variance,反之亦然。
一般我们希望能在两者间获得一个平衡点,作为最终的模型,这需要一些技巧来做到。
最简单的方法是把数据集分为训练集和验证集,查看模型在两者上的效果。如果验证集的误差比训练集大,则认为模型过拟合了,需要降低variance,降低模型的复杂度或增加额外的数据。如果训练集的误差已经很大了,则bias过大,需要降低bias,增加模型的复杂度。更深层的原因是,bias可能会由多种原因引起,数据的噪声,验证集采样误差等等。对于数据的噪声误差,无法避免,可以通过对噪声的分布假设加入正则项来代表噪声的先验信息,使模型学习噪声以外的信息。这种方法能成功的原因是,在收集数据集时完全没有采样误差的话,数据的噪声应该是满足正态分布的,aka高斯分布,它的变量是二次的,所以引入的正则是二次的。但是又是也会使用一范数的正则项,表示噪声是拉普拉斯分布,其形式上是与高斯分布相近的,变量是以一次的绝对值的形式传入,使用它的好处是解的稀疏性,正则项的等值线更容易在坐标轴上与二次误差线相交,导致很多权重为零,使模型的可解释性更强,使复杂的多项式变短。
更加复杂一点的技巧可以用k折交叉验证,它主要解决了在分数据集的过程中引入了采样误差,导致训练集或测试集的分布偏离真实分布过多。对于有限的数据,分布不可避免的会与无穷的数据分布不同,为了尽可能的利用有限的数据来获得没有受到人为干扰的信息,用k折交叉验证来减少损失。将数据分成k分,每份轮流充当验证集,求的误差的平均值来作为模型最终的表现。