[机器学习笔记]Note5--归一化

继续是机器学习课程的笔记,这节课会介绍归一化的内容。

过拟合问题

这节课会介绍一个在机器学习过程中经常会遇到的问题–过拟合。通常,当我们有非常多的特征,我们可以学习得到的假设可能非常好地适应训练集,即代价函数可能几乎是0,但是可能会不能推广到新的数据,即泛化能力差,对于新的数据预测结果不理想。这就是过拟合问题。而特征非常多也是发生过拟合问题的一个原因之一。

下面是一个回归问题,分别有3个模型,如下所示:
这里写图片描述

第一个模型是一个线性模型,低度拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过度拟合,虽然能非常好地适应我们的训练集,但在新输入变量进行预测时可能会效果不好;而中间的模型则是相对最合适的模型。

在回归问题中会有过拟合问题,同样在分类问题也是有过拟合的问题,例子如下所示:
这里写图片描述

同样是第一个模型是线性模型,只能低度拟合,而第三个模型是一个过渡拟合的模型,对新输入变量进行预测时效果会不好,只有中间的模型是最合适的模型。

那么,当发生过拟合的问题时,我们可以采取下面的措施来避免过拟合:
1. 丢弃一些不能帮助我们正确预测的特征:可以是手工选择保留哪些特征或者使用一些模型选择的算法来帮忙(例如PCA);
2. 归一化。保留所有的特征,但是减小参数的大小

归一化代价函数

在上述回归问题的例子中,对于过拟合的模型是hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44

我们决定要减少θ3θ4的大小,我们要做的是修改代价函数,在其中对θ3θ4设置一点惩罚。这样做的话,我们在尝试最小化代价时也需要将这个惩罚纳入考虑中,并最终导致选择较小的θ3θ4。修改后的代价函数如下:

minθ12mi=1m((hθ(x(i)y(i))2+10000θ23+100000θ24)

通过这样的代价函数选择出来的θ3θ4对预测结果的影响就会比之前小许多。

那么假如我们有许多的特征,我们并不知道其中哪些特征需要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。那么代价函数如下所示:

J(θ)=12m[i=1m((hθ(x(i))y(i))2+λj=1nθ2j)]

其中λ又称为归一化参数
注意:根据惯例,我们不对 θ0进行惩罚。

经过归一化处理的模型与原模型的可能对比如下图所示:
这里写图片描述

这里如果选择的归一化参数λ过大,则会把所有的参数都最小化,导致模型变成hθ(x)=θ0,也就是上图中红色直线所示的情况,造成低度拟合。

归一化线性回归

梯度下降算法

归一化线性回归的代价函数是:

J(θ)=12m[i=1m((hθ(x(i))y(i))2+λj=1nθ2j)]

此时如要使用梯度下降法来令代价函数最小化,由于我们没有对 θ0进行归一化,所以梯度下降法将会分两种情形:

Repeat until convergence{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0θj:=θjα[1mi=1m(hθ(x(i))y(i))x(i)j+λmθj](forj=1,2,3,,n)

}

其中,对第二个更新的式子进行调整可得:

θj:=θj(1αλm)α1mi=1m(hθ(x(i))y(i))x(i)j

由该式子可以看出归一化线性回归的梯度下降算法的变化在于, 每次都在原有算法更新规则的基础上令θ值减少了一个额外的值,这是因为 1αλm<1,而后面第二项式子跟没有使用归一化时候是一样的。

正规方程

同样,也可以使用正规方程来求解线性回归模型。这里做如下假设:

X=(x(1))T(x(m))Ty=(y(1))(y(m))

这里的 X是训练集的矩阵,是一个m(n+1)维矩阵,即有m个样本,每个样本有n+1个特征(实际是n个特征,但是每个样本都添加了一个 x0=1,而 y则是一个(m+1)1维的向量,表示的是训练样本的标签。

这里要求解归一化线性回归模型的方法如下:

θ=(XTX+λ00010011)1XTy

这里的矩阵是一个 (n+1)(n+1)大小,并且是一个对角线上除了第一行外是1,例如当n=2时,这个矩阵就是 [000 010 001]

这个矩阵的得到是通过令θjJ(θ)=0所得到的,不过视频中并没有给出详细的推导过程。

归一化逻辑回归

对于逻辑回归,我们也可以得到一个归一化的代价函数表达式:

J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i)log(1hθ(x(i)))]+λ2mj=1nθ2j

使用的梯度下降算法如下所示:

Repeat until convergence{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0θj:=θjα[1mi=1m(hθ(x(i))y(i))x(i)j+λmθj](forj=1,2,3,,n)

}

同样,看上去也是与线性回归的公式一样,但是由于hθ(x)=g(θTX),因此是与线性回归不同的。

小结

本节主要是介绍了过拟合的问题,这是由于特征过多导致学习得到的模型非常拟合训练集的数据,但是对于新的输入数据却得到不理想的预测结果,解决这个问题的方法,一个是减少特征的数量,第二个就是使用归一化来减小参数的大小。

因此后面分别介绍了归一化代价函数,以及线性回归和逻辑回归中梯度下降算法对于归一化代价函数的计算公式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

combobox的联动练习

老师的项目中&#xff0c;网站右上有四个联动的combobox&#xff0c;今天第一次尝试解决。外观如图&#xff1a; 首先第一次登陆系统时&#xff0c;需要分别载入4个框中的数据。通过easyui-combobox的url 属性请求php返回json数据即可&#xff0c;json中的value是名称&#xff…

[机器学习笔记]Note6--神经网络:表达

继续是机器学习课程的笔记&#xff0c;这节课会介绍神经网络的内容。 非线性假设 在之前的课程中&#xff0c;我们看到使用非线性的多项式能够帮助我们建立更好的分类模型。假设我们有非常多的特征&#xff0c;例如100个变量&#xff0c;我们希望用这100个特征来构建一个非线…

[机器学习笔记]Note7--神经网络:学习

继续是机器学习课程的笔记&#xff0c;这节课会继续介绍神经网络的内容&#xff0c;上一节主要是基本的介绍&#xff0c;以及模型表示&#xff0c;而本节会介绍代价函数&#xff0c;反向传播算法等。 神经网络代价函数 首先是有如下一个神经网络&#xff0c;这里将首先介绍一些…

[机器学习笔记]Note8--机器学习应用建议

继续是机器学习课程的笔记&#xff0c;本节课的内容主要是一些机器学习应用的建议&#xff0c;包括对假设的评估&#xff0c;如何处理过拟合和欠拟合等。 觉得下一步做什么 到目前为止&#xff0c;我们已经学习了线性回归&#xff0c;逻辑回归以及神经网络&#xff0c;梯度下…

Unity3d 手机屏幕自动适配

现在&#xff0c;市场上的手机分辨率多样化。带给开放人员一个很大的“跨界问题”。本人&#xff0c;昨晚突发奇想。手机分辨率多样化&#xff0c;但手机开放人员&#xff0c;制作UI时&#xff0c;最为重要的两个因素就是Position(位置)、Scale(大小)&#xff1b; 我引入一个“…

[机器学习笔记]Note9--机器学习系统设计

继续是机器学习课程的笔记&#xff0c;本节课的内容主要是介绍如何设计一个机器学习系统。 首先要做什么 这节课将介绍如何设计一个机器学习系统&#xff0c;首先是以设计一个垃圾邮件分类器算法作为例子。 为了解决这个问题&#xff0c;首先要决定的是如何选择并表达特征向…

java 图片阴影_Java 为 PPT 中的图形添加阴影效果

在PowerPoint文档中&#xff0c;给图形添加阴影效果能增强图形的立体感&#xff0c;使其贴近现实效果&#xff0c;提升文档的美观度。 本文将展示如何使用Free Spire.Presentation for Java为PPT中的图形添加阴影效果。除了文中展示的预设阴影效果&#xff0c;还可以添加内部阴…

nyoj 21 三个水杯 BFS

三个水杯 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述给出三个水杯&#xff0c;大小不一&#xff0c;并且只有最大的水杯的水是装满的&#xff0c;其余两个为空杯子。三个水杯之间相互倒水&#xff0c;并且水杯没有标识&#xff0c;只…

论文阅读(1)--Fine-grained Image Classification by Exploring Bipartite-Graph Labels

这是阅读《Fine-grained Image Classification by Exploring Bipartite-Graph Labels》这篇论文所做的笔记。 这篇论文是来自NEC实验室&#xff0c;是一篇有关细粒度分类/精细分类方面的论文。 0. 摘要 首先提出一个问题&#xff0c;给定一张食物的图片&#xff0c;对于一个…

java注释和注解_深入理解JAVA注解(Annotation)以及自定义注解

Java 注解(Annotation)又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。注解可以看作是一种特殊的标记&#xff0c;在程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。本文对 Annotation 进行了…

[机器学习笔记]Note10--支持向量机(SVM)

继续是机器学习课程的笔记&#xff0c;这节课的内容是介绍支持向量机&#xff08;SVM&#xff09;的内容。SVM是一个非常强大且流行的算法&#xff0c;在一些情况下&#xff0c;面对一些复杂的非线性问题可以提供比逻辑回归或神经网络更加简洁更加有效的结果。 优化目标 首先…

[机器学习笔记]Note11--聚类

继续是机器学习课程的笔记&#xff0c;本节介绍的是聚类方法&#xff0c;主要是K-means算法。 非监督学习 首先介绍监督学习和非监督学习的区别。一个监督学习的例子如下图&#xff0c;给定训练集如:{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))},每个训练实例都有对应的标签。 …