机器学习误差与改进策略(二)
2018-10-11 本文已影响0人
躺在稻田里的小白菜
一. 如何判断过拟合与欠拟合
1. 根据训练集与验证集(测试集)的代价
d表示多项式的指数,d越大,模型越复杂。
- 欠拟合:模型复杂度不高时,若发生欠拟合,此时训练集与验证集的代价都维持很高的水平。
- 过拟合:模型复杂度很高时,若发生过拟合,此时训练集被拟合的很好,代价很低,而泛化能力很差,验证集代价很高。
2. 根据学习曲线来判断
注意此图的纵坐标是准确率,不是错误。
- 欠拟合曲线(图1)特点:
- 快速收敛,收敛边界的准确率很低。
- 训练集与验证集(测试集)准确率差距不明显。
- 无论样本规模怎么增加,准确率始终很低。
- 过拟合曲线(图2)特点:
- 训练集准确率很高,验证集(测试集)准确率很低。
- 两条曲线不断靠近,但是很难收敛。
- 两条曲线间的差距很明显,训练集的准确率高很多。
二. 正则化解决过拟合
机器学习中,如果参数过多,模型过于复杂,容易造成过拟合。为了避免过拟合,最常用的一种方法是使用使用正则化,例如 L1 和 L2 正则化。
1. L1正则化
L1正则化是权值的绝对值之和,其中J0是原始的损失函数,加号后面的一项是L1正则化项,α是正则化系数。
L1正则化项的特点:稀疏性
当我们在原始损失函数J0后添加L1正则化项时,相当于对J0做了一个约束(类似于拉格朗日乘子法)。令正则化项为L,此时我们的任务变成在L约束下求出J0取最小值的解。考虑二维的情况,即只有两个权值:
图中等值线是J0的等值线,黑色方形是L函数的图形。在图中,当J0等值线与L图形首次相交的地方就是最优解。上图中J0与LL在L的一个顶点处相交,这个顶点就是最优解,此时有一个权值是为0的。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。
2. L2正则化
L2 正则化公式也非常简单,直接在原来的损失函数基础上加上权重参数的平方和。
L2正则化通常会降低高次项的权重,只是为了降低过拟合,不具有稀疏性。
二维平面下L2正则化的函数图形是个圆,与方形相比,被磨去了棱角。因此J0与L相交时使得w1或w2等于零的机率小了许多,这就是为什么L2正则化不具有稀疏性的原因。