Jerry's Blog

Back

数学工具 2:Ridge 问题#

这篇是数学工具集合里的第二个工具:Ridge 问题

Ridge 问题就是在普通最小二乘问题后面加一个 L2 正则项 的优化问题,也叫 ridge regression,中文常译为岭回归

在前面的记号里,普通 least squares 是:

h=argminh12xDh22h^\star=\arg\min_h \frac{1}{2}\|x-Dh\|_2^2

Ridge 问题是:

h=argminh[12xDh22+λ2h22]h^\star=\arg\min_h \left[ \frac{1}{2}\|x-Dh\|_2^2 + \frac{\lambda}{2}\|h\|_2^2 \right]

其中:

xx

是你想表示的数据;

DD

是字典矩阵、特征矩阵或设计矩阵;

hh

是要求的系数;

λ0\lambda\geq 0

是正则化强度。


1. Ridge 在惩罚什么?#

Ridge 惩罚的是:

h22\|h\|_2^2

展开就是:

h22=h12+h22++hk2\|h\|_2^2 = h_1^2+h_2^2+\cdots+h_k^2

所以 ridge 的完整展开是:

h=argminh1,,hk[12i=1m(xij=1kdijhj)2+λ2j=1khj2]h^\star = \arg\min_{h_1,\ldots,h_k} \left[ \frac{1}{2} \sum_{i=1}^{m} \left( x_i-\sum_{j=1}^{k}d_{ij}h_j \right)^2 + \frac{\lambda}{2} \sum_{j=1}^{k}h_j^2 \right]

第一项:

12xDh22\frac{1}{2}\|x-Dh\|_2^2

要求 DhDh 尽量接近 xx

第二项:

λ2h22\frac{\lambda}{2}\|h\|_2^2

要求 hh 不要太大。

所以 ridge 同时做两件事:

拟合数据+压小系数\text{拟合数据}+\text{压小系数}

2. 为什么要加 Ridge?#

普通最小二乘的解析解是:

h=(DD)1Dxh^\star=(D^\top D)^{-1}D^\top x

但这个公式有一个问题:如果

DDD^\top D

不可逆,或者非常接近不可逆,那么解会不稳定。

例如特征之间高度相关时,普通最小二乘可能会得到很大的系数:

h1=1000,h2=999h_1=1000,\quad h_2=-999

虽然它们组合后可能能拟合数据,但这种解非常脆弱。数据稍微变化一点,系数就可能剧烈变化。

Ridge 会惩罚大系数,所以会倾向于得到更平滑、更稳定的解。


3. Ridge 的解析解怎么推导?#

Ridge 目标函数是:

J(h)=12xDh22+λ2h22J(h) = \frac{1}{2}\|x-Dh\|_2^2 + \frac{\lambda}{2}\|h\|_2^2

先展开第一项:

xDh22=(xDh)(xDh)\|x-Dh\|_2^2 = (x-Dh)^\top(x-Dh)

展开乘法:

(xDh)(xDh)=xxxDh(Dh)x+(Dh)Dh(x-Dh)^\top(x-Dh) = x^\top x - x^\top Dh - (Dh)^\top x + (Dh)^\top Dh

因为

xDhx^\top Dh

是一个标量,所以:

xDh=(Dh)xx^\top Dh=(Dh)^\top x

同时:

(Dh)x=hDx(Dh)^\top x = h^\top D^\top x

以及:

(Dh)Dh=hDDh(Dh)^\top Dh = h^\top D^\top D h

因此:

xDh22=xx2hDx+hDDh\|x-Dh\|_2^2 = x^\top x - 2h^\top D^\top x + h^\top D^\top D h

Ridge 目标变成:

J(h)=12(xx2hDx+hDDh)+λ2hhJ(h) = \frac{1}{2} \left( x^\top x - 2h^\top D^\top x + h^\top D^\top D h \right) + \frac{\lambda}{2}h^\top h

继续整理:

J(h)=12xxhDx+12hDDh+λ2hhJ(h) = \frac{1}{2}x^\top x - h^\top D^\top x + \frac{1}{2}h^\top D^\top D h + \frac{\lambda}{2}h^\top h

hh 求梯度:

hJ(h)=Dx+DDh+λh\nabla_h J(h) = -D^\top x + D^\top D h + \lambda h

合并:

hJ(h)=(DD+λI)hDx\nabla_h J(h) = (D^\top D+\lambda I)h-D^\top x

令梯度等于 00

(DD+λI)hDx=0(D^\top D+\lambda I)h-D^\top x=0

所以:

(DD+λI)h=Dx(D^\top D+\lambda I)h=D^\top x

如果 λ>0\lambda>0,通常

DD+λID^\top D+\lambda I

会变得可逆。

于是得到 ridge 解:

h=(DD+λI)1Dx\boxed{ h^\star=(D^\top D+\lambda I)^{-1}D^\top x }

4. Ridge 和 LASSO 的区别#

LASSO 是:

minh12xDh22+λh1\min_h \frac{1}{2}\|x-Dh\|_2^2+\lambda\|h\|_1

其中:

h1=h1++hk\|h\|_1=|h_1|+\cdots+|h_k|

Ridge 是:

minh12xDh22+λ2h22\min_h \frac{1}{2}\|x-Dh\|_2^2+\frac{\lambda}{2}\|h\|_2^2

其中:

h22=h12++hk2\|h\|_2^2=h_1^2+\cdots+h_k^2

核心区别是:

LASSO:容易让一些 hj 精确变成 0\text{LASSO:容易让一些 }h_j\text{ 精确变成 }0 Ridge:通常只是把 hj 压小,不会精确变成 0\text{Ridge:通常只是把 }h_j\text{ 压小,不会精确变成 }0
方法正则项效果
Least Squares只追求拟合
Ridgeλh22\lambda\|h\|_2^2压小系数,提升稳定性
LASSOλh1\lambda\|h\|_1压小系数,并产生稀疏性

5. 一个最简单的一维例子#

看一维 ridge:

minh12(xh)2+λ2h2\min_h \frac{1}{2}(x-h)^2+\frac{\lambda}{2}h^2

也就是:

J(h)=12(xh)2+λ2h2J(h)=\frac{1}{2}(x-h)^2+\frac{\lambda}{2}h^2

先展开平方:

(xh)2=x22xh+h2(x-h)^2=x^2-2xh+h^2

所以:

J(h)=12x2xh+12h2+λ2h2J(h)=\frac{1}{2}x^2-xh+\frac{1}{2}h^2+\frac{\lambda}{2}h^2

合并 h2h^2 项:

J(h)=12x2xh+1+λ2h2J(h)=\frac{1}{2}x^2-xh+\frac{1+\lambda}{2}h^2

求导:

J(h)=x+(1+λ)hJ'(h)=-x+(1+\lambda)h

令导数为 00

x+(1+λ)h=0-x+(1+\lambda)h=0

所以:

(1+λ)h=x(1+\lambda)h=x

得到:

h=x1+λh^\star=\frac{x}{1+\lambda}

这说明 ridge 会把原来的 xx 缩小:

xx1+λx \mapsto \frac{x}{1+\lambda}

如果:

λ=0\lambda=0

那么:

h=xh^\star=x

如果:

λ=1\lambda=1

那么:

h=x2h^\star=\frac{x}{2}

如果:

λ=9\lambda=9

那么:

h=x10h^\star=\frac{x}{10}

所以 λ\lambda 越大,系数越小。


6. 一句话总结#

Ridge 问题就是在最小二乘后面加 L2 惩罚,让系数变小、解更稳定的问题。

它的标准形式是:

h=argminh[12xDh22+λ2h22]\boxed{ h^\star=\arg\min_h \left[ \frac{1}{2}\|x-Dh\|_2^2 + \frac{\lambda}{2}\|h\|_2^2 \right] }

解析解是:

h=(DD+λI)1Dx\boxed{ h^\star=(D^\top D+\lambda I)^{-1}D^\top x }
数学工具 2:Ridge 问题
https://jerry609.github.io/blog/ridge-regression-l2-regularization
Author Jerry
Published at May 7, 2026
Comment seems to stuck. Try to refresh?✨