加州理工学院公开课:机器学习与数据挖掘_线性模型

这一课时主要是讲述了线性模型的一些处理。

包括:

1、输入数据的表示(Input Representation)

2、线性分类(Linear Classification)

3、线性回归(Linear Regression)

4、非线性模型转换(Nonlinear Transformation)

作者认为,如果要测试某个模型的可用性,做好就是用真实数据。

为了讲解线性模型如何应用,作者利用线性模型来解决邮局数据辨别问题:

由于不同的人有不同的书写习惯,对于同一个数字其书写形式可能各异,但是其基本骨架不会变化太大。如下面一幅图是来自邮局中的,来自真实世界的数据:

在上图的那些数据中有些数字是很容易辨认的,但是有些数据却难以辨认,比如倒数第二行最后一个数字究竟是‘8’还是‘0’ ?

为了识别这些数字,我们需要机器学习。在这里作者利用了感知器模型(线性模型)来解决这个问题。

需要做的第一点就是如何输入数据(Input Representation)?

假设每个数字像素都是 16*16的,

那么我们可以对每一张图片输入16*16 = 256 个点,对应的我们有 256+1 个参数:x0 -- x256。我们期望通过机器学习来确定所有的这些参数的值,可是参数这么多,机器学习可能需要很多的时间来完成,而且效果不一定好。观察到有一些像素点是不需要的,因此我们应该从这些像素点中抽取出一些特征出来,用来表示每一张图片,这样就可以把维度降下来,从而降低学习强度。观察到不同的数字其强度(黑色的点数)和对称性是不一样的,因此我们尝试用强度和对称性来描述每一张图片,即抽取出特征,从而把维度从 257 降到
3 维(不要忘记w0)。当然我们在提取出有用的信息的同时可能也丢掉了同样多的有用信息。进过特征抽取后,每一张图片的表示如下:

现在我们可以利用这些特征来进行机器学习了。(Linear Classification)(为了简化问题,只处理了数字‘1’和‘5’)。根据线性模型的公式:h(X) = WX(W T 均是向量)。下面是学习的效果图。

每幅图的左边是利用了线性模型进行学习的过程及结果,左图中红色线表示实际的结果,绿色线表示学习的结果。由于数据不是线性可分的,所以算法不会自动停止。因此在这里定义迭代1000次后强制停止。并把最后一次迭代结果作为最终输出。但是学习的效果并不是很理想,分割线太过偏上了。这是因为最后一次迭代的结果不一定是最后的,有可能刚好迭代到一次坏的数据那里就停止了。所以就有了后面的口袋算法(Pocket Algorithm)如下每幅图中右边的图就表明是利用口袋算法得到的结果,可以看到,最后结果表现的很好,但是依然有一些点无法正确分类,但是没所谓,不要求百分百正确,主要错误在允许的范围内就可以。

   

说了这么多,那么究竟什么是口袋算法呢?

口袋算法就是增加一个跟踪器,该跟踪器最终最好的结果,并把它记录下来,当进行下一次迭代结束的时候,就把跟踪器当前的结果跟迭代的结果进行对比,始终跟踪记录最后的结果。这样在最后的时候,跟踪器就保留了所有迭代中的做好的那次迭代。可是为什么叫做口袋算法而不是什么其它的?作者解析说:想象一下,每次都把最好的结果放到口袋里,当发现更好的结果的时候,就把更好的放到你的口袋中并丢弃口袋中原有的结果。最后当算法结束时,你只需要把你口袋里面的结果拿出来就是了。所以叫做口袋算法。(呵呵,好生动)

接下来作者讲到线性回归(Linear Regression )问题

Regression = Real-Valued Output

当每次提到一些变量是否跟别的变量是否有关时,想到的就是回归。

利用线性回归我们求出一条线(或面,这个要根据参数数量即维数来决定),使得误差最小

   

二维:线
三维:面

线性回归方程如下:

但是应该如何衡量误差?毕竟回归就是为了找出一个函数,使得该函数与真实函数之间的误差最小化。作者在这里用了标准的回归误差计算函数:平方差。

为了求出该误差函数的最小值及相应的 W,我们需要进行求导:标准矩阵微积分:

只要当 XW = y 时即可求出,求解过程如下:等式左边同时乘上 X 的逆,然后同时乘上 XtX 的反,那个 X头上有个加号的叫做伪倒数。

现在,我们已经求出 W 了。但是如何利用线性回归来进行分类?因为二元结果也属于实数,所以可以利用线性回归进行分类,当结果为真的时候我们把它作为 +1 类,为负时则认为是 -1 类。

问题是线性回归真的可以用来进行分类?先看一张效果图:

其中蓝色部分属于 +1 类,红色属于 -1 类。越往上的区域,正直越大,越往下的区域正直越小。但是回归方程试图使所有的负数变为 -1, 所有的正数变为 +1,可是它不能,对于那些 -2,-3 的值来说它只能把它当做错误处理。所以线性回归只能最小化误差,但是不是真正的分类!什么?不是真正的分类?are you kidding me ?

不急,虽然不是真正的分类,但是我们已经成功了一半了,如果我们把 W 初始化为线性回归算出来的 W 然后继续利用口袋算法等进行迭代那样就能加速整个过程了,毕竟如果一开始就是靠口袋算法,可能要迭代很久才能达到我们需要的值,因此我们为什么不来一次跳跃呢?这就是线性回归于分类的结合了。

(虽然是这么说,只是我不是很懂那个为什么不能把负数变成 -1,为什么会把 -2 等当做错误来处理???...)

最后,作者讲到如何把非线性问题转换为线性问题。

在本节中作者并没有提出一个理论性的方法关于如何指导转换,这些将会在下一课时提到。在这一课时中,作者提出了一个例子并且利用了转换方法,成功地把非线性可分问题转换成线性可分问题,如下:

左边的是原始的数据集,很明显是非线性可分的,但是如果我们对输入进行处理,把 x1,x2 的值同时平方,则相当于把左边的空间映射到右边的空间中,这样就成功的把非线性可分问题转换成线性可分问题了,需要注意的一点是,当输入新的x的时候我们要利用同样的方法先进行转换。

结论:

线性可分模型是机器学习中一个很重要的模型之一,要很多模型都是建立在线性可分模型上面的。

当我们的输入是多维的时候,为了降低学习的难度及时间,我们需要对输入的表示进行处理,抽取出特征,降低维度,从而降低机器学习的成本。

为了加快机器学习的过程及质量,可以利用线性回归方法先求出一个 W 作为线性模型的初始值,然后再此初始值上进行迭代。

由于现实中很多问题的数据都不是严格线性可分的。如果存在一条可以接受的边界(只有小数点分类错误),对于这类问题,我们没有办法使算法收敛,但是我们依然可以应用线性模型来解决,只是我们需要限定迭代的次数,同时利用口袋算法找出在迭代过程中最好的结果作为最终的结果。

另外对于那些明显线性不可分的问题,我们可以通过对输入数据进行处理从而转换成线性可分的问题,然后利用线性模型进行求解。

时间: 2024-12-14 18:14:13

加州理工学院公开课:机器学习与数据挖掘_线性模型的相关文章

加州理工学院公开课:机器学习与数据挖掘_过拟化(第十一课)

课程简介 本节课主要介绍了关于机器学习中的过拟化问题.作者指出,区别一个专业级玩家和业余爱好者的方法之一就是他们如何处理过拟化问题.通过该课程,我们可以知道样本数据的拟合并不是越高越好,因为噪声的存在将使得过拟化问题的出现.最后简介了处理过拟合的两种方法. 课程大纲 1.什么是过拟化?(what is overfitting?) 2.过拟化中的噪声.(The role of noise) 3.确定性噪声.(Deterministic noise) 4.如何处理过拟化问题.(Dealing wit

加州理工学院公开课:机器学习与数据挖掘_偏差与方差权衡(第八课)

课程简介: 在回顾了VC分析之后,本节课重点介绍了另一个理解泛化的理论:偏差与方差,并通过学习曲线的运用比较了VC分析和偏偏差方差权衡的不同用途. 课程大纲: 1.偏差与方差的权衡 2.学习曲线 1.偏差与方差的权衡 在上一节课:VC 维中,我们求出了 Eout 的边界,Eout < Ein + Ω.该公式描述了 Eout 的边界.现在让我们从不同的角度来分析 Eout. 我们把 Eout 分解为两部分: 1.假设集 H 近似 f 的能力(即 H 中与 f 距离最小的 G 与 f 的误差大小 )

加州理工学院公开课:机器学习与数据挖掘_误差和噪声(第四课)

这一课的主题是:误差分析与噪声处理. 该课时的主要内容如下: 1.Nonlinear Transformation(Continue)(非线性转换(续)) 2.Error Measure (误差度量)(重点) 3.Noisy Targets(噪声指标)(重点) 4.Preamble to the Theory(理论热身) 1.Nonlinear Transformation: 在上一节课的最后,作者举了一个关于非线性转换的例子.通过该例子我们可以直观的看到非线性的数据可以被转化成线性的数据并且利

加州理工学院公开课:机器学习与数据挖掘_训练与测试(第五课)

课程简介: 本视频为机器学习系列课程第5章.主要定量研究训练与测试之间的关系,并引入学习模型中的一个重要概念--断点.课程深入浅出,从正射线.正区间和凸集三个具体例子入手,寻找突破点,从而得出训练集与测试集的关系. 课程大纲(Outline): 1.从训练到测试(From Training to Testing) 2.举例说明(Illustrative Examples ) 3.关键概念---- 断点(Key Notion --- Break Point ) 4.难题(Puzzle) 1.从训练

加州理工学院公开课:机器学习与数据挖掘_神经网络(第十课)

课程简介: 本节课主要介绍人工神经网络.通过介绍评定模型,随机梯度下降法,生物启发和感知器系统,讲师用视图和数学解析式详细地讲解了神经网络的运行过程以及原理. 课程大纲: 1.Stochastic Gradient Descent ( 随机梯度下降法 ) 2.Neural Network Model ( 神经网络模型 ) 3.Backpropagation Algorithm ( 反向传播算法 ) 4.Summarize 1.Stochastic Gradient Descent 在上一节课里,

加州理工学院公开课:机器学习与数据挖掘_Three Learning Principles(第十七课)

课程简介 : 这一节课主要讲述机器学习中应该注意的事项,包括:Occam's Razor.Sampling Bias.Data Snooping. 课程提纲 : 1.Occam's Razor. 2.Sampling Bias. 3.Data Snooping. 1.Occam's Razor. 爱因斯坦曾经说过一句话: An explanation of the data should be made as simple as possible, but no simpler. 软件工程中也有

加州理工学院公开课:机器学习与数据挖掘_Epilogue(第十八课-终结篇)

课程简介 : 这是该课程的最后一课,作者首先总结了有关机器学习的理论.方法.模型.范式等.最后介绍了贝叶斯理论和Aggregation(聚合)方法在机器学习中的应用. 课程提纲 : 1.机器学习的地图. 2.贝叶斯理论. 3.Aggregation(聚合). 1.机器学习的地图 有关机器学习的方法.模型等非常多,简直令人目不暇接.比如下图列出来的.然而不建议一一学习这些方法.模型,否则容易迷失在这些方法里无法自拔.如果我们对于机器学习的框架认识的足够深刻,那么我们才能驾驭众多的方法. 下面列举了

加州理工学院公开课:机器学习与数据挖掘_VC 维(第七课)

课程简介: 本讲通过回顾上一讲内容,引出了VC维的定义,它是由统计学习理论定义的有关函数集学习性能的一个重要指标.并通过例子证明函数集的VC维就是它能打散的最大样本数目.课程最后介绍VC维的应用,指出它反映了函数集的学习能力,VC维越大则学习机器越复杂 课程大纲: 1.定义(The definition) 2.感知器的 VC 维(VC dimension of perceptrons) 3.VC 维的解释(Interpreting the VC dimension) 4.边界的泛化(Genera

加州理工学院公开课:机器学习与数据挖掘_Regularization(第十二课)

课程简单介绍: 接上一节课,这一节课的主题是怎样利用 Regularization 避免 Overfitting.通过给如果集设定一些限制条件从而避免  Overfitting,可是如果限制条件设置的不恰当就会造成 Underfitting. 最后讲述了选择 Regularization 的一些启示式方法. 课程大纲: 1.Regularization 2.Weight decay 3.Choosing a regularizer 1.Regularization R 有两种方法: 1) Mat