博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
吴恩达《机器学习》课程笔记——第八章:正则化
阅读量:4340 次
发布时间:2019-06-07

本文共 1846 字,大约阅读时间需要 6 分钟。

  ※※※※※※※※    ※※※※※※※※  


8.1 过拟合问题

我们首先来解释一下什么叫欠拟合和过拟合。

左边的图:该模型是一个线性模型,不能很好地拟合出训练集,有较大的偏差,这就是欠拟合;ps:当然,对于数据集较为简单的情况,我们也可以采取取对数等预处理方式,从而使得线性模型能较好的拟合出数据,但不太常用。

中间的图:增加了一个特征?之后,该模型可以较好的拟合出训练集;

右边的模型:增加过多的特征?,虽然模型非常好的拟合了,但是由于过于强调去拟合训练集的数据,丢失了算法的本质:预测新数据。当我们拿该模型去预测其他的测试集数据时,效果会较差,存在高方差问题,这就是过拟合。

除了回归问题,分类问题中也存在这样的情况:(从左到右依次为欠拟合、拟合恰当、过拟合)

过拟合问题出现的根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。

因此,解决过拟合问题的方式有:

1、降低特征维度:丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如 PCA);

2、正则化: 保留所有的特征,但是减少这些特征的大小(白话说叫让多余的特征没有存在感)。

3、增加训练数据:使用较大的训练数据也可以减少过拟合问题,但是一般收集数据集比较麻烦。

 


8.2 代价函数

在上面的回归问题中,出现过拟合问题的模型为:ℎ?(?) = ?0 + ?1?1 + ?2?22 + ?3?33 + ?4?44  。从前面的三个例子中我们知道,正是因为高阶项导致了过拟合的产生,如果我们能使这些高阶项的系数(如?3、?4)变为0的话,那么就可以较好的拟合了。

因此,一定程度上减小这些参数 ? 的值,就是正则化的基本方法。因此我们将所有的特征带入惩罚过程,并让代价函数的最优化程序来决定惩罚的程度。

修改后的代价函数:

其中,? 称为正则化系数。注意:j 是从1开始的,我们不对 ?0 进行惩罚。

增加正则化项可以使 ? 减小的原因在于:优化过程中,为了使代价函数尽可能的小,在? 的值较大的情况下,所有的  ? 都得在一定程度上减小。

正则化后的模型与原模型对比如下:

 

如果 ? 取得过大,那么所有的参数都最小化了,使得模型变成了 ℎ?(?) = ?0 ,变成了欠拟合。所以对于正则化,我们需要选取一个合理的  ? 。


8.3 线性回归的正则化

对于线性回归问题,我们之前介绍过两种学习算法:梯度下降和正规方程。接下来介绍将正则化加入到两种学习算法中的细节。

1、梯度下降

因为未对?0 进行正则化,因此梯度下降算法被分开处理(?0 为一部分,其他的?为一部分):

整理第二个式子:

对于未增加正则化项的式子:

可以看出:正则化线性回归的梯度下降,其变化主要在于:每次在原有的更新规则基础上令 ? 值减少了一个额外的值。 

2、正规方程

我们同样也可以利用正规方程来求解正则化线性回归模型:

公式中矩阵的维度为:(n+1,n+1)。


8.4 Logistic回归的正则化

在中,我们学习了多种优化算法:基础的为梯度下降,以及一些高级优化算法(见7.6)。

在这些高级优化算法中,你需要做的是设计好代价函数 J(?) ,然后调用高级优化算法去最小化 J(?) 。 

与线性回归一样,我们也需要修改代价函数,即在代价函数中添加正则化项:

1、梯度下降

 

这看起来和线性回归的梯度下降过程一样,然而我们需要注意的是:在逻辑回归中,h?(x) = g(?TX),与线性回归完全不同。

2、高级优化算法

我们依旧可以用 fminuc 函数等高级优化算法来求解代价函数最小化的参数,值得注意的是参数?0的更新规则与其他情况不同。


 

 

如果这篇文章帮助到了你,或者你有任何问题,欢迎扫码关注微信公众号:一刻AI  在后台留言即可,让我们一起学习一起进步!

以上,就是吴恩达机器学习课程第八章的主要内容。

 

 

 

【重要提示】:本人机器学习课程的主要学习资料包括:吴恩达教授的机器学习课程和黄广海博士的中文学习笔记。感谢吴恩达教授和黄广海博士的知识分享和无私奉献。作为机器学习小白,计划每周末记录一周以来的学习内容,总结回顾。希望大家多多挑错,也愿我的学习笔记能帮助到有需要的人。

转载于:https://www.cnblogs.com/lky-learning/p/10637592.html

你可能感兴趣的文章
null?对象?异常?到底应该如何返回错误信息
查看>>
django登录验证码操作
查看>>
(简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
查看>>
图论知识,博客
查看>>
[原创]一篇无关技术的小日记(仅作暂存)
查看>>
20145303刘俊谦 Exp7 网络欺诈技术防范
查看>>
原生和jQuery的ajax用法
查看>>
iOS开发播放文本
查看>>
20145202马超《java》实验5
查看>>
JQuery 事件
查看>>
main(argc,argv[])
查看>>
第四阶段 15_Linux tomcat安装与配置
查看>>
NAS 创建大文件
查看>>
学习笔记-模块之xml文件处理
查看>>
接口测试用例
查看>>
Sybase IQ导出文件的几种方式
查看>>
案例:手动输入一个字符串,打散放进一个列表,小写字母反序 大写字母保持不变...
查看>>
linux 系统下 tar 的压缩与解压缩命令
查看>>
阿里负载均衡,配置中间证书问题(在starcom申请免费DV ssl)
查看>>
转:How to force a wordbreaker to be used in Sharepoint Search
查看>>