机器学习中,寻找偏差与方差平衡是机器学习中的根本。
一般的,针对机器学习而言,数据集在模型训练中会被分为训练集(training data)、验证集(validation data)、测试集(test data)。其中,测试集是在模型训练好后,对该模型的客观评价,测试集数据一定不要参与训练。这里探讨的主要是偏差与方差的关系,测试集就不过多的探讨。
模型的偏差=偏差+方差+不可消除的偏差(对于给定的模型,该误差是无法消除的误差)。
调参的本质就在于偏差与方差之间的平衡。
1.高偏差
如图2所示,最左边的图像的模型是一条直线,对于数据的分类“较差”(欠拟合),通俗的讲,我们可以认为该模型具有较高的偏差。最右边的图像是一条高阶曲线,很“精确”的区分了两类数据,但是实际上泛化能力却很差(过拟合),那么我们就认为该模型是高方差。简单的讲,高偏差会带来模型欠拟合问题,而高方差由于对未知数据太过敏感,一般是过拟合问题。从这方面我们可以看出,机器学习中模型的训练、调参的根本就是为了找到偏差、方差的平衡。
下面从模型数据集的误差来探讨这个问题 :
首先我们假设最优误差或者贝叶斯误差接近与0(一会会说为啥有这个假设了)
1.高方差
trainning data error:1%
val data error:11%
在训练集 error低,但是在验证集上出现较高的error,就是我们所谓的过拟合。一般情况下,过拟合对应着高方差。
2.高偏差、低方差
trainning data error:15%
val data error:16%
欠拟合的模型,在训练集和验证集上都有较高的error,但是两者的error接近。
3.高偏差,高方差
trainning data error:15%
val data error:30%
该情况下,在训练集和验证集上都有较高的error,且两者的error差距也比较大。
4.低偏差、低方差
trainning data error:0.5%
val data error:1%
低偏差,低方差,就是我们做模型梦寐以求的情况,如果你得到这样的模型,那么恭喜你,你接近成功了。
问题:如果我们假设的最优误差或贝叶斯误差不接近与0,而是接近与15%呢?
那么,在2这种情况下就不是高偏差了,而是低偏差,低方差。
总结:
1.训练误差、验证误差都接近最优误差的情况:低偏差、低方差。
2.训练误差接近最优误差,验证误差离最优误差较远:高方差(过拟合)
3.训练误差离最优误差较远:高偏差(欠拟合)
4.训练误差离最优误差较远,而且验证误差离训练误差也较远:高偏差、高方差
PS:以上纯属自己的个人理解。难免会有不太准确的地方,欢迎各位指正,共同学习,进步。