前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >吴恩达机器学习学习笔记05

吴恩达机器学习学习笔记05

作者头像
企鹅号小编
发布2018-02-11 14:52:26
8270
发布2018-02-11 14:52:26
举报
文章被收录于专栏:企鹅号快讯企鹅号快讯

建议阅读时间:5-8min

类型:机器学习基础教程

适应人群:大数据、人工智能

一、The problem of overfitting

What is overfitting?什么是过拟合?

我们依旧使用房价预测的例子,我们以房屋的Size作为自变量:

(1)我们可以做线性回归,但是我们可以看到这不是一个好的模型,随着Size上升,价格会越来越平缓。,所以这个模型并没有很好地拟合模型,我们把这个问题成为欠拟合(underfitting),专业术语称为高偏差(high bias)。

(2)第二个模型我们加了一个二次项,就可以拟合出上面的曲线

(3)另外一种极端情况是拟合了5个参数θ-θ4,这时候我们看到的曲线可能如上所示,貌似它已经很好地拟合了曲线,但是这条曲线是上下震荡的,在房价预测中也不是一个好的模型,而这个问题成为过拟合(overfitting),专业术语称为高方差(high variance)。

过拟合的定义:如果我们拟合一个高阶多项式,这个多项式能拟合几乎所有的训练数据,这就面临可能函数太过庞大的问题,变量太多,如果我们没有足够多的数据去约束这个变量过多的模型,那么就是过度拟合。这时候你的损失函数可能很接近零,但是模型的泛化能力很差。

在逻辑回归中也是一样的!

但是往往我们的实际问题都是有很多个特征组成的,而这些特征刚好看上去都很有用,我们的训练数据又比较少,那么这时候过拟合的现象就会产生。那么我们应该怎么去解决过拟合的问题?

1、减少选取的变量的数量

我们可以人工检查变量的数量,然后选取比较重要的特征进行保留,后面会介绍自动的选取算法。

但是缺点是你舍弃一部分特征变量你也舍弃了问题中的一些信息。

2、正则化

正则化我们会保留所有的特征、数量级或者参数的大小,其中每一个变量对预测都产生了一定的影响。

二、Cost Function

接下来我们要讨论一下正规化是如何进行运行的,而且我们还要写出正规化所需要使用的代价函数。

我们依旧以房价预测的例子为例,左边是用二次函数拟合的模型,可以看到模型这样的拟合效果非常好。但是当我们的特征比较多就会碰到右边的这种情形。

我们思考一下,下面是它的损失函数。如果我们在损失函数加上一个很大的项,比如1000θ32和1000θ42,然后我们要使损失函数趋于,这时候θ3和θ4就会趋近于,这时候我们的模型就会变成一个类似左边的函数,因为θ3和θ4趋于,非常的小。

这也是正规化的思路!

如果我们的参数中有比较小的,那么我们可以得到一个更简单的假设,就像上面的例子中的,我们通过在损失函数中加入一个对θ3和θ4的惩罚项,然后使函数的曲线更加光滑,这样就有助于防止出现过拟合的现象。

但是,上面的例子我们是很直观地感知到,让θ3和θ4趋近于,使函数趋近于二次多项式函数,这时的拟合效果更好,如果我们有很多个特征,这时候我们应该怎么去选择哪一个或者哪几个去缩小。

所以,这时我们在损失函数最后那里加多一项正规化项。我们收缩了每一个参数,,并且我们会θ1到θ100变小,但是我们规定不去惩罚θ.

其中,在正则惩罚项中的λ成为正规化参数,他要控制的是在两个不同目标中的平衡关系。第一个目标就是使我们的训练数据更好地拟合,第二个目标就是保持参数值较小,来避免过拟合。

如果我们的λ很大会发生什么事情呢?

如果λ很大,那么这就代表我们很大程度惩罚了θ1到θ4,这时候它们都接近于,这时候的模型就会是一条水平线。而这条水平线并没有很好的拟合效果,出现欠拟合的现象。它没有任何意义,只是相对非常光滑。所以我们在正则化的时候也应该注意一些问题。

三、Regularized linear regression

这是我们之前得到的正则化后的代价函数,λ是正则化参数,我们通过寻找合适的θ使得这个代价函数最小。

在之前我们都是用梯度下降算法来求θj,我们这里也是一样的:

1、先允许我们把θ的更新另外写出来,因为我们默认不对θ进行惩罚;

2、然后在θj的更新的式子最后加上我们正则化项进行求导之后的部分。

3、通过多项式合并,不难看出最终成为最下面的那个式子!

其中,α非常小,所以(1-α)非常接近0.99,所以只管来说它只是把参数缩小一点点。

数学来说,这就是正则化后的梯度下降。

在没有加入惩罚项的时候,我们的标准方程法的θ=(XTX)-1XTy。

加入惩罚项我们就需要在其中加入一个惩罚系数乘以一个对角矩阵,其中第一行的元素第一个要是,其他都初始化为1,因为我们默认不对θ进行惩罚。

另外还是要注意一个不可逆的问题,因为XTX不可逆或者奇异,Octave里面用pinv函数还是会给你一个数值解,但这个是伪逆的结果,最终不能得到一个很好的模型。

四、Regularized logistic regression

可以看到这是我们之前来说明过拟合概念的例子:利用高阶多项式进行拟合之后,决策边界可能会像蓝色的那一条,这时候的模型只是针对当前的数据集,所以在用于其他数据集的时候会产生过拟合现象。

而我们的解决方法是在代价函数后面加一个正规/正则项去惩罚我们的参数,使直线更接近去粉红色那条,提升模型泛化能力。

然后我们继续来推导它梯度下降的表达式,经过和线性回归一样的步骤,我们得到了好像和之前线性回归一样的正规化后的更新θ的式子,但是要注意,这里的假设函数已经发生了变化,这个和上一章将逻辑回归的时候是一样的,这时候的假设函数已经变成了sigmoid函数!

【Announcement】

由于下一章节是开始neural network的内容,个人对比了一下,感觉最新出的吴恩达教授的深度学习教程会相对全面,所以先转战deeplearning.ai,最后再回到机器学习这里看SVM和K-means等无监督学习的算法和其他一些要注意的问题。笔记依旧还会不定时更新,因为要考研,所以更的比较慢,望见谅。

本文来自企鹅号 - DetJamie媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - DetJamie媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档