梯度下降法、牛顿法是机器学习中复杂优化问题求解的方法。(最优化、凸优化、梯度下降和牛顿法)[]中对优化问题和梯度下降法、牛顿法进行了详细的介绍。能够使用梯度下降法和牛顿法的前提是优化目标函数是连续可导的,如果要在在目标函数中加入l1范式项,l1范式在零点处不可导,就不能使用该类梯度下降方法,而坐标轴下降方法就是来解决这类优化问题:
f ( x ) = g ( x ) + ∑ i = 1 n h i ( x ) f(x) = g(x) + \sum_{i=1}^n h_i(x) f(x)=g(x)+i=1∑nhi(x)
其中 g ( x ) g(x) g(x)要求是凸函数且可导,而 h i ( x ) h_i(x) hi(x)只要求是凸函数。
坐标下降法(英语:coordinate descent)是一种非梯度优化算法。算法在每次迭代中,在当前点处沿一个坐标方向进行一维搜索以求得一个函数的局部极小值。在整个过程中循环使用不同的坐标方向。对于不可拆分的函数而言,算法可能无法在较小的迭代步数中求得最优解。为了加速收敛,可以采用一个适当的坐标系,例如通过主成分分析获得一个坐标间尽可能不相互关联的新坐标系(维基百科:坐标下降法)
这里需要注意的一点是,非梯度下降法,不代表在整个计算过程中都不需要计算梯度。
维基百科:坐标下降法
(https://zh.wikipedia.org/wiki/%E5%9D%90%E6%A0%87%E4%B8%8B%E9%99%8D%E6%B3%95)
坐标下降法基于的思想是多变量函数
F
(
x
)
F(\mathbf {x} )
F(x)可以通过每次沿一个方向优化来获取最小值。与通过梯度获取最速下降的方向不同,在坐标下降法中,优化方向从算法一开始就予以固定。例如,可以选择线性空间的一组基
e
1
,
e
2
,
…
,
e
n
\mathbf {e} _{1},\mathbf {e} _{2},\dots ,\mathbf {e} _{n}
e1,e2,…,en作为搜索方向。 在算法中,循环最小化各个坐标方向上的目标函数值。亦即,如果
x
k
\displaystyle \mathbf {x} ^{k}
xk已给定,那么,
x
k
+
1
\mathbf {x} ^{k+1}
xk+1的第
i
i
i个维度为
x i k + 1 = arg min y ∈ R f ( x 1 k + 1 , . . . , x i − 1 k + 1 , y , x i + 1 k , . . . , x n k ) \mathbf {x} _{i}^{k+1}={\underset {y\in \mathbb {R} }{\operatorname {arg\,min} }}\;f(x_{1}^{k+1},...,x_{i-1}^{k+1},y,x_{i+1}^{k},...,x_{n}^{k}) xik+1=y∈Rargminf(x1k+1,...,xi−1k+1,y,xi+1k,...,xnk)
因而,从一个初始的猜测值 x 0 \mathbf {x} _{0} x0以求得函数 F F F的局部最优值,可以迭代获得 x 0 , x 1 , x 2 , … \mathbf {x} _{0},\mathbf {x} _{1},\mathbf {x} _{2},\dots x0,x1,x2,… 的序列。
通过在每一次迭代中采用一维搜索,可以很自然地获得不等式
F ( x 0 ) ≥ F ( x 1 ) ≥ F ( x 2 ) ≥ ⋯ \displaystyle F(\mathbf {x} _{0})\geq F(\mathbf {x} _{1})\geq F(\mathbf {x} _{2})\geq \cdots F(x0)≥F(x1)≥F(x2)≥⋯
可以知道,这一序列与最速下降具有类似的收敛性质。如果在某次迭代中,函数得不到优化,说明一个驻点已经达到。
这一过程可以用下图表示。
linear regression
给定
y
∈
R
n
y \in R^n
y∈Rn,
X
∈
R
n
×
p
X \in R^{n \times p}
X∈Rn×p,考虑一下线性回归问题:
f
(
x
)
=
min
β
1
2
∥
y
−
X
β
∥
2
2
f(x) = \min_\beta \frac{1}{2} \|y-X\beta\|_2^2
f(x)=βmin21∥y−Xβ∥22
固定所有的
β
j
\beta_j
βj,
j
≠
i
j \neq i
j=i,在
β
i
\beta_i
βi上优化
f
(
x
)
f(x)
f(x):
∇
i
f
(
β
)
=
X
i
T
(
X
β
−
y
)
=
X
i
T
(
X
i
β
i
+
X
−
i
β
−
i
−
y
)
=
0
\nabla_if(\beta) = X_i^T(X_\beta-y) = X_i^T(X_i\beta_i + X_{-i}\beta_{-i}-y)=0
∇if(β)=XiT(Xβ−y)=XiT(Xiβi+X−iβ−i−y)=0
β
i
=
X
i
T
(
y
−
X
−
i
β
−
i
)
X
i
T
X
i
\beta_i = \frac{X_i^T(y-X_{-i}\beta_{-i})}{X_i^TX_i}
βi=XiTXiXiT(y−X−iβ−i)
lasso regression
lasso回归问题:
min
β
1
2
∣
∣
y
−
X
β
∣
∣
2
2
+
λ
∣
∣
β
∣
∣
1
\min_\beta \frac{1}{2}||y-X\beta||_2^2+\lambda||\beta||_1
βmin21∣∣y−Xβ∣∣22+λ∣∣β∣∣1
其中
l
1
l_1
l1范式部分是不平滑的。
固定
β
j
,
j
≠
i
\beta_j,j\not=i
βj,j=i,最小化
β
i
\beta_i
βi:
0
=
X
i
T
X
i
β
i
+
X
i
T
(
X
−
i
β
−
i
−
y
)
+
λ
s
i
0=X_i^TX_i\beta_i + X_i^T(X_{-i}\beta_{-i}-y)+\lambda s_i
0=XiTXiβi+XiT(X−iβ−i−y)+λsi。
其中
s
i
∈
∂
∣
β
i
∣
s_i \in \partial|\beta_i|
si∈∂∣βi∣