六、过拟合及正则化
1. 过拟合问题
在开始介绍这节课内容之前,我们先来看一个线性回归的例子。
左图我们发现,所用的假设函数是一条直线,所以无法很好拟合数据,这我们称之为欠拟合(高偏差),中图即是最理想的拟合曲线,而右图的曲线就显得十分扭曲,但它经过了所有的数据点,可我们最后还是不能用它去预测新的数据,这我们称之为过拟合(高方差),当然除了线性回归问题,逻辑回归同样可能会出现过拟合的现象。
过拟合(Overfitting)
这种问题,通常会出现在过量变量但数据过少的情况,J(θ)的值会接近于0,但却无法去预测新样本。
想要解决过拟合问题有下面两种方法:
减少变量的数量
可以人工的去选择一些可以删除的变量。
也可以用之后要讲到的算法模型,去自动筛选变量。
缺点:这种方法,可能会导致一些有用变量的丢失,失去了一些有效信息。
正则化(Regularization)
保留所有变量,但是减小量级(magnitude)或者参数θj的大小。
优点:这种方法可以很好地确保那些对y的预测有帮助的变量不会丢失。
2. 正则化
正则化(Regularization)
通过减小对结果没什么用的θ值使其值接近于零,从而弱化其对结果的影响,简化函数。
线性回归的正则化
其正则化的代价函数如下:
在代价函数中表示正则化的是上图的公式中带λ的式子,因为不知道哪个参数会对结果产生影响,所以就交给模型去判断该减小哪个θ值,所以选择都进行减小。其中λ是用来平衡正则化式子与其左边优化式子的关系,而将θ平方是为了防止正负号影响结果。但是如果λ值过大的话,可能会使所有参数都趋于0,那得出的曲线就接近于一条曲线了。
梯度下降
在线性回归中使用正则化时,如果用梯度算法,则其中对J(θ)求θ偏导的式子也会有一点改变,实际上就在θj公式后面加一个(λ/m)θj小式子。
我们通过将含θj的项合并,可以得到1-α(λ/m),而这个式子其实之比1小一点点,可能是0.99,这样将0.99×θj每次 就只会缩小θj一点点,后面的式子都跟之前所示一样。
正规方程
在正规方程中用正则化,只需在原来的公式中加上一个λ×一个矩阵即可。
用正则化有一个好处就是可以解决一些矩阵不可逆的问题,因为前面我们讲到,如果样本数量比特征数量还要大时(XTX)-1是不可逆的,但是如果用正则化的话,只要保证λ大于0,就可以保证其中逆矩阵的式子一定可逆。
逻辑回归的正则化
其正则化的代价函数如下:
其实与线性回归的正则化代价函数的相似之处,都在原有函数后加上一个正则化公式。
梯度下降
式子与线性回归的梯度下降很相似,表面上没什么区别,但还是那个原因,两者的假设函数不同。
高级优化函数
这里还是类似,同样是在公式后面加上了一个正则化的式子。