[ML Notes] 线性回归:正则化
Contents [show]
1. L2 正则化,岭回归
对如前文所述的线性模型 f(x) 和代价函数 J(w)
f(x)=w0+w1x1+w2x2+⋯+wnxn=w0+n∑i=1wixi=wTx
J(w)=12m∑i=1(y(i)–f(x(i)))2
岭回归(Ridge Regression)通过在代价函数上添加一个额外的项 12αn∑i=1w2i,来缩小模型参数,此时代价函数变为
Jridge(w)=12m∑i=1(y(i)–f(x(i)))2+12αn∑i=1w2i
其中 α 为正则化系数,n∑i=1w2i 为参数 w 的 L2 范数的平方,即 ||w||22=wTw。注意这里的 i 从 1 开始,不对偏置 w0 进行正则化。
使用前文的符号,式 (1) 和式 (3) 又可以写成
f(X)=Xw
Jridge(w)=12||y–Xw||22+12α||w||22=12(y–Xw)T(y–Xw)+12αwTw
类似地,计算梯度
∇wJridge(w)=XTXw–XTy+αw=(XTX+αI)w–XTy
令 ∇wJridge(w)=0,有
(XTX+αI)w–XTy=0
(XTX+αI)w=XTy
w=(XTX+αI)−1XTy
注意只对权重 w1,w2,⋯,wn 进行正则化,而不对偏置 w0 作正则化,因此上式中的 I 是一个 n×n 的单位矩阵,但左上角的元素为 0。
2. L1 正则化,Lasso 回归
Lasso 回归使用权重 L1 范数作为正则化项,此时的代价函数为
Jlasso(w)=12m∑i=1(y(i)–f(x(i)))2+αn∑i=1|wi|
或者写为
Jlasso(w)=12||y–Xw||22+α||w||1=12(y–Xw)T(y–Xw)+αn∑i=1|wi|
其梯度为
∇Jlasso(w)=∇J(w)+αn∑i=1sign(wi)
其中
sign(wi)={−1ifwi<00ifwi=01ifwi>0