Sheridan的专栏

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

第9讲——-Linear Regression

从这一节开始,开始涉及到HowCan Machines Learn的问题了。

一、Linear Regression问题

例如,信用卡额度预测问题:特征是用户的信息(年龄,性别,年薪,当前债务,…),我们要预测可以给该客户多大的信用额度。 这样的问题就是回归问题。目标值y 是实数空间R。线性回归的假设hypothesis如下图所示:

线性回归假设的思想是:寻找这样的直线/平面/超平面,使得输入数据的残差最小。通常采用的error measure 是squared error:

从机器学习的角度来说,我们就会看两个东西:E_in(h)和E_out(h)。如果相信VC bound的推导是对的,挥挥手的方式说VC bound延伸到其他的问题也会是对的。那么我们只剩下一个问题,只需要使得E_in(h)越小越好,就可能做到机器学习的效果。

二、Linear Regression算法

接上面的问题,如何求到一个w,,使得E_in(h)最小。为了将来操作上符号看起来更简洁(没有n的index在里面),将squared error 表示为矩阵形式Matrix Form:

E_in(w) 是连续可微的凸函数,可以通过偏微分求极值的方法来求参数向量w。

令上式等于0,即可以得到向量w。

上面分两种情况来求解w。当X^TX(X 的转置乘以X) 可逆时,可以通过矩阵运算直接求得w;不可逆时,直观来看情况就没这么简单。实际上,无论哪种情况,我们都可以很容易得到结果。因为许多现成的机器学习/数学库帮我们处理好了这个问题,只要我们直接调用相应的计算函数即可。有些库中把这种广义求逆矩阵运算成为 pseudo-inverse。

到此,我们可以总结线性回归算法的步骤(非常简单清晰):

三、Linear Regression是Learning Algorithm吗?

乍一看,Linear Regression “不算是”机器学习算法,更像是分析型方法,而且我们有确定的公式来求解w,没有看出它学习提高的过程。实际上,线性回归属于机器学习算法:(1) 对E_in 进行优化。(2)得到E_out 约等于 Ein。(3)本质上还是迭代提高的,pseudo-inverse 内部实际是迭代进行的。

接下来,我们试图求一下E_in,E_out 的平均范围,会比求解VC bound更为简单。

N维的空间里,y是在N维空间里的向量,那么我要做预测也就是y_hat = Xw,w做的事情就是把X的每一个column作线性组合,X的每一个column也是一个N维的向量。也就是说,X拿出每个column可以展开成在N维度里面一个小的空间,然后y_hat会在这个空间里面。Linear Regression要做什么?希望y与y_hat的差别越小越好,也就是y – y_hat垂直于这个小空间的时候。所以,H这个矩阵的作用就是把任何一个向量y投影到X所展开的那个空间里;I-H的作用就是求解任何一个向量y对于X所展开的空间的余数。

trace(I – H)的物理意义:我们原来有一个n个自由度的向量,现在我们将其投影到d+1维的空间(因为X有d+1个向量展开),然后取余数,剩下的自由度最多就是N – (d + 1)。

注意到E_in算的是y – y_hat,即垂直于平面的距离。而另一个角度来说,y可以认为是真实的f(X) + noise的向量,我们会发现将noise投影在平面上求解的垂直于平面的距离实际上也就是y – y_hat。也就是说,我们现在要求解的E_in其实就是把I – H这个线性的变换用在noise上面。于是就可以得到E_in的平均范围,E_out 平均范围的求解会相对复杂这里省略。

通过E_in和E_out的式子通常就,可以画出一个图通常叫做学习曲线。所以,所谓的generalization error也就是E_in与E_out的差距,平均来说就是2(d+1)/N。如果还记得的话,在有d+1个自由度时,VC bound最坏情况下是d+1。所以Linear regression的学习真的已经发生了。

四、Linear regression与Linear classification

那讲完了Linear regression,那与之前讲的Linear classification线性分类有什么异同呢?

那能否直接用Linear regression来解分类问题就好?听起来有点道理。之所以能够通过线程回归的方法来进行二值分类,是由于回归的squared error 是分类的0/1 error 的上界,我们通过优化squared error,一定程度上也能得到不错的分类结果;或者,更好的选择是,将回归方法得到的w 作为二值分类模型的初始w 值。

第10讲——-Logistic Regression

上一讲是关于线性回归,重点是求解w 的解析方案(通过pseudo-inverse 求解w)。

一、Logistic Regression问题

莫找借口失败,只找理由成功。(不为失败找理由,要为成功找方法

Sheridan的专栏

相关文章:

你感兴趣的文章:

标签云: