Processing math: 100%

[ML Notes] 线性回归:正则化

1. L2 正则化,岭回归

  对如前文所述的线性模型 f(x) 和代价函数 J(w)

f(x)=w0+w1x1+w2x2++wnxn=w0+ni=1wixi=wTx

J(w)=12mi=1(y(i)f(x(i)))2

岭回归(Ridge Regression)通过在代价函数上添加一个额外的项 12αni=1w2i,来缩小模型参数,此时代价函数变为

Jridge(w)=12mi=1(y(i)f(x(i)))2+12αni=1w2i

其中 α 为正则化系数,ni=1w2i 为参数 w 的 L2 范数的平方,即 ||w||22=wTw。注意这里的 i1 开始,不对偏置 w0 进行正则化。

  使用前文的符号,式 (1) 和式 (3) 又可以写成

f(X)=Xw

Jridge(w)=12||yXw||22+12α||w||22=12(yXw)T(yXw)+12αwTw

类似地,计算梯度

wJridge(w)=XTXwXTy+αw=(XTX+αI)wXTy

wJridge(w)=0,有

(XTX+αI)wXTy=0

(XTX+αI)w=XTy

w=(XTX+αI)1XTy

注意只对权重 w1,w2,,wn 进行正则化,而不对偏置 w0 作正则化,因此上式中的 I 是一个 n×n 的单位矩阵,但左上角的元素为 0

2. L1 正则化,Lasso 回归

  Lasso 回归使用权重 L1 范数作为正则化项,此时的代价函数为

Jlasso(w)=12mi=1(y(i)f(x(i)))2+αni=1|wi|

或者写为

Jlasso(w)=12||yXw||22+α||w||1=12(yXw)T(yXw)+αni=1|wi|

其梯度为

Jlasso(w)=J(w)+αni=1sign(wi)

其中

sign(wi)={1ifwi<00ifwi=01ifwi>0