LASSO回归
这部分笔记参考近端梯度(Proximal Gradient)下降算法的过程以及理解|ISTA算法|LASSO问题 - 红泥小火炉的文章 - 知乎、Lasso回归与近端梯度下降推导与实现Posted by Welt Xing on September 30, 2021、【西瓜书】 第11章 特征选择与稀疏学习笔记、利普希茨连续的几何意义是什么?怎么较好的理解它呢? - cielo的回答 - 知乎、L1范数中为什么需要证明目标函数的梯度满足Lipschitz(利普希茨)连续? - Spectre的回答 - 知乎
L-Lipschitz条件
本文使用近端梯度下降法对LASSO进行求解,近端梯度下降要求如下形式的
∇
f
\nabla f
∇f满足
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz条件
min
x
f
(
x
)
+
h
(
x
)
(2-1)
\min_x\ \ f(x)+h(x)\tag{2-1}
xmin f(x)+h(x)(2-1)
因此,本文首先证明LASSO表达式的第一部分的梯度满足
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz条件,即证明线性回归模型的均方误差满足
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz条件。
L-Lipschitz连续的定义
这里引用知乎用户cielo的回答,说得非常形象。
L i p s c h i t z Lipschitz Lipschitz连续,要求函数图像的曲线上任意两点连线的斜率一致有界,就是任意的斜率都小于同一个常数,这个常数就是 L i p s c h i t z Lipschitz Lipschitz常数。
从局部看:我们可以取两个充分接近的点,如果这个时候斜率的极限存在的话,这个斜率的极限就是这个点的导数。也就是说函数可导,又是 L i p s c h i t z Lipschitz Lipschitz连续,那么导数有界。反过来,如果可导函数,导数有界,可以推出函数 L i p s c h i t z Lipschitz Lipschitz连续。
从整体看: L i p s c h i t z Lipschitz Lipschitz连续要求函数在无限的区间上不能有超过线性的增长,所以 x 2 x^2 x2, e x e^x ex这些函数在无限区间上不是 L i p s c h i t z Lipschitz Lipschitz连续的。
这里可以通过维基百科的示意图进行辅助解释:
白色锥形的斜率就是 L i p s c h i t z Lipschitz Lipschitz常数,绿色区域的部分则代表满足 L i p s c h i t z Lipschitz Lipschitz连续,即定义中的“要求函数图像的曲线上任意两点连线的斜率一致有界,就是任意的斜率都小于同一个常数”。
对于定义中的局部,当函数在某点处可导且导数存在时, L i p s c h i t z Lipschitz Lipschitz连续性可以通过导数的有界性来保证。如果函数在每一点的导数都是有界的,那么这个函数是 L i p s c h i t z Lipschitz Lipschitz连续的。导数的有界性保证了函数变化的速率不会超过某个常数。
对于定义中的整体, x 2 x^2 x2的导数是 2 x 2x 2x,导数随 x x x增大而线性增长,因此在无穷远处 x 2 x^2 x2的变化速率没有上界。同理, e x e^x ex的导数是 e x e^x ex,其变化速率指数增长,所以 e x e^x ex也不是 L i p s c h i t z Lipschitz Lipschitz连续的。
L-Lipschitz条件的证明
定义线性回归的均方误差函数为:
f
(
w
)
=
1
2
n
∥
y
−
X
w
∥
2
2
(2-2)
f(w)=\frac{1}{2n}\lVert y-Xw \rVert^2_2\tag{2-2}
f(w)=2n1∥y−Xw∥22(2-2)
LASSO回归的
f
(
x
)
f(x)
f(x)部分与线性回归的均方误差函数相同,下面证明该部分满足Lipschitz条件,定义:
F
(
x
1
,
x
2
)
=
∥
∇
f
(
x
1
)
−
∇
f
(
x
2
)
∥
2
2
−
L
∥
x
1
−
x
2
∥
2
2
(2-3)
F(x_1,x_2)=\lVert \nabla f(x_1) - \nabla f(x_2) \rVert_2^2 - L\lVert x_1-x_2 \rVert_2^2\tag{2-3}
F(x1,x2)=∥∇f(x1)−∇f(x2)∥22−L∥x1−x2∥22(2-3)
首先求解
∇
f
(
w
)
\nabla f(w)
∇f(w),对式(2-2)进行展开得:
f
(
w
)
=
1
2
n
(
y
−
X
w
)
T
(
y
−
X
w
)
f(w)=\frac{1}{2n}(y-Xw)^T(y-Xw)
f(w)=2n1(y−Xw)T(y−Xw)
根据矩阵求导法则:
∂
∂
w
(
a
T
a
)
=
2
a
T
∂
a
∂
w
\frac{∂}{∂w}(a^Ta)=2a^T\frac{∂a}{∂w}
∂w∂(aTa)=2aT∂w∂a
令
a
=
(
y
−
X
w
)
a=(y-Xw)
a=(y−Xw),对式(2-2)求导后转置,故
∇
f
(
w
)
\nabla f(w)
∇f(w)为:
∇
f
(
w
)
=
−
1
n
X
T
(
y
−
X
w
)
\nabla f(w)=-\frac{1}{n}X^T(y-Xw)
∇f(w)=−n1XT(y−Xw)
代入式(2-3)得:
F
(
w
1
,
w
2
)
=
∥
1
n
X
T
(
X
w
1
−
y
)
+
1
n
X
T
(
X
w
2
+
y
)
∥
2
2
−
L
∥
w
1
−
w
2
∥
2
2
=
1
n
2
∥
X
T
X
(
w
1
−
w
2
)
∥
2
2
−
L
∥
w
1
−
w
2
∥
2
2
F(w_1,w_2)=\lVert \frac{1}{n}X^T(Xw_1-y) +\frac{1}{n}X^T(Xw_2+y) \rVert_2^2-L\lVert w_1-w_2 \rVert_2^2\\ =\frac{1}{n^2}\lVert X^TX(w_1-w_2) \rVert_2^2 - L\lVert w_1-w_2 \rVert_2^2\\
F(w1,w2)=∥n1XT(Xw1−y)+n1XT(Xw2+y)∥22−L∥w1−w2∥22=n21∥XTX(w1−w2)∥22−L∥w1−w2∥22
现在要证明
F
(
w
1
,
x
2
)
≤
0
F(w_1,x_2)\le0
F(w1,x2)≤0,则要证明下式:
∥
X
T
X
(
w
1
−
w
2
)
∥
2
2
n
2
∥
w
1
−
w
2
∥
2
2
≤
L
\frac{\lVert X^TX(w_1-w_2) \rVert_2^2}{n^2\lVert w_1-w_2 \rVert_2^2}\le L
n2∥w1−w2∥22∥XTX(w1−w2)∥22≤L
记
A
=
X
T
X
A = X^T X
A=XTX,实际上是证明对于任意的
x
x
x,下式有界:
∥
A
x
∥
2
2
∥
x
∥
2
2
(2-4)
\frac{\lVert Ax \rVert_2^2}{\lVert x \rVert_2^2}\tag{2-4}
∥x∥22∥Ax∥22(2-4)
由于
A
A
A是实对称矩阵,因此可以被对角化,即存在一个正交矩阵
Q
Q
Q和一个对角矩阵
Λ
\Lambda
Λ,使得:
A
=
Q
Λ
Q
T
A=Q\Lambda Q^T
A=QΛQT
其中,
Q
Q
Q是
A
A
A的特征向量,
Λ
\Lambda
Λ的对角线元素是
A
A
A的特征值。
对于特征向量的正交性,如果 v i v_i vi和 v j v_j vj对应不同的特征值 ( λ i ≠ λ j ) (\lambda_i \neq \lambda_j) (λi=λj),则它们是正交的,即 v i T v j = 0 v_i^T v_j = 0 viTvj=0。除此之外,可以进一步选择特征向量使其单位化,即 ∥ v i ∥ = 1 \lVert v_i\rVert = 1 ∥vi∥=1,使得它们形成一个标准正交基。
因此,
x
x
x可以表示为
A
A
A的特征向量的线性组合:
x
=
∑
i
=
1
n
k
i
v
i
x=\sum_{i=1}^n{k_iv_i}
x=i=1∑nkivi
其中,
v
i
v_i
vi是
A
A
A的特征向量,
k
i
k_i
ki是系数。
因此,
A
x
Ax
Ax可以化简为:
A
x
=
A
(
∑
i
=
1
n
k
i
v
i
)
=
∑
i
=
1
n
k
i
A
v
i
=
∑
i
=
1
n
k
i
λ
i
v
i
Ax=A(\sum_{i=1}^n{k_iv_i})=\sum_{i=1}^n{k_iAv_i}=\sum_{i=1}^n{k_i\lambda_iv_i}
Ax=A(i=1∑nkivi)=i=1∑nkiAvi=i=1∑nkiλivi
∥
A
x
∥
2
2
\lVert Ax \rVert_2^2
∥Ax∥22可以化简为:
∥
A
x
∥
2
2
∥
∑
i
=
1
n
k
i
λ
i
v
i
∥
2
2
=
∑
i
=
1
n
(
k
i
λ
i
)
2
∥
v
i
∥
2
2
=
∑
i
=
1
n
(
k
i
λ
i
)
2
\lVert Ax \rVert_2^2\lVert \sum_{i=1}^n{k_i\lambda_iv_i} \rVert_2^2=\sum_{i=1}^n(k_i\lambda_i)^2\lVert v_i\rVert_2^2=\sum_{i=1}^n(k_i\lambda_i)^2
∥Ax∥22∥i=1∑nkiλivi∥22=i=1∑n(kiλi)2∥vi∥22=i=1∑n(kiλi)2
同理,
∥
x
∥
2
2
\lVert x \rVert_2^2
∥x∥22可以化简为:
∥
x
∥
2
2
=
∑
i
=
1
n
k
i
2
\lVert x \rVert_2^2=\sum_{i=1}^{n}{k_i}^2
∥x∥22=i=1∑nki2
综上所述,可以将式(2-4)化简为:
∥
A
x
∥
2
2
∥
x
∥
2
2
=
∑
i
=
1
n
(
k
i
λ
i
)
2
∑
i
=
1
n
k
i
2
(2-5)
\frac{\lVert Ax \rVert_2^2}{\lVert x \rVert_2^2}=\frac{\sum_{i=1}^n(k_i\lambda_i)^2}{\sum_{i=1}^{n}{k_i}^2}\tag{2-5}
∥x∥22∥Ax∥22=∑i=1nki2∑i=1n(kiλi)2(2-5)
式(2-5)是一个加权平均式,因此有如下结论:
min
i
(
λ
i
2
)
≤
∑
i
=
1
n
(
k
i
λ
i
)
2
∑
i
=
1
n
k
i
2
≤
max
i
(
λ
i
2
)
\min_i{(\lambda_i^2)}\le \frac{\sum_{i=1}^n(k_i\lambda_i)^2}{\sum_{i=1}^{n}{k_i}^2}\ \le\max_i(\lambda_i^2)
imin(λi2)≤∑i=1nki2∑i=1n(kiλi)2 ≤imax(λi2)
因此式(2-4)有界,即:
∥
X
T
X
(
w
1
−
w
2
)
∥
2
2
∥
w
1
−
w
2
∥
2
2
≤
max
i
(
λ
i
2
)
\frac{\lVert X^TX(w_1-w_2) \rVert_2^2}{\lVert w_1-w_2 \rVert_2^2}\le\max_i(\lambda_i^2)
∥w1−w2∥22∥XTX(w1−w2)∥22≤imax(λi2)
接下来求解符合条件的
L
L
L:
F
(
w
1
,
w
2
)
=
1
n
2
∥
X
T
X
(
w
1
−
w
2
)
∥
2
2
−
L
∥
w
1
−
w
2
∥
2
2
=
L
∥
w
1
−
w
2
∥
2
2
(
∥
X
T
X
(
w
1
−
w
2
)
∥
2
2
n
2
L
∥
w
1
−
w
2
∥
2
2
−
1
)
≤
L
∥
w
1
−
w
2
∥
2
2
(
1
n
2
L
max
i
(
λ
i
2
)
−
1
)
≤
0
F(w_1,w_2)=\frac{1}{n^2}\lVert X^TX(w_1-w_2) \rVert_2^2 - L\lVert w_1-w_2 \rVert_2^2\\ =L\lVert w_1-w_2 \rVert_2^2(\frac{\lVert X^TX(w_1-w_2) \rVert_2^2}{n^2L\lVert w_1-w_2 \rVert_2^2}-1)\\ \le L\lVert w_1-w_2 \rVert_2^2(\frac{1}{n^2L}\max_i(\lambda_i^2)-1) \le 0
F(w1,w2)=n21∥XTX(w1−w2)∥22−L∥w1−w2∥22=L∥w1−w2∥22(n2L∥w1−w2∥22∥XTX(w1−w2)∥22−1)≤L∥w1−w2∥22(n2L1imax(λi2)−1)≤0
故可得
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz常数的上界:
L
≥
max
i
(
λ
i
2
)
n
2
L\ge \frac{\max_i(\lambda_i^2)}{n^2}
L≥n2maxi(λi2)
近端梯度下降
近端梯度下降的定义
在上一节已经证明了LASSO的 ∇ f \nabla f ∇f满足 L i p s c h i t z Lipschitz Lipschitz条件,因此可以使用近端梯度下降算法进行求解。实际上,近端梯度下降的本质可以视为先对光滑的函数 f ( x ) f(x) f(x)进行梯度下降,再对正则项进行隐性的梯度下降。梯度的 L i p s c h i t z Lipschitz Lipschitz连续性要求梯度的变化不能过于剧烈,保证了存在合适的步长,使得 f ( x ) f(x) f(x)沿着梯度方向前进这个步长可以使函数值下降(即descent lemma),这可用于证明算法收敛性。
近端梯度算法(Proximal Gradient Descent, PGD)常用来解决如下形式的优化问题:
min
x
f
(
x
)
+
h
(
x
)
(2-6)
\min_x\ \ f(x)+h(x) \tag{2-6}
xmin f(x)+h(x)(2-6)
近端梯度下降的
h
(
x
)
h(x)
h(x)有以下几种形式:
-
h ( x ) = 0 h(x)=0 h(x)=0:则为一般的梯度下降算法。
-
h ( x ) = I C ( x ) h(x)=I_C(x) h(x)=IC(x):则称为投影梯度下降(Projected gradient descent),其中:
I C ( x ) = { 0 , x ∈ C ∞ , x ∉ C I_C(x)=\begin{cases}0,&x\in C\\ \infty,&x\notin C\end{cases} IC(x)={0,∞,x∈Cx∈/C -
h ( x ) = λ ∥ x ∥ 1 h(x)=\lambda\lVert x\rVert_1 h(x)=λ∥x∥1:则被称为迭代收缩阈值算法(Iterative Shrinkage Thresholding Algorithm,ISTA),LASSO回归为该种类型。
迭代方法
对于函数
f
(
x
)
f(x)
f(x),在
x
k
x_k
xk附近进行二阶泰勒展开得:
f
^
(
x
)
≃
f
(
x
k
)
+
∇
f
(
x
k
)
T
(
x
−
x
k
)
+
1
2
(
x
−
x
k
)
T
∇
2
f
(
x
k
)
(
x
−
x
k
)
\hat f(x)\simeq f(x_k)+\nabla f(x_k)^T(x-x_k)+\frac{1}{2}(x-x_k)^T\nabla ^2f(x_k)(x-x_k)
f^(x)≃f(xk)+∇f(xk)T(x−xk)+21(x−xk)T∇2f(xk)(x−xk)
上式中,
∇
2
f
(
x
k
)
\nabla ^2f(x_k)
∇2f(xk)为
H
e
s
s
e
Hesse
Hesse矩阵,并且正定,
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz常数是
H
e
s
s
e
Hesse
Hesse矩阵的上界,在优化算法中常这样进行简化,故上式可以化简为如下形式:
f
^
(
x
)
=
f
(
x
k
)
+
⟨
∇
f
(
x
k
)
,
(
x
−
x
k
)
⟩
+
L
2
∥
(
x
−
x
k
)
∥
2
2
\hat f(x)=f(x_k)+\lang \nabla f(x_k),(x-x_k)\rang+\frac{L}{2}\lVert (x-x_k)\rVert _2^2
f^(x)=f(xk)+⟨∇f(xk),(x−xk)⟩+2L∥(x−xk)∥22
进一步化简:
f
^
(
x
)
=
f
(
x
k
)
+
⟨
∇
f
(
x
k
)
,
(
x
−
x
k
)
⟩
+
⟨
L
2
(
x
−
x
k
)
,
x
−
x
k
⟩
=
f
(
x
k
)
+
⟨
∇
f
(
x
k
)
+
L
2
(
x
−
x
k
)
,
x
−
x
k
⟩
=
f
(
x
k
)
+
L
2
⟨
L
2
∇
f
(
x
k
)
+
(
x
−
x
k
)
,
x
−
x
k
⟩
=
f
(
x
k
)
+
L
2
⟨
x
−
x
k
+
1
L
∇
f
(
x
k
)
+
1
L
∇
f
(
x
k
)
,
x
−
x
k
+
1
L
∇
f
(
x
k
)
−
1
L
∇
f
(
x
k
)
⟩
=
f
(
x
k
)
+
L
2
∥
x
−
x
k
+
1
L
∇
f
(
x
k
)
∥
2
2
−
1
2
L
∥
∇
f
(
x
k
)
∥
2
2
=
L
2
∥
x
−
(
x
k
−
1
L
∇
f
(
x
k
)
)
∥
2
2
+
c
o
n
s
t
\hat f(x)=f(x_k)+\lang \nabla f(x_k),(x-x_k)\rang+\lang \frac{L}{2}(x-x_k),x-x_k \rang\\ =f(x_k)+\lang \nabla f(x_k)+\frac{L}{2}(x-x_k),x-x_k \rang\\ =f(x_k)+\frac{L}{2}\lang\frac{L}{2} \nabla f(x_k)+(x-x_k),x-x_k \rang\\ =f(x_k)+\frac{L}{2}\lang x-x_k+\frac{1}{L}\nabla f(x_k)+ \frac{1}{L}\nabla f(x_k),x-x_k+\frac{1}{L}\nabla f(x_k)-\frac{1}{L}\nabla f(x_k)\rang\\ =f(x_k)+\frac{L}{2}\lVert x-x_k+\frac{1}{L}\nabla f(x_k)\rVert_2^2-\frac{1}{2L}\lVert \nabla f(x_k) \rVert_2^2\\ =\frac{L}{2}\lVert x-(x_k-\frac{1}{L}\nabla f(x_k)) \rVert_2^2+const
f^(x)=f(xk)+⟨∇f(xk),(x−xk)⟩+⟨2L(x−xk),x−xk⟩=f(xk)+⟨∇f(xk)+2L(x−xk),x−xk⟩=f(xk)+2L⟨2L∇f(xk)+(x−xk),x−xk⟩=f(xk)+2L⟨x−xk+L1∇f(xk)+L1∇f(xk),x−xk+L1∇f(xk)−L1∇f(xk)⟩=f(xk)+2L∥x−xk+L1∇f(xk)∥22−2L1∥∇f(xk)∥22=2L∥x−(xk−L1∇f(xk))∥22+const
显然,上式的最小值在如下
x
k
+
1
x_{k+1}
xk+1获得:
x
k
+
1
=
x
k
−
1
L
∇
f
(
x
k
)
x_{k+1}=x_k-\frac{1}{L}\nabla f(x_k)
xk+1=xk−L1∇f(xk)
下面证明通过迭代上式可以使
f
(
x
)
f(x)
f(x)逐步下降。
Descent Lemma的证明
对于函数
f
(
x
)
f(x)
f(x),由定积分的定义,则:
f
(
x
2
)
−
f
(
x
1
)
=
∫
x
1
x
2
f
′
(
x
)
d
x
f(x_2)-f(x_1)=\int_{x_1}^{x_2}f'(x)dx
f(x2)−f(x1)=∫x1x2f′(x)dx
设
f
(
x
)
f(x)
f(x)二次连续可微,
x
k
∈
R
n
x_k\in\R^n
xk∈Rn,令
g
(
t
)
=
f
(
x
k
+
t
(
x
−
x
k
)
)
g(t)=f(x_k+t(x-x_k))
g(t)=f(xk+t(x−xk)),则:
g
(
0
)
=
f
(
x
k
)
g
(
1
)
=
f
(
x
)
g(0)=f(x_k) \\g(1)=f(x)
g(0)=f(xk)g(1)=f(x)
因此,由定积分的定义可得:
f
(
x
)
−
f
(
x
k
)
=
g
(
1
)
−
g
(
0
)
=
∫
0
1
g
′
(
t
)
d
t
(2-7)
f(x)-f(x_k)=g(1)-g(0)=\int_0^1{g'(t)dt}\tag{2-7}
f(x)−f(xk)=g(1)−g(0)=∫01g′(t)dt(2-7)
而对于
g
′
(
t
)
g'(t)
g′(t),有:
KaTeX parse error: Undefined control sequence: \part at position 14: g'(t)=\frac{\̲p̲a̲r̲t̲ ̲f(x_k+t(x-x_k))…
代入式(2-7)可得:
f
(
x
)
−
f
(
x
k
)
=
∫
0
1
∇
f
(
x
k
+
t
(
x
−
x
k
)
)
T
(
x
−
x
k
)
d
t
=
∫
0
1
[
∇
f
(
x
k
+
t
(
x
−
x
k
)
)
−
∇
f
(
x
k
)
+
∇
f
(
x
k
)
]
T
(
x
−
x
k
)
d
t
=
∫
0
1
∇
f
(
x
k
)
T
(
x
−
x
k
)
d
t
+
∫
0
1
[
∇
f
(
x
k
+
t
(
x
−
x
k
)
)
−
∇
f
(
x
k
)
]
T
(
x
−
x
k
)
d
t
(2-8)
f(x)-f(x_k)=\int_0^1{\nabla f(x_k+t(x-x_k))^T(x-x_k)}dt\\ =\int_0^1[\nabla f(x_k+t(x-x_k))-\nabla f(x_k)+\nabla f(x_k)]^T(x-x_k)dt\\ =\int_0^1\nabla f(x_k)^T(x-x_k)dt+\int_0^1[\nabla f(x_k+t(x-x_k))-\nabla f(x_k)]^T(x-x_k)dt\\ \tag{2-8}
f(x)−f(xk)=∫01∇f(xk+t(x−xk))T(x−xk)dt=∫01[∇f(xk+t(x−xk))−∇f(xk)+∇f(xk)]T(x−xk)dt=∫01∇f(xk)T(x−xk)dt+∫01[∇f(xk+t(x−xk))−∇f(xk)]T(x−xk)dt(2-8)
对上式使用如下内积性质进行放缩:
x
T
y
=
∥
x
∥
⋅
∥
y
∥
cos
θ
≤
∥
x
∥
⋅
∥
y
∥
x^Ty=\lVert x \rVert \cdot \lVert y \rVert \cos\theta\le \lVert x \rVert \cdot \lVert y \rVert
xTy=∥x∥⋅∥y∥cosθ≤∥x∥⋅∥y∥
故式(2-8)可以放缩为如下形式:
f
(
x
)
−
f
(
x
k
)
≤
∫
0
1
∇
f
(
x
k
)
T
(
x
−
x
k
)
d
t
+
∫
0
1
∥
∇
f
(
x
k
+
t
(
x
−
x
k
)
)
−
∇
f
(
x
k
)
∥
2
⋅
∥
x
−
x
k
∥
2
d
t
f(x)-f(x_k)\le\int_0^1\nabla f(x_k)^T(x-x_k)dt+\int_0^1\lVert\nabla f(x_k+t(x-x_k))-\nabla f(x_k)\rVert_2\cdot \lVert x-x_k\rVert _2dt\\
f(x)−f(xk)≤∫01∇f(xk)T(x−xk)dt+∫01∥∇f(xk+t(x−xk))−∇f(xk)∥2⋅∥x−xk∥2dt
接下来对上式使用
L
i
p
s
c
h
i
t
z
Lipschitz
Lipschitz常数进行放缩,可得到:
f
(
x
)
−
f
(
x
k
)
≤
∫
0
1
∇
f
(
x
k
)
T
(
x
−
x
k
)
d
t
+
∥
x
−
x
k
∥
2
∫
0
1
L
∥
t
(
x
−
x
k
)
∥
2
d
t
f(x)-f(x_k)\le\int_0^1\nabla f(x_k)^T(x-x_k)dt+\lVert x-x_k\rVert _2\int_0^1L\lVert t(x-x_k)\rVert _2dt
f(x)−f(xk)≤∫01∇f(xk)T(x−xk)dt+∥x−xk∥2∫01L∥t(x−xk)∥2dt
对上式进行定积分,可化简为:
f
(
x
)
−
f
(
x
k
)
=
∇
f
(
x
k
)
T
(
x
−
x
k
)
+
L
2
∥
(
x
−
x
k
)
∥
2
2
f(x)-f(x_k)=\nabla f(x_k)^T(x-x_k)+\frac{L}{2}\lVert (x-x_k)\rVert _2^2
f(x)−f(xk)=∇f(xk)T(x−xk)+2L∥(x−xk)∥22
令
f
^
(
x
)
=
f
(
x
k
)
+
∇
f
(
x
k
)
T
(
x
−
x
k
)
+
L
2
∥
(
x
−
x
k
)
∥
2
2
(2-9)
\hat f(x)=f(x_k)+\nabla f(x_k)^T(x-x_k)+\frac{L}{2}\lVert (x-x_k)\rVert _2^2\tag{2-9}
f^(x)=f(xk)+∇f(xk)T(x−xk)+2L∥(x−xk)∥22(2-9)
则有
f
(
x
)
≤
f
^
(
x
)
f(x)\le\hat f(x)
f(x)≤f^(x),当
x
=
x
k
x=x_k
x=xk时等号成立,该不等式被称为descent lemma。
由于
f
(
x
)
f(x)
f(x)在
x
=
x
k
−
1
L
∇
f
(
x
k
)
x=x_k-\frac{1}{L}\nabla f(x_k)
x=xk−L1∇f(xk)处取得最小值,因此以下不等式成立:
f
^
(
x
k
−
1
L
∇
f
(
x
k
)
)
≤
f
^
(
x
k
)
\hat f(x_k-\frac{1}{L}\nabla f(x_k))\le \hat f(x_k)
f^(xk−L1∇f(xk))≤f^(xk)
根据descent lemma的推导有
f
(
x
)
≤
f
^
(
x
)
f(x)\le\hat f(x)
f(x)≤f^(x)恒成立,因此以下不等式也成立:
f
(
x
k
−
1
L
∇
f
(
x
k
)
)
≤
f
^
(
x
k
−
1
L
∇
f
(
x
k
)
)
f(x_k-\frac{1}{L}\nabla f(x_k))\le \hat f(x_k-\frac{1}{L}\nabla f(x_k))
f(xk−L1∇f(xk))≤f^(xk−L1∇f(xk))
且当
x
=
x
k
x=x_k
x=xk时,由式(2-9)可知
f
(
x
k
)
=
f
^
(
x
k
)
f(x_k)=\hat f(x_k)
f(xk)=f^(xk),因此:
f
(
x
k
−
1
L
∇
f
(
x
k
)
)
≤
f
^
(
x
k
−
1
L
∇
f
(
x
k
)
)
≤
f
^
(
x
k
)
=
f
(
x
k
)
f(x_k-\frac{1}{L}\nabla f(x_k))\le \hat f(x_k-\frac{1}{L}\nabla f(x_k))\le\hat f(x_k)=f(x_k)
f(xk−L1∇f(xk))≤f^(xk−L1∇f(xk))≤f^(xk)=f(xk)
综上所述,可以通过迭代下式使得
f
(
x
)
f(x)
f(x)逐步下降:
x
k
+
1
=
x
k
−
1
L
∇
f
(
x
k
)
(2-10)
x_{k+1}=x_k-\frac{1}{L}\nabla f(x_k)\tag{2-10}
xk+1=xk−L1∇f(xk)(2-10)
求解LASSO
上面的证明和推导都是针对LASSO的第一部分,LASSO相对于线性回归只是加上了
L
1
L1
L1范数,故将式(2-10)应用在LASSO回归上,可得到如下迭代式:
x
k
+
1
=
arg
min
x
L
2
∥
x
−
(
x
k
−
1
L
∇
f
(
x
k
)
)
∥
2
2
+
λ
∥
x
∥
1
x_{k+1}=\underset{x}{\arg\min}\ \frac{L}{2}\lVert x-(x_k-\frac{1}{L}\nabla f(x_k)) \rVert_2^2+\lambda\lVert x\rVert_1\\
xk+1=xargmin 2L∥x−(xk−L1∇f(xk))∥22+λ∥x∥1
令
z
=
x
k
−
1
L
∇
f
(
x
k
)
z=x_k-\frac{1}{L}\nabla f(x_k)
z=xk−L1∇f(xk),
L
=
1
t
L=\frac{1}{t}
L=t1其实际上为
f
(
x
)
f(x)
f(x)的梯度下降形式,可以将上式转换成如下形式:
x
k
+
1
=
arg
min
x
1
2
∥
x
−
z
∥
2
2
+
λ
t
∥
x
∥
1
(2-11)
x_{k+1}=\underset{x}{\arg\min}\ \frac{1}{2}\lVert x-z \rVert_2^2+\lambda t\lVert x\rVert_1\tag{2-11}
xk+1=xargmin 21∥x−z∥22+λt∥x∥1(2-11)
式(2-11)也被称为近端算子(proximal operator),记为:
p
r
o
x
t
,
h
(
⋅
)
(
z
)
=
arg
min
x
1
2
∥
x
−
z
∥
2
2
+
t
⋅
h
(
x
)
prox_{t,h(\cdot)}(z)=\underset{x}{\arg\min}\ \frac{1}{2}\lVert x-z\rVert_2^2+t\cdot h(x)
proxt,h(⋅)(z)=xargmin 21∥x−z∥22+t⋅h(x)
因此,对于式(2-1)的问题,近端梯度下降算法的一般迭代过程是先对
f
(
x
)
f(x)
f(x)进行梯度下降求得
z
(
k
)
z^{(k)}
z(k),然后代入近端算子
p
r
o
x
t
,
h
(
⋅
)
(
z
(
k
)
)
prox_{t,h(\cdot)}(z^{(k)})
proxt,h(⋅)(z(k)),然后迭代求解:
z
(
k
)
=
x
(
k
)
−
t
∇
f
(
x
(
k
)
)
x
(
k
+
1
)
=
p
r
o
x
t
,
h
(
⋅
)
(
z
(
k
)
)
z^{(k)}=x^{(k)}-t\nabla f(x^{(k)})\\ x^{(k+1)}=prox_{t,h(\cdot)}(z^{(k)})
z(k)=x(k)−t∇f(x(k))x(k+1)=proxt,h(⋅)(z(k))
总结
LASSO回归由于其L1正则化的稀疏性,因此成为一种可以降低多重共线性的特征筛选方法。然而,L1正则化只能针对单个特征进行考虑,故没有筛选到的特征并不代表不重要,在遇到两个高度相关特征的时候,难以确定要保留哪个。在2020年,Gao Wang等人在《Journal of the Royal Statistical Society Series B: Statistical Methodology》发表了一篇名为《A Simple New Approach to Variable Selection in Regression, with Application to Genetic Fine Mapping》的论文,提出了SuSIE这一能够考虑多个特征交互影响的方特征筛选法和逐步迭代求解SuSIE的IBSS算法。