版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuanzhe117/article/details/82595958
下面这张经典的图展示了欠拟合(第一个)与过拟合(第三个)。
欠拟合 |
模型在训练集上学习的不够好,经验误差大,称为欠拟合。模型训练完成后,用训练数据进行测试,如果错误率高,我们就很容易发现模型还是欠拟合的。
解决办法:
过拟合 |
当模型对训练集学习得太好的时候(学习数据集通性的时候,也学习了数据集上的特性,导致模型在新数据集上表现差,也就是泛化能力差),此时表现为经验误差很小,但泛化误差很大,这种情况称为过拟合。
解决办法:
正则化方法包括L0正则、L1正则和L2正则。
L0范数是指向量中非0的元素的个数。L1范数是指向量中各个元素绝对值之和,也叫“稀疏规则算子”(Lasso regularization)。两者都可以实现稀疏性。
L2范数是指向量各元素的平方和然后求平方根。可以使得W的每个元素都很小,都接近于0,但与L1范数不同,它不会让它等于0,而是接近于0。L2正则项起到使得参数w变小加剧的效果。
剪枝是决策树中一种控制过拟合的方法,预剪枝通过在训练过程中控制树深、叶子节点数、叶子节点中样本的个数等来控制树的复杂度。后剪枝则是在训练好树模型之后,采用交叉验证的方式进行剪枝以找到最优的树模型。
主要是用在神经网络中的,在神经网络的训练过程中我们会初始化一组较小的权值参数,此时模型的拟合能力较弱,通过迭代训练来提高模型的拟合能力,随着迭代次数的增大,部分的权值也会不断的增大。如果我们提前终止迭代可以有效的控制权值参数的大小,从而降低模型的复杂度。
上面的几种方法都是操作在一个模型上 ,通过改变模型的复杂度来控制过拟合。另一种可行的方法是结合多种模型来控制过拟合。
是机器学习中的集成方法,多个模型的组合可以弱化每个模型中的异常点的影响,保留模型之间的通性,弱化单个模型的特性。
是深度学习中最常用的控制过拟合的方法,主要用在全连接层处。在一定的概率上(通常设置为0.5,原因是此时随机生成的网络结构最多)隐式的去除网络中的神经元,但会导致网络的训练速度慢2、3倍,而且数据小的时候,Dropout的效果并不会太好。因此只会在大型网络上使用。