【Linear Models for Binary Classification】林轩田机器学习基石

首先回顾了几个Linear Model的共性:都是算出来一个score,然后做某种变化处理。

既然Linear Model有各种好处(训练时间,公式简单),那如何把Linear Regression给应用到Classification的问题上呢?到底能不能迁移呢?

总结了如下的集中Linear Model的error functions的表达式:

这里都提炼出来了ys这一项,y表示需要更正的方向{+1,-1},s表示需要更正的幅度(score)

三种error function可以这么理解:

(1)0/1 error : 幅度s固定,y表示方向

(2)square error : y很正或很负,error都非常大(注意这里只需要y很大或很下,error就收不住了);只有当ys很接近1的时候,error才可能接近0

(3)cross-entropy error : 如果ys很负的话,那么error就无穷大;如果ys很正的话,那么error无限接近0

再画出几种model的error function,可以看到:

(1)square error是不太合适的,ys>>1的时候,error衡量的过了,不合适。

(2)cross-entropy error也不太合适,因为在0到-1之间位于0/1 error下面了

如果想合适的话,可以对cross-entropy进行放缩:把ln换成log2,就OK了。

这里有个Point值得关注,为啥要放缩呢?错误率低不是更好么?

其实这跟目的有关:

(1)首先我们的目的是要用regression来代替classification(为啥要替代?因为PLA/Pocket是NP-hard的问题,不好整;而Linear Model在最优化之后,求解比较容易了),如果regression和classification在性能上差不多,那就可以替代了。

(2)因此,我们把cross-entropy error来scale成0/1 error的upper bound,目的就是让cross-entropy error低的时候,0/1error也低,放缩一下是为了说bound住这个事情。

再简单些就是说,如果实际中linear model用regression给出来的方法分类效果好,那么PLA/Pocket分类效果也好。

接下来对比了PLA、Linear Regression 和 Logistic Regression的方法优缺点:

(1)PLA:线性可分时候很犀利;如果不可分,那就只好Pocket

(2)Linear Regression:最优化可以求出来analytics close solution;但是当|ys|很大的时候,positive direction和negative direction的bound都太松太松了

(3)Logistic Regression:gradient descent可以求解;但是negatvie direction方向bound比较松

总结一些实际经验:linear regression可以作为PLA/Pocket/Logistic Regression的初始值设置。

接下来讲了一种Stochastic Gradient Descent的方法:

(1)原来是所有点在算梯度,然后取平均,再更新w;随机梯度下降,是不用每次算所有点了,每次算一个点,用这个点代替所有点的平均。

(2)敢这么做的原因:是因为 stochastic gradient = true gradient + zero-mean ‘noise‘ directions;因为是zero-mean的noise,所以可以得到average true gradient ≈ average stochastic gradient

(3)SGD方法在logistic regression的应用公式,非常像PLA的公式

(4)从实际情况出发,一般迭代次数达到一定,可以认为SGD已经获得了最佳的结果;ita在实际经验中,一般取值为0.1左右合适。

随后,由binary classification问题延伸到了multiclass的问题,总体来说有两种方法:

1. One-Versus-ALL (OVA) Decomposition

意思就是

(1)每次把一个class和非这个class的当成目标两类,用logistic regression分这两类

(2)分类时输入某个点,然后看这个点上取哪一类的概率最大

这里有一点点儿问题:(2)点中不一定所有类别的概率和是1,虽然实际中影响不大,但是统计学的还是有严谨的方法(multinomial logistic regression)

当类别很多的时候(比如,K=100)那么,每次用logistic regression的时候,正样本和负样本的差别非常大,这样不容易得出正确结果。

为了解决OVA的unbalance问题:每次只取两个类,一共有K类,做C(K,2)次logistic regression就OK了;当给一个输入点的时候,用这C(K,2)个分类器给所有K个类别投票,取票数大的作为输出结果。

这种方法的缺点是:可能效率会低一些(K次变成C(K,2)次)。

但是,如果类别很多,每一类的样本量都差不多的时候,其实OVO的方法不一定比OVA方法效率低。

时间: 2024-08-05 23:16:25

【Linear Models for Binary Classification】林轩田机器学习基石的相关文章

台大林轩田·机器学习基石记要

台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主要是想从数据中学习/逼近一个理想的函数f(x) 第二讲讲到了PLA,感知器学习算法,并且证明了线性可分时感知器收敛定理(与Haykin的Neural Networks and Learning Machines证明相同,另外补充的是学习速率不一定为1,只要非负即可,但是这个地方还有一些疑问,在Hay

【Linear Regression】林轩田机器学习基石

这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超平面) 下面进入核心环节:Linear Regression的优化目标是minimize Ein(W) 为了表达简便,首先需要把这种带Σ符号的转换成matrix form,如下: 1~2:多个项的平方和可以转换成向量的平方 2~3:把每个列向量x都横过来,组成一个新的X矩阵 最后转换成了最终的min

【The VC Dimension】林轩田机器学习基石

首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么Ein跟Eout的表现会比较接近 3. 如果算法A选的g足够好(Ein很小),则可能从数据中学到了东西 ================================================== 现在正式引出VC Dimension的概念:啥叫VC Dimension: VC Dimensi

【Training versus Testing】林轩田机器学习基石

接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够接近(在训练集上的表现能否迁移到测试集上) (1)如果假设集合数量小(M小),可知union bound后,Ein与Eout是接近的:但由于可选择的假设集合少,Ein(g)效果可能不佳: (2)如果假设集合数量大(M大),有可能Ein(g)会获得更多的选择,测试集上效果更好:但由于M数量过大,训练集

【Linear Support Vector Machine】林轩田机器学习技法

首先从介绍了Large_margin Separating Hyperplane的概念. (在linear separable的前提下)找到largest-margin的分界面,即最胖的那条分界线.下面开始一步步说怎么找到largest-margin separating hyperplane. 接下来,林特意强调了变量表示符号的变化,原来的W0换成了b(这样的表示利于推导:觉得这种强调非常负责任,利于学生听懂,要不然符号换来换去的,谁知道你说的是啥) 既然目标是找larger-margin s

【Perceptron Learning Algorithm】林轩田机器学习基石

直接跳过第一讲.从第二讲Perceptron开始,记录这一讲中几个印象深的点: 1. 之前自己的直觉一直对这种图理解的不好,老按照x.y去理解. a) 这种图的每个坐标代表的是features:features的值是有物理意义的. b) 而圈圈和叉叉是为了标注不同的样本(正样本 负样本),即label:为了后续的很多简便表示,这里正样本取+1,负样本取-1 2. Perceptron Learning策略的几何意义:表示临界线(面)的法向量旋转方向 由于label设为了+1和-1,可以直接用w+

【Regularization】林轩田机器学习基石

正则化的提出,是因为要解决overfitting的问题. 以Linear Regression为例:低次多项式拟合的效果可能会好于高次多项式拟合的效果. 这里回顾上上节nonlinear transform的课件: 上面的内容说的是,多项式拟合这种的假设空间,是nested hypothesis:因此,能否想到用step back的方法(即,加一些constraints的方法把模型给退化回去呢?) 事实上,是可以通过加入constraint使得模型退化回去的:但是,再优化的过程中涉及到了“判断每

【作业4】林轩田机器学习基石

作业四的代码题目主要是基于ridge regression来做的,并加上了各种cross-validation的情况. 由于ridge regression是有analytic solution,所以直接求逆矩阵就OK了,过程并不复杂.只有在做cross-validation的时候遇上了些问题. #encoding=utf8 import sys import numpy as np import math from random import * # read input data ( tra

【Hazard of Overfitting】林轩田机器学习基石

首先明确了什么是Overfitting 随后,用开车的例子给出了Overfitting的出现原因 出现原因有三个: (1)dvc太高,模型过于复杂(开车开太快) (2)data中噪声太大(路面太颠簸) (3)数据量N太小(知道的路线太少) 这里(1)是前提,模型太复杂: (1)模型越复杂,就会捕获train data中越多的点(这当中当然包括更多的噪声点) (2)数据量N太小,根据VC Dimension理论,Eout会增大 这里的noise包括两类: 1. stochoastic noise: