吴恩达(Andrew Ng)《机器学习》课程笔记(3)第3周——正则化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zaishuiyifangxym/article/details/82110649

目录

七、正则化(Regularization)

7.1 过拟合问题(The Problem of Overfitting)

7.2 代价函数(Cost Function)

7.3 正则化线性回归(Regularized Linear Regression)

1 梯度下降法

2 正规方程法

7.4 正则化的逻辑回归(Regularized Logistic Regression)


七、正则化(Regularization)

7.1 过拟合问题(The Problem of Overfitting)

如果我们有非常多的特征,通过学习得到的模型可能非常好的适应训练集(代价函数几乎为0),但不能很好地对新的数据的进行预测。

(1)下图是一个回归问题的例子

扫描二维码关注公众号,回复: 2900585 查看本文章

以房屋价格为例:

图(a) 回归模型是一个“欠拟合”(under-fitting)模型,不能很好地适应训练集,更别提对新的数据进行预测。

图(c) 回归模型是一个“过拟合”(overfitting)模型,由于过于强调拟合训练数据,而丢失了算法的本质,在预测新的数据时,其不能够很好地预测。并且从客观角度出发,房屋价格会随着房屋尺寸大小增大而增大,应该是一个整体递增的趋势。

图(b) 回归模型就刚刚好,能很好的适应训练集,并且能反映变化趋势。

 

(2)下图是一个分类的例子

图(a) 分类模型是一个“欠拟合”(under-fitting)模型;

图(c) 分类模型是一个“过拟合”(overfitting)模型;

图(b) 分类模型刚刚好。

过拟合(Overfitting)通常指当模型中的特征太多时,模型对训练集数据能够很好的拟合(此时代价函数J(θ)接近于0),然而当模型泛化(generalize)到新的数据时,模型的预测表现很差。

 

那么问题来了,如果我们发现了过拟合问题,我应该怎么办?

过拟合(Overfitting)的解决方案

(1)减少特征数量

人工选择重要特征,丢弃不必要的特征;

利用算法进行选择(PCA算法等)。

(2)正则化(Regularization)

           保持特征的数量不变,但是减少参数的数量级或者大小。这种方法对于有许多特征,并且每种特征对于结果的贡献都比较小时,非常有效。

 

7.2 代价函数(Cost Function)

           上图是前面过拟合的例子,可以看出,正式那些高次项()导致了过拟合,所以只要将高次项的系数接近于0,那么就能够很好地拟合了。

            所以我们要做的就是在一定程度上减小参数θ的值,这就是正则化的基本思想。我们要修改代价函数,其中使得设置惩罚(penalize)。修改后的代价函数如下:

            对于上面的例子,只要足够小,就可以近似二次函数,和上图左图类似。如下图所示,蓝色的曲线是过拟合,粉红色的曲线就是修正后的结果。

但是,上面的代价函数仅仅针对上面的例子,其实在真正的计算中,我们并不知道,惩罚什么参数合适,也不知道什么样的参数才是最佳。

所以针对一般情况,我们加入惩罚项,修改代价函数如下:

注意:惩罚项从j=1开始,因为第0个特征是全为1向量,不需要惩罚。

其中,λ为称为正则化参数(Regularization Parameter) 。

值得注意的是:正则化参数λ过大,会把所有的参数都最小化,导致模型变成,如下图所示,这样使得模型为欠拟合。

所以取合适的正则化参数λ的值,才能更好地应用正则化,使得数据正确的进行拟合。

 

7.3 正则化线性回归(Regularized Linear Regression)

线性回归中,我们提到两种方法,梯度下降法和正规方程法。下面将一次介绍正则化后使用梯度下降法和正规方程法。

1 梯度下降法

正则化线性回归的代价函数为:

下图是对于没有正则化,使用梯度下降法的得到的参数

那么正则化后,梯度下降法表达式如下图所示:

对上面算法中的 j=1,2,3,…,n时更新的式子调整得到:

可以看出,正则化线性回归的梯度下降法的变化在于,每次都在原有算法更新规则的基础上,令参数θ值减少了一个额外的值。

同样,也可以利用正规方程来求解正规化线性回归模型。

2 正规方程法

最终求解得到参数θ值如下图所示:

 

7.4 正则化的逻辑回归(Regularized Logistic Regression)

对于逻辑回归,我们也修改了代价函数,其代价如下:

 

要最小化代价函数,使用梯度下降法得到:

             注意:看上去和线性回归类似,其实这里的 与线性回归中不同,所以与线性回归不同。另外,在使用梯度下降法前,特征缩放(归一化)是非常重要的。

 

参考资料

[1] Andrew Ng Coursera 机器学习 第三周 PPT

[2] https://blog.csdn.net/mydear_11000/article/details/50865094

[3] https://www.cnblogs.com/python27/p/MachineLearningWeek03.html

猜你喜欢

转载自blog.csdn.net/zaishuiyifangxym/article/details/82110649