7. 机器学习基石-How can Machine Learn?

来源:互联网 发布:源数网络卡组 编辑:程序博客网 时间:2024/05/16 10:10

How can Machine Learn? - Linear Regression


  • How can Machine Learn? - Linear Regression
    • 1. What is Regression
    • 2. Linear Regression
      • 1) Introduction of Linear Regression
      • 2) Error Measurement of Linear Regression
      • 3) Linear Regression Algorithm
      • 4) Generalization Issue
      • 5) Linear Regression for Binary Classification
  • Reference

1. What is Regression

机器学习算法一般是这样一个步骤:

  1. 对于一个问题,用数学语言来描述它,然后建立模型,e.g., 回归模型或者分类模型;

  2. 建立代价函数: Cost Function, 用最大似然、最大后验概率或者最小化分类误差等等数,也就是一个最优化问题。找到最优化问题的解,也就是能拟合我们的数据的最好的模型参数;

  3. 求解这个代价函数,找到最优解。求解也就分很多种情况了:

    1). 如果这个优化函数存在解析解。例如我们求最值一般是对代价函数求导,找到导数为0的点,也就是最大值或者最小值的地方了。如果代价函数能简单求导,并且求导后为0的式子存在解析解,那么我们就可以直接得到最优的参数了: Gradient Descent。

    2). 如果式子很难求导,例如函数里面存在隐含的变量或者变量相互间存在耦合,也就互相依赖的情况。或者求导后式子得不到解释解,例如未知参数的个数大于已知方程组的个数等。这时候我们就需要借助迭代算法来一步一步找到最有解了。

    3). 另外需要考虑的情况是,如果代价函数是凸函数,那么就存在全局最优解。

回归(Regression)问题与分类(Classification)问题类似,关键的区别在于,Regression的输出是实数,是一个范围,所以不能提前确定所有输出值;而Classification的输出是确定的值。换个角度说,假如输出足够多的数据的时候:如果输出的值是连续的,这个问题叫做Regression,而如果输出的值是离散的,那么这个问题叫做Classification

用数学符号表示如果公式(1)所示。

Regression:Classification:f(x)=[value1,value2]f(x)={value1,value2,...,valuen}(1)

2. Linear Regression

1) Introduction of Linear Regression

线性回归问题同样的表示各个属性(Attribution)对最终结果的贡献:也就是说每个属性乘以对应的权值,最后再加上一定的偏移,如公式(2)所示

y=w0+w1x1+w2x2+...+wnxn(2)

如果给第一项的偏移 w0 加上属性值 x0,并把单独的输出点y用向量进行表示,那么公式(2)就变成了公式(3)(这一步纯粹是为了表示方便)。

Hypothesis h(x):

h(x)=w0x0+w1x1+w2x2+...+wnxn(x0=1)=wTxi=WTX(3)

从公式(3)的可以看出,与二元分类假设函数的表示只差了一个取正负号的函数 sign()

2) Error Measurement of Linear Regression

线性回归问题的错误如图一所示。
Error Measurement

图一 Error Measurement [1]

上一章中,提到了回归问题我们用平方误差来表示(其实还有RMSE, R2等方法,老师上课只讲了平方误差,为了说明方便,我们只写这个)
根据图一的信息,很明显得到公式(4)(5)。

Ein(w))=1Nn=1N(wTxnyn)2(4)

Eout(w))=ϵn=1N(wTxnyn)2(5)

VC Bound可以约束各种情况的学习模型,当然回归类型的模型也被也受此约束,只需要寻找足够小 Ein(w) 便可以满足 Eout(w) 小的需求。

3) Linear Regression Algorithm

刚刚上面的Error Meansurement中,我们提到了VC Bound中,在训练样本足够的情况下,我们要用特定的算法,来找到最小的 Ein(w),所以把上面公式(4)的pointwise error measurement 通过矩阵做调整得到公式(6)。

Ein(w))=1Nn=1N(wTxnyn)2=1Nn=1N(xTnwyn)2()=1NxT1xT1...xT1wy1y2...yn2()=1NXTN×(d+1)w(d+1)×1yN×12=1NxT1wy1xT2wy2...xTNwyN2()(6)

根据公式(6),那么 Ein(w)的最小值如公式(7)所示。

minwEin(w)=minw1NXTwy2(7)

Ein(w)的变化图如图二所示,可以看出这是一个连续(continuous)、可微(differentiable)的凸(convex)函数。最小值就是山谷的点(即转折点),并且对这个点求导的值为0。
Ein Curve

图二 Ein Curve [1]

所以接下来,我们需要对Ein(w)求导并且找到一个值 WLIN,使得 Ein(w) 的值为0。
1. 首先我们需要考虑两种情况:①只有一个w; ②w为向量
2. 首先我们把公式(6)平方去掉
3. 只有一个w的时候,就按照正常的求导方式求导即可,得到公式(7)
4. 当w为向量的时候,我们需要对其中一个进行转置,然后再求导,得到公式(8)
5. 根据公式(7)(8)可以看出,两种情况的求导的结果非常相似,可以用公式(9)表示
6. 最后我们令公式(9)的值为0,得到我们需要的 WLIN 如公式(10)所示,其中 X 叫做矩阵X的伪逆矩阵(pseudo-inverse)

onew:Ein(w)Ein(w)=1N((XT)Xw22XTyw+y2)=1N(2(XT)Xw2XTy)(7)

vectorw:Ein(w)Ein(w)=1N((XT)XwTw2XTywT+y2)=1N(2(XT)Xw2XTy)(8)

Ein(w)=2N((XT)XwXTy)(9)

WLIN=(XTX)1XTXy=X(d+1)×N)yN×1(10)

4) Generalization Issue

上一节中,我们得到了最佳的 w 的解,但是,哪个是最小的 Ein, 实际上我们最需要的是使得 Eout最小,而我们这一节就是要讨论之前关于VC Bound保证了 EinEout 是否依然适用于线性回归问题。(中间解释过程较复杂,后续补充。)

结论就是得到了 EinEout关于 noise level的方程,如公式(11)(12),曲线图如图三所示。

Ein(w)=noiselevel(1d+1N)(11)

Eout(w)=noiselevel(1+d+1N)(12)

Ein Eout Curve

图三 Ein Eout Curve[2]

可以看出在N趋于无穷大时,与两者都会趋近于noise level的值,即 σ2 泛化错误之间的差距:2(d+1)N

至此可以表明在线性回归中可以寻找到很好的 Eout,因此线性回归可以学习。

5) Linear Regression for Binary Classification

这一节,我们主要讨论能否通过求解线性回归的方式求二元分类问题

首先对比Linear Classification 和 Linear Regression, 如图四

Linear Classification and Linear Regression

图四 Linear Classification and Linear Regression[3]

从求解问题的难度考虑,二元分类的求解是一个NP难问题,只能近似求解,而线性回归求解方便,程序编写也简单。

直觉告诉我们:因为二元分类的输出空间{-1,+1}属于线性回归的输出空间,即 {1,+1}R。其中数据集的标记大于零的表示+1,小于零的表示-1,通过线性回归求得的解析解 WLIN,直接得出最优假设 g(x)=sign(WLINx)

下面给出证明:

入手点:误差大小

首先对比两种方法的曲线图,如图五所示。
Relations of Two Errors

图五 Relations of Two Errors[3]

可以发现,无论期望的y为-1还是+1, errsqr 始终大于 err0/1,即公式(13),加上我们之前有的 EoutEin,那么我们可以得到公式(14)。

err0/1errsqr(13)

ClassificationEout(w)ClassificationEin(w)+8Nln(4(2N)dvcδ)RegressionEin(w)+8Nln(4(2N)dvcδ)(14)

所以我们可以通过使用 Linear Regression 的方法来求解Linear Classification的问题,虽然通过这种方法,得到的误差可能更大,但却是一种更有效率的求解方式。在实际运用中,一般都将通过线性回归求得的解析解作为PLA或者pocket的初始值,达到快速求解的目的 。

Summary

  1. 首先介绍了Regression。
  2. 然后通过例子引入Linear Regression,分别介绍Linear Regression的误差方程,算法流程。
  3. 接着我们引入VC Bound 解释了Linear Regression为什么可以实现学习。
  4. 最后我们应用Linear Regression的算法到Classification的问题中:虽然会损失一定的准确度,但是效率提升很大。

Reference

[1] 机器学习基石(台湾大学-林轩田)\9\9 - 1 - Linear Regression Problem (10-08)

[2] 机器学习基石(台湾大学-林轩田)\9\9 - 3 - Generalization Issue (20-34)

[3] 机器学习基石(台湾大学-林轩田)\9\9 - 4 - Linear Regression for Binary Classification (11-23)