24秋机器学习笔记-01-线性回归

Last updated on October 24, 2024 10:00 PM

本文主要涉及线性回归(Linear Regression)
一键回城

基本定义

记号约定:

  • D={(xi,yi)}D = \{(x_i,y_i)\} 为训练集,其中 xiRd,yRx_i \in \mathbb{R}^d,y\in \mathbb{R}
  • 线性模型:f(x)=wTx+bf(x) = w^Tx + b,其中 wRd,bRw\in \mathbb{R}^d,b \in R,分别称为权重(weight)和偏置(bias)。
    ww 本质上是在对 xx 的每一维进行加权求和。

模型训练的原则:经验风险最小化(ERM, empirical risk minimization)

在做的事情就是最小化训练数据集上的损失。

定义损失函数(loss function)L(w,b)L(w,b),在线性回归中我们使用平方损失(squared loss),表达式为:

minw,b1ni[n](yif(xi))2\min_{w,b} \frac{1}{n}\sum_{i \in [n]}(y_i - f(x_i))^{2}

为了使这个表达式达到最小值,我们对其求梯度(gradient):

L(w,b)w=i[n]2(yiwTxib)(wTxi)w=i[n]2xi(yiwTxib)L(w,b)b=i[n]2(yiwTxib)\begin{aligned} \frac{\partial L(w,b)}{\partial w} &= -\sum_{i \in [n]}2(y_i - w^Tx_i - b)\cdot \frac{\partial (w^Tx_i)}{\partial w} \\ &= -\sum_{i \in [n]}2x_i(y_i - w^Tx_i - b) \\ \frac{\partial L(w,b)}{\partial b} &= -\sum_{i \in [n]}2(y_i - w^Tx_i - b) \end{aligned}

番外:矩阵/向量运算的求导

常见的公式:

  • xTxx=2x\displaystyle \frac{\partial x^Tx}{\partial x} = 2x
  • xTAxx=(A+AT)x\displaystyle \frac{\partial x^TAx}{\partial x} = (A + A^T)x
  • aTxx=a\displaystyle \frac{\partial a^Tx}{\partial x} = a

原则是 f(x)x\displaystyle \frac{\partial f(x)}{\partial x} 的形状(shape)应与 xx 一致,根据这个原则可以凑(?)
更多可以查阅 Matrix Cookbook

然后利用梯度下降法(gradient descent, GD)对 wwbb 的值进行更新,具体地:

wwαLwbbαLb\begin{aligned} w' &\gets w - \alpha \cdot \frac{\partial L}{\partial w} \\ b' &\gets b - \alpha \cdot \frac{\partial L}{\partial b} \end{aligned}

其中 α\alpha学习率(learning rate, LR),是预先指定的超参数(hyperparameter),代表 w,bw,b 每次往梯度方向走的“步长”。

闭式解讨论

以上属于是数值方法,但对于线性回归而言,其是有闭式解(closed-form solution)的,我们就没有必要使用数值方法(其具有一定的随机性,且有不可避免的误差,此处不过多讨论)

为了方便,我们令 X:=[x1T1xnT1]Rn×(d+1)\displaystyle X:=\begin{bmatrix} x_1^T & 1 \\ \vdots & \vdots \\ x_n^T & 1 \end{bmatrix} \in \mathbb{R}^{n\times (d+1)}W^:=[wb]Rd+1\hat{W} := \begin{bmatrix} w \\ b \\\end{bmatrix} \in \mathbb{R}^{d+1}y:=[y1yn]Rny:= \begin{bmatrix} y_1 \\ \vdots \\ y_n \\\end{bmatrix} \in \mathbb{R}^n,这样可以把参数都放进一个 W^\hat{W} 里面,我们需要优化的目标就可以变成 yXW^T2\left\| y - X\hat{W}^T \right\|^2,为了对其求梯度,我们将其写成如下形式:

L(W^)=(yXW^)T(yXW^)=yTyyTXW^W^TXTy+W^TXTXW^=yTy2yTXW^+W^TXTXW^L(W^)W^=2XTy+2XTXW^=2XT(yXW^)\begin{aligned} L(\hat{W}) &= (y - X \hat{W})^T(y - X \hat{W}) \\ &= y^Ty - y^TX \hat{W} - \hat{W}^T X^T y + \hat{W}^T X^T X \hat{W}\\ &= y^Ty - 2y^TX \hat{W} + \hat{W}^T X^T X \hat{W}\\ \frac{\partial L(\hat{W})}{\partial \hat{W}} &= -2 X^T y + 2 X^T X \hat{W}\\ &= -2 X^T(y - X \hat{W}) \end{aligned}

LW^=0\displaystyle \frac{\partial L}{\partial \hat{W}} = 0 可以知道 XTy=XTXW^X^Ty = X^TX \hat{W}。解的情况需要取决于 XTXX^TX 的可逆性。

  • XTXX^TX 可逆,则 W^=(XTX)1XTy\hat{W} = (X^TX)^{-1} X^Ty,这是最简单的情况。
  • XTXX^TX 不可逆,则 XTXX^TX 为奇异阵,一般有两种原因:
    • d+1>nd+1>n,直觉上来看就是数据点太少,有不等式 rank(XTX)=rank(X)min(n,d+1)=n<d+1\operatorname{rank}(X^TX) = \operatorname{rank}(X) \le \min(n, d+1) = n < d + 1。而 XTXR(d+1)×(d+1)X^TX \in \mathbb{R}^{(d+1)\times (d+1)},所以不可逆。这种情况一般比较罕见。
    • d+1nd+1\le n,直觉上来看是有多余的特征维度XX 中有重复的列,导致不满秩。

而不论如何,若 XTXX^TX 不可逆,都意味着有多组 W^\hat{W} 的可行解。下面证明解一定存在:

假设其无解,根据线性方程组的理论,说明 rank(XTX)<rank(XTXXTy)\operatorname{rank}(X^TX) < \operatorname{rank}(X^TX \mid X^Ty),但这种情况显然不可能发生,于是线性回归的 W^\hat{W} 要么解唯一,要么有无穷解事实上,无穷的情况会比较不好处理

岭回归(Ridge Regression)

采用了 L2-正则化的线性回归称为岭回归。L2-正则化的意思是在损失函数后面追加一个正则化项 λW^2\lambda \cdot \left\| \hat{W} \right\|^2,以惩罚权重过大的模型(weight decay)

现在的损失函数为:

L(W^)=minW^{(yXW^)T(yXW^)+λW^TW^}L(\hat{W}) =\min_{\hat{W}}\left\{ (y - X \hat{W})^T (y - X \hat{W}) + \lambda \hat{W}^T \hat{W} \right\}

令其梯度为 00 尝试推导闭式解:

2XT(yXW^)+2λW^=0XTyXTXW^=λW^(XTX+λI)W^=XTy\begin{aligned} -2X^T(y - X \hat{W}) + 2 \lambda \hat{W} &= 0 \\ X^Ty - X^TX \hat{W} &= \lambda \hat{W}\\ (X^TX + \lambda I) \hat{W} &= X^Ty \end{aligned}

接下来我们说明 XTX+λIX^TX + \lambda I 一定是非奇异阵。

由于 XTXX^TX 为实对称矩阵,所以对其特征值分解可以得到

XTX=UΛUT=U[λ1λd+1]UTX^TX = U \Lambda U^T = U \begin{bmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_{d+1} \\\end{bmatrix} U^T

XTXX^TX 半正定(为什么,考虑 v0\forall v \ne 0,我们有 vTXTXv=Xv20v^T X^T X v = \left\| Xv \right\|^2\ge 0),λ1λ2λd+10\lambda_1 \ge \lambda 2 \ge \cdots \ge \lambda_{d+1} \ge 0

那我们对 XTX+λIX^TX + \lambda I 也做同样操作:

XTX+λI=U(Λ+λI)UTX^TX + \lambda I = U (\Lambda + \lambda I) U^T

λ>0\lambda > 0Λ+λI\Lambda + \lambda I 是正定阵,于是 XTX+λIX^TX + \lambda I 也是正定阵,一定可逆。

所以加上 L2-Norm 后,W^\hat{W} 是一定有唯一解的:(XTX+λI)1XTy(X^TX + \lambda I)^{-1} X^Ty

加上 L2-Norm 的好处还有一方面:考虑 XTXX^TX 的特征值分解 Udiag{λ1,,λd+1}UTU \operatorname{diag}\{\lambda_1, \cdots ,\lambda_{d+1}\}U^T,一般而言有 λd+10\lambda_{d+1}\to 0。而 (XTX)1=UΛ1UT=Udiag{λ11,,λd+11}UT(X^TX)^{-1} = U \Lambda^{-1} U^T = U \operatorname{diag} \{\lambda_1^{-1}, \cdots , \lambda_{d+1}^{-1}\}U^T,数值稳定性就不太好。不过加上了正则化项之后,求完逆的最后一个特征值即为 1λd+1+λ\displaystyle \frac{1}{\lambda_{d+1}+\lambda},不容易出现 numerical issues。

Lasso 回归

L1-Norm:

minW^L(W^)+λW^\min_{\hat{W}} L(\hat{W} ) + \lambda \left\| \hat{W} \right\|

相当于希望 W^\hat{W} 的大多数维度为空,即希望一个稀疏的 W^\hat{W},可以理解为一种特征选择

带上 L1 正则化项的线性回归称为 Lasso 回归(Least Absolute Shrinkage and Selection Operator)

最小二乘

另一种理解线性回归的方式。

理想情况下,我们希望 XW^=yX \hat{W} = y。但事实是,yy 可能压根不在 XX 的列空间里面,所以并不存在这样的 W^\hat{W}

那么我们自然希望找到一个 y^\hat{y},满足 y^\hat{y}col(X)\operatorname{col}(X) 里面,并且这个 y^\hat{y} 与我们希望的 yy“差距最小”。

所以,yy^col(X)y - \hat{y} \perp \operatorname{col}(X)。即 XT(yy^)=0X^T(y - \hat{y}) = 0,所以

XTXW^=XTyX^TX \hat{W} = X^Ty

这与我们之前利用 ERM 推导的结果是相符的。


24秋机器学习笔记-01-线性回归
https://blog.imyangty.com/note-ml2024fall/linear-regression/
Author
YangTY
Posted on
September 11, 2024
Licensed under