Coordinate Descent 坐标轴下降法


梯度下降法、牛顿法是机器学习中复杂优化问题求解的方法。(最优化、凸优化、梯度下降和牛顿法)[]中对优化问题和梯度下降法、牛顿法进行了详细的介绍。能够使用梯度下降法和牛顿法的前提是优化目标函数是连续可导的,如果要在在目标函数中加入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=1nhi(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=yRargminf(x1k+1,...,xi1k+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 yRn, X ∈ R n × p X \in R^{n \times p} XRn×p,考虑一下线性回归问题:
f ( x ) = min ⁡ β 1 2 ∥ y − X β ∥ 2 2 f(x) = \min_\beta \frac{1}{2} \|y-X\beta\|_2^2 f(x)=βmin21yXβ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+Xiβiy)=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(yXiβ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 βmin21yXβ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(Xiβiy)+λsi
其中 s i ∈ ∂ ∣ β i ∣ s_i \in \partial|\beta_i| siβi

Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值