机器学习基石——第11-12讲.Linear Models for Classification

来源:互联网 发布:淘宝直通车有必要开吗 编辑:程序博客网 时间:2024/05/22 13:54

本栏目(机器学习)下机器学习基石专题是个人对Coursera公开课机器学习基石(2014)的学习心得与笔记。所有内容均来自Coursera公开课Machine Learning Foundations中Hsuan-Tien Lin林轩田老师的讲解。(https://class.coursera.org/ntumlone-002/lecture)

第11讲-------Linear Models for Classification

在上一讲中,我们了解到线性回归和逻辑回归一定程度上都可以用于线性二值分类,因为它们对应的错误衡量(square error, cross-entropy) 都是“0/1 error” 的上界。

一、3种线性分类模型

本质上讲,线性分类(感知机)、线性回归、逻辑回归都属于线性模型,因为它们的核心都是如下的一个线性score 函数。只是三个model 对其做了不同处理:线性分类对s 取符号;线性回归直接使用s 的值;逻辑回归将s 映射到(0,1) 区间。
mlf_11_1

为了更方便地比较三个model,对其error function 做一定处理。接下来我们要做的事情就是看看这些Error Function跟ys的关系,在此之前我们先看看ys的物理意义:y代表正确与否correctness,s代表正确或错误的程度score。
mlf_11_2

通过曲线来比较三个error function (注意:为了让Logistic Error Function完全压在0/1的Error Function上,一般cross-entropy 变为以2为底的scaled cross-entropy),这样很容易通过比较三个error function 来得到分类的0/1 error 的上界。
mlf_11_3

如果用力把Logistic regression/Linear regression的Error做好,从某种角度来说也把0/1做的还不错。我们就理解了通过逻辑回归或线性回归进行分类的意义。
mlf_11_4

线性分类(PLA)、线性回归、逻辑回归的优缺点比较:
(1)PLA
优点:在数据线性可分时高效且准确。
缺点:只有在数据线性可分时才可行,否则需要借助POCKET 算法(没有理论保证)。
(2)线性回归
优点:最简单的优化(直接利用矩阵运算工具)
缺点:y*s 的值较大时,与0/1 error 相差较大(loose bound)。
(3)逻辑回归
优点:比较容易优化(梯度下降)
缺点:y*s 是非常小的负数时,与0/1 error 相差较大。

实际中,逻辑回归用于分类的效果优于线性回归的方法和POCKET 算法。线性回归得到的结果w 有时作为其他几种算法的初值。

二、随机梯度下降 (Stochastic Gradient Descent)

传统的随机梯度下降更新方法如下。每次更新都需要遍历所有data,当数据量太大或者一次无法获取全部数据时,这种方法并不可行。
mlf_11_5

我们希望用更高效的方法解决这个问题,基本思路是:只通过一个随机选取的数据(xn,yn) 来获取“梯度”,以此对w 进行更新。这种优化方法叫做随机梯度下降。
mlf_11_6

这种方法在统计上的意义是:进行足够多的更新后,平均的随机梯度与平均的真实梯度近似相等。注意:在这种优化方法中,一般设定一个足够大的迭代次数,算法执行这么多的次数时我们就认为已经收敛(防止不收敛的情况),η经验上的取值在0.1附近会比较合适。

接下感受一下如下的练习题:
mlf_11_7

三、Multi-class Classification

与二值分类不同的是,我们如何将这些Model延伸来做多类别的分类。一种直观的解决方法是将其转化为多轮的二值分类问题:任意选择一个类作为+1,其他类都看做-1,在此条件下对原数据进行训练,得到w;经过多轮训练之后,得到多个w,如下图得到四个分类器。
mlf_11_8

对于某个x,在有些时候4个分类器中只会有1个分类器说x就是它的类别;不过对于中间区域的点,4个分类器似乎都会说不是它们的类别,那该如何分类呢?这个时候,就将其分到可能性最大的那个类(例如逻辑回归对于x 属于某个类会有一个概率估计)。如果目标类别是k 个类标签,我们需要k 轮训练,得到k 个w。这种方法叫做One-Versus-All (OVA)。

它的最大缺点是,目标类很多时,每轮训练面对的数据往往非常不平衡(unbalanced),因为每次训练都是当前类别的概率与其他K-1个类别的概率比较,会严重影响训练准确性。multinomial (‘coupled’) logistic regression 考虑了这个问题,感兴趣的话自学下吧。

四、多元分类vs二元分类

既然这样,One-Versus-All会出现Unbalanced的情况,那么有一种方法叫做One-Versus-One(OVO)尝试解决这个问题。

基本方法:每轮训练时,任取两个类别,一个作为+1,另一个作为-1,其他类别的数据不考虑,这样,同样用二值分类的方法进行训练;目标类有k个时,需要 k*(k-1)/2 轮训练,得到 k*(k-1)/2 个分类器。
预测:对于某个x,用训练得到的 k*(k-1)/2 个分类器分别对其进行预测,哪个类别被预测的次数最多,就把它作为最终结果。即通过“循环赛”的方式来决定哪个“类”是冠军。

显然,这种方法的优点是每轮训练面对更少、更平衡的数据,而且可以用任意二值分类方法进行训练;缺点是需要的轮数太多(k*(k-1)/2),占用更多的存储空间,而且预测也更慢。
OVA 和 OVO 方法的思想都很简单,可以作为以后面对多值分类问题时的备选方案,并且可以为我们提供解决问题的思路。

第12讲-------Nonlinear Transformation

前面的分析都是基于“线性假设“,它的优点是实际中简单有效,而且理论上有VC 维的保证;然而,面对线性不可分的数据时(实际中也有许多这样的例子),线性方法不那么有效。

一、Quadratic Hypothesis二次假设

对于下面的例子,线性假设显然不奏效,因为数据不是线性可分的。今天要探讨的问题就是如何突破线性假设的限制。

那我们要怎么做呢?一方面,既然没办法用线将数据分开,仔细一看会发现,二次曲线(比如圆)看起来可以解决,可以认为数据是“圆圈可分”。那我们就可以重新设计如何用圆圈来做PLA,如何用圆圈来做regression等,但是这样似乎太困难了。

mlf_12_1

另一方面,既然我们已经会了线性作PLA,线性regression,那么我们是否能够将“圆圈可分”的数据通过某种转化变成线性可分呢

对于上面的例子,我们可以假设分类器是一个圆心在原点的正圆,圆内的点被分为+1,圆外的被分为-1,于是有:
mlf_12_2

在上面的式子中,将(0.6, -1, -1) 看做向量w,将(1, x1^2, x2^2) 看做向量z,这个形式和传统的线性假设很像。可以这样理解,原来的x-空间的点都映射到了z-空间,这样,在x-空间中线性不可分的数据,在z-空间中变得线性可分;然后,我们在新的z-空间中进行线性假设。
mlf_12_3

在数学上,通过参数w 的取值不同,上面的假设可以得到正圆、椭圆、双曲线、常数分类器,它们的中心都必须在原点。如果想要得到跟一般的二次曲线,如圆心不在原点的圆、斜的椭圆、抛物线等,则需要更一般的二次假设。
mlf_12_4

二、Nonlinear Transform非线性转换

总结上一节的分析,对于线性不可分的数据进行非线性转换的学习步骤如下:
mlf_12_5

也就是说,在操作上实际上不是往左边的箭头,而是往右边的箭头。往右边的箭头告诉我x-空间的每一个点都可以映射到z-空间,然后我等z-空间的线性分类告诉我分类结果。

如上的流程里面有两个比较关键可以选择的事情:如何做feature transform;选择怎样的linear model。这里的非线性转换其实也是特征转换(feature transform),在特征工程里很常见。Feature transform看起来很强大,就像打开了潘多拉的盒子,我们突然一下子可以做更多更多的事情了。不过听起来这么强大,到底有没有什么代价呢?且听下回分解。来一发滚烫的习题:
mlf_12_6

三、Nonlinear Transform的代价

所谓”有得必有失“,将特征转换到高次空间,我们需要付出学习代价(更高的模型复杂度)。x-空间的数据转换到z-空间之后,新的假设中的参数数量也比传统线性假设多了许多:
mlf_12_7

根据之前分析过的,VC dimension约等于自由变量(参数)的数量,所以新假设的d_vc急速变大,也就是模型复杂大大大增加。回顾机器学习前几讲的内容,我们可以有效学习的条件是:(1)E_in(g) 约等于 E_out(g);(2)E_in(g) 足够小。当模型很简单时(d_vc 很小),我们更容易满足(1)而不容易满足(2);反之,模型很复杂时(d_vc很大),更容易满足(2)而不容易满足(1)。看来选择合适复杂度的model 非常trick。 

四、Structured Hypothesis set

前面我们分析的非线性转换都是多项式转换(polynomial transform)。我们将二次假设记为H_2,k次假设记为H_k。显然,高次假设的模型复杂度更高。如下图所示,低次假设的模型是包含在高次假设的模型里面的。当Hypothesis之间有这样的互相包含的关系的时候,我们将它叫做hypothesis set的一个结构。
mlf_12_8

也就是说,高次假设对数据拟合得更充分,E_in 更小;然而,由于付出的模型复杂度代价逐渐增加,E_out 并不是一直随着E_in 减小。

实际工作中,通常采用的方法是:先通过最简单的模型(线性模型)去学习数据,如果E_in 很小了,那么我们就认为得到了很有效的模型;否则,转而进行更高次的假设,一旦获得满意的E_in 就停止学习(不再进行更高次的学习)。总结为一句话:linear/simpler model first !

 

关于Machine Learning Foundations更多的学习资料将继续更新,敬请关注本博客和新浪微博Sheridan

原创文章如转载,请注明本文链接: http://imsheridan.com/mlf_11th_lecture.html

0 0
原创粉丝点击