Last updated on October 24, 2024 10:00 PM
本文主要涉及线性回归(Linear Regression)
一键回城。
基本定义
记号约定:
- D={(xi,yi)} 为训练集,其中 xi∈Rd,y∈R;
- 线性模型:f(x)=wTx+b,其中 w∈Rd,b∈R,分别称为权重(weight)和偏置(bias)。
w 本质上是在对 x 的每一维进行加权求和。
模型训练的原则:经验风险最小化(ERM, empirical risk minimization)
在做的事情就是最小化训练数据集上的损失。
定义损失函数(loss function)L(w,b),在线性回归中我们使用平方损失(squared loss),表达式为:
w,bminn1i∈[n]∑(yi−f(xi))2
为了使这个表达式达到最小值,我们对其求梯度(gradient):
∂w∂L(w,b)∂b∂L(w,b)=−i∈[n]∑2(yi−wTxi−b)⋅∂w∂(wTxi)=−i∈[n]∑2xi(yi−wTxi−b)=−i∈[n]∑2(yi−wTxi−b)
番外:矩阵/向量运算的求导
常见的公式:
- ∂x∂xTx=2x
- ∂x∂xTAx=(A+AT)x
- ∂x∂aTx=a
原则是 ∂x∂f(x) 的形状(shape)应与 x 一致,根据这个原则可以凑(?)
更多可以查阅 Matrix Cookbook。
然后利用梯度下降法(gradient descent, GD)对 w 和 b 的值进行更新,具体地:
w′b′←w−α⋅∂w∂L←b−α⋅∂b∂L
其中 α 为学习率(learning rate, LR),是预先指定的超参数(hyperparameter),代表 w,b 每次往梯度方向走的“步长”。
闭式解讨论
以上属于是数值方法,但对于线性回归而言,其是有闭式解(closed-form solution)的,我们就没有必要使用数值方法(其具有一定的随机性,且有不可避免的误差,此处不过多讨论)
为了方便,我们令 X:=⎣⎢⎢⎡x1T⋮xnT1⋮1⎦⎥⎥⎤∈Rn×(d+1),W^:=[wb]∈Rd+1,y:=⎣⎢⎢⎡y1⋮yn⎦⎥⎥⎤∈Rn,这样可以把参数都放进一个 W^ 里面,我们需要优化的目标就可以变成 ∥∥∥∥y−XW^T∥∥∥∥2,为了对其求梯度,我们将其写成如下形式:
L(W^)∂W^∂L(W^)=(y−XW^)T(y−XW^)=yTy−yTXW^−W^TXTy+W^TXTXW^=yTy−2yTXW^+W^TXTXW^=−2XTy+2XTXW^=−2XT(y−XW^)
令 ∂W^∂L=0 可以知道 XTy=XTXW^。解的情况需要取决于 XTX 的可逆性。
- 若 XTX 可逆,则 W^=(XTX)−1XTy,这是最简单的情况。
- 若 XTX 不可逆,则 XTX 为奇异阵,一般有两种原因:
- d+1>n,直觉上来看就是数据点太少,有不等式 rank(XTX)=rank(X)≤min(n,d+1)=n<d+1。而 XTX∈R(d+1)×(d+1),所以不可逆。这种情况一般比较罕见。
- d+1≤n,直觉上来看是有多余的特征维度,X 中有重复的列,导致不满秩。
而不论如何,若 XTX 不可逆,都意味着有多组 W^ 的可行解。下面证明解一定存在:
假设其无解,根据线性方程组的理论,说明 rank(XTX)<rank(XTX∣XTy),但这种情况显然不可能发生,于是线性回归的 W^ 要么解唯一,要么有无穷解。事实上,无穷的情况会比较不好处理。
岭回归(Ridge Regression)
采用了 L2-正则化的线性回归称为岭回归。L2-正则化的意思是在损失函数后面追加一个正则化项 λ⋅∥∥∥∥W^∥∥∥∥2,以惩罚权重过大的模型(weight decay)
现在的损失函数为:
L(W^)=W^min{(y−XW^)T(y−XW^)+λW^TW^}
令其梯度为 0 尝试推导闭式解:
−2XT(y−XW^)+2λW^XTy−XTXW^(XTX+λI)W^=0=λW^=XTy
接下来我们说明 XTX+λI 一定是非奇异阵。
由于 XTX 为实对称矩阵,所以对其特征值分解可以得到
XTX=UΛUT=U⎣⎢⎡λ1⋱λd+1⎦⎥⎤UT
且 XTX 半正定(为什么,考虑 ∀v=0,我们有 vTXTXv=∥Xv∥2≥0),λ1≥λ2≥⋯≥λd+1≥0。
那我们对 XTX+λI 也做同样操作:
XTX+λI=U(Λ+λI)UT
λ>0,Λ+λI 是正定阵,于是 XTX+λI 也是正定阵,一定可逆。
所以加上 L2-Norm 后,W^ 是一定有唯一解的:(XTX+λI)−1XTy。
加上 L2-Norm 的好处还有一方面:考虑 XTX 的特征值分解 Udiag{λ1,⋯,λd+1}UT,一般而言有 λd+1→0。而 (XTX)−1=UΛ−1UT=Udiag{λ1−1,⋯,λd+1−1}UT,数值稳定性就不太好。不过加上了正则化项之后,求完逆的最后一个特征值即为 λd+1+λ1,不容易出现 numerical issues。
Lasso 回归
L1-Norm:
W^minL(W^)+λ∥∥∥∥W^∥∥∥∥
相当于希望 W^ 的大多数维度为空,即希望一个稀疏的 W^,可以理解为一种特征选择。
带上 L1 正则化项的线性回归称为 Lasso 回归(Least Absolute Shrinkage and Selection Operator)
最小二乘
另一种理解线性回归的方式。
理想情况下,我们希望 XW^=y。但事实是,y 可能压根不在 X 的列空间里面,所以并不存在这样的 W^。
那么我们自然希望找到一个 y^,满足 y^ 在 col(X) 里面,并且这个 y^ 与我们希望的 y“差距最小”。
所以,y−y^⊥col(X)。即 XT(y−y^)=0,所以
XTXW^=XTy
这与我们之前利用 ERM 推导的结果是相符的。