吴恩达《机器学习》学习笔记六——过拟合与正则化
- 一、 过拟合问题
- 1.线性回归过拟合问题
- 2.逻辑回归过拟合问题
- 3.过拟合的解决
- 二、 正则化后的代价函数
- 1.正则化思想
- 2.实际使用的正则化
- 三、 正则化的线性回归
- 1.梯度下降的情况
- 2.正规方程的情况
- 四、 正则化的逻辑回归
- 1.梯度下降的情况
- 2.高级优化算法的情况
课程链接:https://www.bilibili.com/video/BV164411b7dx?from=search&seid=5329376196520099118
上一个笔记介绍了第二个机器学习算法——逻辑回归,主要用于解决分类问题,应用非常广泛。这一次我们学习一下过拟合和正则化的概念,并将正则化技术运用到已学的线性回归和逻辑回归模型上,来减小过拟合的问题。
一、 过拟合问题
在学习正则化的概念之前先看一下过拟合的问题。线性回归和逻辑回归在实际应用时,都可能因为假设函数选择的原因或是数据集的原因导致过拟合。
1.线性回归过拟合问题
对于房价预测问题,我们之前是使用左边这个图的假设函数去拟合数据,可以看出,不论怎么优化参数,直线也无法很好的拟合所有数据,这时就被称为是欠拟合的情况,存在高偏差,这是因为假设函数过于简单,无法拟合较为复杂的数据。
再看中间的图,在原来的假设函数上加上了一个平方项,优化后的结果则很好的拟合了数据集,此时是最佳状态。
最后看右边的图,假设函数包含了一些较高次幂的项,使得假设函数过于复杂,虽然能拟合已有的所有数据,但是很显然这个曲线有波动,房子的面积越大甚至价格出现了越低的情况,这显然是不对的,而且若此时添加进来一些新的数据,很可能就不能很好的拟合,这样的问题被称为过拟合,存在高方差,假设函数过于复杂,过度学习了已有数据的特征,它的定义如下所示:
这里可能涉及到训练误差和泛化误差的概念,训练误差是指训练数据集在假设函数上产生的误差,泛化误差是指模型训练好之后,给定新的数据在假设函数上产生的误差,用以估计模型应用到到新样本的能力。那么欠拟合的情况,训练和泛化误差都高,而过拟合的情况,训练误差很低,泛化误差则很高。
2.逻辑回归过拟合问题
参考线性回归的例子,下面逻辑回归的三种情况分别为欠拟合、拟合良好和过拟合的情况。
3.过拟合的解决
产生过拟合的原因较多,其中很常见的一个是数据样本的数量比特征的数量还要少。所以有如下两种常见的解决过拟合的办法:
一个是在数据集有限的情况下,减少特征的数量来减少过拟合问题,可以人工手动选择减少哪些特征,也可以使用一些算法来衡量减少哪些特征。这种方法的缺点就是需要丢弃一些特征,这就有可能丢弃了一些信息。
二是如果不希望丢弃信息或者是不知道如何选择特征,想保留所有特征时,可以使用正则化方法,正则化方法利用正则化项来减小相关参数的大小,减轻它对预测的贡献,相应的就减轻了过拟合问题。
二、 正则化后的代价函数
1.正则化思想
首先来看一个线性回归的例子:
左边是良好拟合,右边是过拟合。要解决过拟合的问题,我们希望θ_3,θ_4两个参数非常小,当它们很小的时候,对预测结果的贡献就非常小,甚至可以忽略,从而解决过拟合问题。所以我们在原来的代价函数上进行了修改,变成如下所示:
因为这是一个最小化的式子,加上有关θ_3,θ_4的两项,因为其系数较大,所以这两个参数在最小化表达式的过程中必须变得较小,才能使得总体很小,所以这样可以达到使得θ_3,θ_4很小接近于0的目的,从而减轻过拟合。那么这两项就可以被称为正则化项。
还是使用原来过拟合的假设函数,当代价函数加上正则化项之后优化,结果就会从下面的蓝色曲线变成紫红色曲线,从而与良好拟合的情况接近,算是达到了解决过拟合的问题:
正则化思想可以简单归结如下:使参数值非常小,从而几乎消除它的贡献,使得假设函数更简单,这样就更不可能过拟合。
2.实际使用的正则化
但是在大多数问题中,你不能像刚刚那样看出哪些参数应该被惩罚,哪些应该保留,尤其是参数量非常多的时候,如下所示:
所以索性将所有的参数都减小,这样使得所有的参数都不会很大,也就使得假设函数不会过于复杂,达到解决过拟合的效果。
而在实际应用中,也基本都是使用将所有参数都加到代价函数中去的方法,如下所示,使用前后的变化,就是蓝色曲线变成了紫红色曲线:
其中的λ被称为正则化系数,它是平衡假设函数的关键。如果它被设置的太大的话,如下所示:
会使得所有的参数都接近于0,那么假设函数接近于是一个常数函数,过于简单,变成了欠拟合的情况。所以为了正则化的效果,需要合理地选择正则化参数的大小,过大会使得模型过于简单,过小又达不到解决过拟合的要求。
三、 正则化的线性回归
根据上面对正则化的介绍,线性回归加上正则化之后的代价函数如下所示:
1.梯度下降的情况
相应的,它对应的梯度下降表达式如下图所示:
因为正则化的惩罚项中不包含θ_0,所以它的更新与原来不加正则化时一样。
2.正规方程的情况
正规方程的方法是将代价函数的导数设置为0,从而求出的表达式,也就将变成如下所示:
四、 正则化的逻辑回归
逻辑回归加上正则化之后的代价函数如下图所示:
1.梯度下降的情况
对代价函数求导后更新参数,发现形式与线性回归几乎一模一样,但是需要注意的是,假设函数h(x)的表达式是完全不同的,所以和线性回归的梯度下降表达式内容也是完全不同的。
2.高级优化算法的情况
略