红色石头的个人网站:redstonewill.com

上节课,我们主要介绍了在有noise的情况下,VC Bound理论仍然是成立的。同时,介绍了不同的error measure方法。本节课介绍机器学习最常见的一种算法:Linear Regression.

一、线性回归问题

在之前的Linear Classification课程中,讲了信用卡发放的例子,利用机器学习来决定是否给用户发放信用卡。本节课仍然引入信用卡的例子,来解决给用户发放信用卡额度的问题,这就是一个线性回归(Linear Regression)问题。

令用户特征集为d维的XXX,加上常数项,维度为d+1" role="presentation" style="position: relative;">d+1d+1d+1,与权重www的线性组合即为Hypothesis,记为h(x)" role="presentation" style="position: relative;">h(x)h(x)h(x)。线性回归的预测函数取值在整个实数空间,这跟线性分类不同。

h(x)=wTXh(x)=wTX

h(x)=w^TX

根据上图,在一维或者多维空间里,线性回归的目标是找到一条直线(对应一维)、一个平面(对应二维)或者更高维的超平面,使样本集中的点更接近它,也就是残留误差Residuals最小化。

一般最常用的错误测量方式是基于最小二乘法,其目标是计算误差的最小平方和对应的权重w,即上节课介绍的squared error:

这里提一点,最小二乘法可以解决线性问题和非线性问题。线性最小二乘法的解是closed-form,即X=(ATA)−1ATyX=(ATA)−1ATyX=(A^TA)^{-1}A^Ty,而非线性最小二乘法没有closed-form,通常用迭代法求解。本节课的解就是closed-form的。关于最小二乘法的一些介绍,请参见我的另一篇博文:

最小二乘法和梯度下降法的一些总结

二、线性回归算法

样本数据误差EinEinE_{in}是权重www的函数,因为X" role="presentation" style="position: relative;">XXX和yyy都是已知的。我们的目标就是找出合适的w" role="presentation" style="position: relative;">www,使EinEinE_{in}能够最小。那么如何计算呢?

首先,运用矩阵转换的思想,将EinEinE_{in}计算转换为矩阵的形式。

然后,对于此类线性回归问题,Ein(w)Ein(w)E_{in}(w)一般是个凸函数。凸函数的话,我们只要找到一阶导数等于零的位置,就找到了最优解。那么,我们将EwEwE_{w}对每个wi,i=0,1,⋯,dwi,i=0,1,⋯,dw_i,i=0,1,\cdots,d求偏导,偏导为零的wiwiw_i,即为最优化的权重值分布。

根据梯度的思想,对EwEwE_{w}进行矩阵话求偏导处理:

令偏导为零,最终可以计算出权重向量www为:

最终,我们推导得到了权重向量w=(XTX)−1XTy" role="presentation" style="position: relative;">w=(XTX)−1XTyw=(XTX)−1XTyw=(X^TX)^{-1}X^Ty,这是上文提到的closed-form解。其中,(XTX)−1XT(XTX)−1XT(X^TX)^{-1}X^T又称为伪逆矩阵pseudo-inverse,记为X+X+X^+,维度是(d+1)xN。

但是,我们注意到,伪逆矩阵中有逆矩阵的计算,逆矩阵(XTX)−1(XTX)−1(X^TX)^{-1}是否一定存在?一般情况下,只要满足样本数量N远大于样本特征维度d+1,就能保证矩阵的逆是存在的,称之为非奇异矩阵。但是如果是奇异矩阵,不可逆怎么办呢?其实,大部分的计算逆矩阵的软件程序,都可以处理这个问题,也会计算出一个逆矩阵。所以,一般伪逆矩阵是可解的。

三、泛化问题

现在,可能有这样一个疑问,就是这种求解权重向量的方法是机器学习吗?或者说这种方法满足我们之前推导VC Bound,即是否泛化能力强Ein≈EoutEin≈EoutE_{in}\approx E_{out}?

有两种观点:1、这不属于机器学习范畴。因为这种closed-form解的形式跟一般的机器学习算法不一样,而且在计算最小化误差的过程中没有用到迭代。2、这属于机器学习范畴。因为从结果上看,EinEinE_{in}和EoutEoutE_{out}都实现了最小化,而且实际上在计算逆矩阵的过程中,也用到了迭代。

其实,只从结果来看,这种方法的确实现了机器学习的目的。下面通过介绍一种更简单的方法,证明linear regression问题是可以通过线下最小二乘法方法计算得到好的EinEinE_{in}和EoutEoutE_{out}的。

首先,我们根据平均误差的思想,把Ein(wLIN)Ein(wLIN)E_{in}(w_{LIN})写成如图的形式,经过变换得到:

Ein(wLIN)=1N||(I−XX+)y||2=1N||(I−H)y||2Ein(wLIN)=1N||(I−XX+)y||2=1N||(I−H)y||2

E_{in}(w_{LIN})=\frac1N||(I-XX^+)y||^2=\frac1N||(I-H)y||^2

我们称XX+XX+XX^+为帽子矩阵,用H表示。

下面从几何图形的角度来介绍帽子矩阵H的物理意义。

图中,y是N维空间的一个向量,粉色区域表示输入矩阵X乘以不同权值向量w所构成的空间,根据所有w的取值,预测输出都被限定在粉色的空间中。向量y^y^\hat y就是粉色空间中的一个向量,代表预测的一种。y是实际样本数据输出值。

机器学习的目的是在粉色空间中找到一个y^y^\hat y,使它最接近真实的y,那么我们只要将y在粉色空间上作垂直投影即可,投影得到的y^y^\hat y即为在粉色空间内最接近y的向量。这样即使平均误差E¯¯¯¯E¯\overline E最小。

从图中可以看出,y^y^\hat y是y的投影,已知y^=Hyy^=Hy\hat y=Hy,那么H表示的就是将y投影到y^y^\hat y的一种操作。图中绿色的箭头y−y^y−y^y-\hat y是向量y与y^y^\hat y相减,y−y^y−y^y-\hat y垂直于粉色区域。已知(I−H)y=y−y^(I−H)y=y−y^(I-H)y=y-\hat y那么I-H表示的就是将y投影到y−y^y−y^y-\hat y即垂直于粉色区域的一种操作。这样的话,我们就赋予了H和I-H不同但又有联系的物理意义。

这里trace(I-H)称为I-H的迹,值为N-(d+1)。这条性质很重要,一个矩阵的 trace等于该矩阵的所有特征值(Eigenvalues)之和。下面给出简单证明:

trace(I−H)=trace(I)−trace(H)trace(I−H)=trace(I)−trace(H)trace(I-H)=trace(I)-trace(H)
=N−trace(XX+)=N−trace(X(XTX)−1XT=N−trace(XX+)=N−trace(X(XTX)−1XT=N-trace(XX^+)=N-trace(X(X^TX)^{-1}X^T
=N−trace(XTX(XTX)−1)=N−trace(Id+1)=N−trace(XTX(XTX)−1)=N−trace(Id+1)=N-trace(X^TX(X^TX)^{-1})=N-trace(I_{d+1})
=N−(d+1)=N−(d+1)=N-(d+1)

介绍下该I-H这种转换的物理意义:原来有一个有N个自由度的向量y,投影到一个有d+1维的空间x(代表一列的自由度,即单一输入样本的参数,如图中粉色区域),而余数剩余的自由度最大只有N-(d+1)种。

在存在noise的情况下,上图变为:

图中,粉色空间的红色箭头是目标函数f(x),虚线箭头是noise,可见,真实样本输出y由f(x)和noise相加得到。由上面推导,已知向量y经过I-H转换为y−y^y−y^y-\hat y,而noise与y是线性变换关系,那么根据线性函数知识,我们推导出noise经过I-H也能转换为y−y^y−y^y-\hat y。则对于样本平均误差,有下列推导成立:

Ein(wLIN)=1N||y−y^||2=1N||(I−H)noise||2=1N(N−(d+1))||noise||2Ein(wLIN)=1N||y−y^||2=1N||(I−H)noise||2=1N(N−(d+1))||noise||2

E_{in}(w_{LIN})=\frac1N||y-\hat y||^2=\frac1N||(I-H)noise||^2=\frac1N(N-(d+1))||noise||^2

E¯¯¯¯in=noiselevel∗(1−d+1N)E¯in=noiselevel∗(1−d+1N)

\overline E_{in}=noise level\ast (1-\frac{d+1}N)

同样,对EoutEoutE_{out}有如下结论:

E¯¯¯¯out=noiselevel∗(1+d+1N)E¯out=noiselevel∗(1+d+1N)

\overline E_{out}=noise level\ast (1+\frac{d+1}N)

这个证明有点复杂,但是我们可以这样理解:E¯¯¯¯inE¯in\overline E_{in}与E¯¯¯¯outE¯out\overline E_{out}形式上只差了(d+1)N(d+1)N\frac{(d+1)}N项,从哲学上来说,E¯¯¯¯inE¯in\overline E_{in}是我们看得到的样本的平均误差,如果有noise,我们把预测往noise那边偏一点,让E¯¯¯¯inE¯in\overline E_{in}好看一点点,所以减去(d+1)N(d+1)N\frac{(d+1)}N项。那么同时,新的样本E¯¯¯¯outE¯out\overline E_{out}是我们看不到的,如果noise在反方向,那么E¯¯¯¯outE¯out\overline E_{out}就应该加上(d+1)N(d+1)N\frac{(d+1)}N项。

我们把E¯¯¯¯inE¯in\overline E_{in}与E¯¯¯¯outE¯out\overline E_{out}画出来,得到学习曲线:

当N足够大时,E¯¯¯¯inE¯in\overline E_{in}与E¯¯¯¯outE¯out\overline E_{out}逐渐接近,满足E¯¯¯¯in≈E¯¯¯¯outE¯in≈E¯out\overline E_{in}\approx \overline E_{out},且数值保持在noise level。这就类似VC理论,证明了当N足够大的时候,这种线性最小二乘法是可以进行机器学习的,算法有效!

四、Linear Regression方法解决Linear Classification问题

之前介绍的Linear Classification问题使用的Error Measure方法用的是0/1 error,那么Linear Regression的squared error是否能够应用到Linear Classification问题?

下图展示了两种错误的关系,一般情况下,squared error曲线在0/1 error曲线之上。即err0/1≤errsqrerr0/1≤errsqrerr_{0/1}\leq err_{sqr}.

根据之前的VC理论,EoutEoutE_{out}的上界满足:

从图中可以看出,用errsqrerrsqrerr_{sqr}代替err0/1err0/1err_{0/1},EoutEoutE_{out}仍然有上界,只不过是上界变得宽松了。也就是说用线性回归方法仍然可以解决线性分类问题,效果不会太差。二元分类问题得到了一个更宽松的上界,但是也是一种更有效率的求解方式。

五、总结

本节课,我们主要介绍了Linear Regression。首先,我们从问题出发,想要找到一条直线拟合实际数据值;然后,我们利用最小二乘法,用解析形式推导了权重w的closed-form解;接着,用图形的形式得到Eout−Ein≈2(N+1)NEout−Ein≈2(N+1)NE_{out}-E_{in}\approx \frac{2(N+1)}{N},证明了linear regression是可以进行机器学习的,;最后,我们证明linear regressin这种方法可以用在binary classification上,虽然上界变宽松了,但是仍然能得到不错的学习方法。

注明:

文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程

关注公众号并输入关键字“jspdf”获得该笔记的pdf文件哦~

更多AI资源请关注公众号:红色石头的机器学习之路(ID:redstonewill)

台湾大学林轩田机器学习基石课程学习笔记9 -- Linear Regression相关推荐

  1. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  2. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  3. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...

  4. 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine

    红色石头的个人网站:redstonewill.com 关于台湾大学林轩田老师的<机器学习基石>课程,我们已经总结了16节课的笔记.这里附上基石第一节课的博客地址: 台湾大学林轩田机器学习基 ...

  5. 台湾大学林轩田机器学习基石课程学习 笔记资料汇总

    笔记: 红色石头的专栏(写得非常好) 课后练习: 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总 https://download.csdn. ...

  6. 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem

    红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...

  7. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  8. 台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error

    红色石头的个人网站:redstonewill.com 上一节课,我们主要介绍了VC Dimension的概念.如果Hypotheses set的VC Dimension是有限的,且有足够多N的资料,同 ...

  9. 台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

    红色石头的个人网站:redstonewill.com 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满足两个条件: 假设空间H的Size M是有限的,即当N足够大的时候, ...

  10. 台湾大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

    红色石头的个人网站:redstonewill.com 上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypo ...

最新文章

  1. asp导出word中文乱码_解决文档打开乱码问题丨小工具系列
  2. 关于Linux中权限列中的加号及点的深度探索
  3. JavaScript中的数组遍历forEach()与map()方法以及兼容写法
  4. python嵌套字典代码_python – 尝试在嵌套字典中查找唯一值的总和. (见例子!)
  5. 计算机网络应用基础第一章试题,计算机网络应用基础第一章测试题
  6. AfxInitExtensionModule和AfxTermExtensionModule
  7. LeetCode Hot100 ---- 二分查找专题
  8. 软件过程软件Scrum敏捷开发
  9. 运营管理最新版史蒂文森_运营增长人都在看的硬核案例拆解是怎么做的?
  10. vgh电压高了有什么_一文告诉你电压互感器的作用是什么?
  11. sql执行组件是灰色的_如何分析SQL执行计划图形组件
  12. php获取用户当前坐标,web端定位:获取当前地理位置
  13. ArcGIS操作小技巧(四)之拓扑工具条灰色无法操作
  14. Visual C++ 6.0的三个问题---尚未完成安装 MSDEV.EXE 应用程序错误 缺少动态链接库文件
  15. Spring Boot太重,Vert.x真香!
  16. redis c++接口
  17. springboot 启动banner 打印 佛祖保佑
  18. 《痞子衡嵌入式半月刊》 第 70 期
  19. 有限元与深度学习结合求解泊松方程-Petrov
  20. DarkHole_2

热门文章

  1. Beyong Compare过期
  2. 好程序员大数据培训之Hadoop常见问题
  3. vue之使用vue-video-player实现实时视频流播放
  4. 【模板】普通平衡树,洛谷P3369,splay
  5. Android-Skin-Loader换肤框架剖析
  6. Sample Science 909 Lab for Mac - 909鼓声虚拟乐器
  7. Shi-Tomasi角点检测算法
  8. 科普:卡他妈滤波_拔剑-浆糊的传说_新浪博客
  9. 错误:VM5729:1 Blocked script execution in ‘about:blank‘
  10. 基于JSP的鲜花店商城平台【数据库设计、源码、开题报告】