台大机器学习基石 Lecture 9 - Linear Regression

本文深入讲解线性回归算法原理及实现过程,包括误差衡量、最小二乘法求解及封闭形式解等内容,并探讨线性回归在二元分类中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这节课开始介绍一些常见算法,这次Lecture介绍了最常见的Linear Regression线性回归算法。

Linear Regression Problem

在Linear Regression模型下的hypothesis为h(x) = \sum_{i = {0}}^{d} w_ix_i = w^Tx,特征集为d维,加上常数项后就为d + 1维(所以注意i从0开始)。在线性回归中,误差的衡量常采用平方误差(squared error):err(\hat{y}_n,y_n) = (\hat{y}_n-y_n)^2,相关的记号已经在上一节课解释过啦~

而Linear Regression的目标就是找到一条直线(平面)来使得残差(residuals)最小,根据之前的知识我们很容易知道,在机器学习中这分为in-sample和out-of-sample两部分,根据之前关于VC Bound延伸的证明,只要研究E_{in}就可以了。

E_{in}(h) = \frac{1}{N}\sum_{n=1}^N(\hat{y}_n - y_n)^2 = \frac{1}{N}\sum_{n=1}^N(h(x_n) - y_n)^2

\Rightarrow E_{in}(w) = \frac{1}{N}\sum_{n=1}^N(w^Tx_n-y_n)^2

我们将E_{in}从一个以x为变量的函数,转化为了一个以w为变量的函数,从而我们只要寻找E_{in}(w)\sim w的最小值就可以得到最优的结果。要注意的是这里的输入集(x,y)中x和y都是可能带noise的,但是这并不影响。

根据红色石头笔记,这是采用最小二乘法的方法来测量错误,但有以下注意点——

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

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

主要就是在使用最小二乘法在线性与非线性时对应解法的区别。

Linear Regression Algorithm

现在的问题就转化为了如何求E_{in}(w)

E_{in}({w}) = \frac{1}{N}\sum_{n=1}^{N}(\color{Blue}{w^T} \color{Red}{x_n} \color{black}{-} \color{Purple}{y_n} \color{black})^2=\frac{1}{N}\sum_{n=1}^{N}(\color{red}{x_n^T} \color{blue}{w} \color{black}{-} \color{Purple}{y_n} \color{black})^2(利用向量内积可交换让式子美观些)

= \frac{1}{N}\begin{Vmatrix} \color{red}{x_1^T}\color{blue}{w}-\color{Purple}{y_1}\\\ \color{red}{x_2^T}\color{blue}{w}-\color{Purple}{y_2}\\\ ...\\\ \color{red}{x_N^T}\color{blue}{w}-\color{Purple}{y_N} \end{Vmatrix}^2= \frac{1}{N} \begin{Vmatrix} \color{red}{\begin{bmatrix} --x_1^T--\\\ --x_2^T--\\\ ...\\\ --x_N^T-- \end{bmatrix}} \color{blue}{w} \color{black}{-} \color{Purple}{\begin{bmatrix} y_1\\\ y_2\\\ ...\\\ y_3 \end{bmatrix}} \end{Vmatrix}^2(连加一串的w_{LIN}平方可以写成整个向量长度的平方)

= \frac{1}{N}\left \| \color{red}{X} \color{blue}{w} \color{black}{-} \color{Purple}{y} \color{black} \right \|^2X为N * (d + 1),w为(d + 1) * 1,y为N * 1)

从而我们得到\underset{\color{blue}{w} \color{black}}{min}E_{in}(\color{blue}{w} \color{black}) = \frac{1}{N}\left \| \color{red}{X} \color{blue}{w} \color{black}{-} \color{Purple}{y} \color{black} \right \|^2,是一个以w为变量的函数,连续(continuous)、处处可微(differentiable)的凸函数(convex)。

对于求这类函数的极值,只要让其一阶导数 = 0,对于多元函数,只要各方向偏导数 = 0,函数在某点梯度 = 0。

E_{in}(\color{blue}{w} \color{black})\equiv \begin{bmatrix} \frac{\partial E_{in}}{\partial \color{blue}{w}_0 \color{black}}(\color{blue}{w} \color{black})\\ \frac{\partial E_{in}}{\partial \color{blue}{w}_1 \color{black}}(\color{blue}{w} \color{black})\\ ...\\ \frac{\partial E_{in}}{\partial \color{blue}{w}_d \color{black}}(\color{blue}{w} \color{black}) \end{bmatrix} = \begin{bmatrix} 0\\ 0\\ ...\\ 0 \end{bmatrix},找到这样的w_{LIN}就可以。

w将式子展开——

E_{in}(\color{blue}{w} \color{black}) = \frac{1}{N}\left \| \color{red}{X} \color{blue}{w} \color{black}{-} \color{Purple}{y} \color{black} \right \|^2 = \frac{1}{N}(\color{blue}{w^T} \color{red}{X^TX} \color{blue}{w} \color{black} - 2\color{blue}{w^T} {\color{DarkRed}{X^Ty} } + \color{Purple}{y^Ty})

从一维向高维来推广

 所以有:

\triangledown E_{in}( {\color{Blue}{w}}) = \triangledown \frac{1}{N}({\color{Blue}{w^T}} {\color{Red}{X^TX}} {\color{Blue}{w}}-2{\color{Blue}{w^T}}{\color{DarkRed} X^Ty}+{\color{Purple}{y^Ty}})=\frac{2}{N}({\color{red}{X^TX}}{\color{blue}{w}}-{\color{DarkRed}{X^Ty}}) = {\color{Orange}0}

于是,我们就得到了关于最优解时关于w的方程

  • {\color{Red}X^TX}可逆,也就是上文提到的closed-form解,就有{\color{Blue}w_{LIN}} = ({\color{Red}X^TX})^{-1} {\color{Red}X^T}{\color{Purple}{y}} = {\color{Red}X^\dagger} {\color{Purple}{y}},其中{\color{Red}X^\dagger} = ({\color{Red}X^TX})^{-1} {\color{Red}X^T}是伪逆矩阵(pseudo-inverse)
  • {\color{Red}X^TX}不可逆,这时求出广义逆矩阵{\color{Red}X^\dagger}

用以{\color{Blue}w_{LIN}}为参数的线性方程对原始数据做预测,可以得到拟合值\hat{y}=\color{Red}{X}\color{Blue}{w_{LIN}}={\color{red}{XX^{\dagger}}}\color{Purple}{y},其中{\color{Orange} H} = {\color{red}{XX^{\dagger}}}称为帽子矩阵(Hat Matrix)。

于是Linear Regression Algorithm的流程如下——

Generalization Issue

现在的问题是,\color{Blue}{w_{LIN}}={\color{red}{X^{\dagger}}}\color{Purple}{y}是否是一个机器学习算法?

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

我们先看一下Hat Matrix {\color{Orange}H}几何含义

 在N维实数空间\mathbb{R}^N中,X是N * (d + 1)的

  • \hat{y}=\color{Red}{X}\color{Blue}{w_{LIN}}\color{red}X的一个线性组合,\color{red}X的一个column对应\mathbb{R}^N下的一个向量,共有d + 1个向量,\hat{y}在这d + 1个向量所构成的平面{\color{Red} span}上;
  • 所以我们就是要在这个平面{\color{Red} span}上找到一个向量\hat{y}使得它与真实值之间距离|y-\hat{y}|最短。那么只要\hat{y}y在平面上的投影,也就是(y-\hat{y})\perp \color{red}{span}时,|y-\hat{y}|最短;
  • 之前的Hat Matrix {\color{Orange}H}就是进行投影的矩阵。有{\color{Orange}H}{\color{Purple}y} = \hat{y}(I-{\color{Orange}{H}}){\color{Purple}{y}}={\color{Purple}y}-\hat{y}I是单位矩阵)
  • {\color{Orange}{H}} = {\color{red}X} ( {\color{red}X^TX}) ^{-1} {\color{red}{X^T}}

接下来探究一下{\color{Orange}H}的性质——

  • 对称性(symetric),即{\color{Orange}H}=\color{Orange}{H^T}

  • 幂等性(idempotent),即{\color{Orange}H^2} = {\color{Orange}H}

  • 半正定(positive semi-definite),即所有特征值为非负数:(以下\lambda为特征值,b为对应的特征向量)

  • trace(I-{\color{Orange}{H}}) = N-(d+1) ,trace是矩阵的迹。用物理意义来解释这个式子——

假设y = {\color{Red} f(x)\in span} + noise,之前已经讲了{\color{Orange}H}作用于向量是得到向量在{\color{Red} span}上的投影,而I - {\color{Orange}H}作用于向量得到与{\color{Red} span}垂直的向量,于是(I - {\color{Orange}H})noise = y - \hat{y}

 因此就平均而言,有:

{\color{red}{\overline{E_{in}}}}=\text{noise level}\cdot(1-\frac{d+1}{N})

{\color{blue}{\overline{E_{out}}}}=\text{noise level}\cdot(1+\frac{d+1}{N})这个式子的推导就比较复杂了...

我们就发现{\color{red}{\overline{E_{in}}}}{\color{blue}{\overline{E_{out}}}}都收敛于\sigma ^2(noise level),并且他们之间的差被\frac{2(d + 1)}{N}限制住。

虽然与VC Bound不同,VC Bound是通过最差错误概率来推导E_{in}E_{out}接近,这里是从平均的角度,仍然能证明LinReg算法能够学习!

Linear Regression for Binary Classification

现在有一个问题就是能不能让线性回归来作线性分类问题呢?

我们看到有下面的差异——

那么如果我们用\{-1, +1\} \subset \mathbb{R}来做线性分类呢?

  • 直观来看,却是可以替代,只是少算了一个sign()的步骤,并且LinReg效率更高;
  • 作图来看LinReg的曲线一直在LinClassfication的线之上,因此可以作为linear classification的宽松错误上界。

这里的trade-off的对象是算法的效率与error bound的紧密程度

实际中甚至可以先做一个regression来求一个初始化参数值,然后再应用诸如PLA/Pocket这类的算法降低error。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值