一、基本思想
在前文梯度下降法(一)从导数到梯度下降法的基本逻辑给出了梯度下降法的迭代方程: x : = x − λ ∇ f ( x ) \boldsymbol x:=\boldsymbol x- \lambda\nabla f(\boldsymbol x) x:=x−λ∇f(x)若将上述写为每个分量 x i x_i xi的形式,即为: x i : = x i − λ ∂ f ∂ x i x_i:=x_i-\lambda \frac{\partial f}{\partial x_i} xi:=xi−λ∂xi∂f这表明,梯度下降法在每步迭代过程中,其各分量上的计算是彼此独立的。
这启发我们:能否将每步迭代按照坐标轴的顺序进行分解?其实这就是坐标下降法的基本思想。
坐标下降法可理解将梯度下降法进行分治处理,但其又不依赖于梯度,因此可以广泛用于不可微的凸函数优化问题中。
假设目标优化凸函数为
f
(
x
1
,
x
2
,
.
.
.
x
n
)
f(x_1,x_2,...x_n)
f(x1,x2,...xn),则坐标下降法在完整计算过程为:
(1)选取
x
2
,
x
3
,
.
.
.
,
x
n
x_2,x_3,...,x_n
x2,x3,...,xn的初值;
(2)在每轮迭代中:
a)固定
x
2
,
x
3
,
.
.
.
,
x
n
x_2,x_3,...,x_n
x2,x3,...,xn,将
x
1
x_1
x1作为自变量,采用导数或线性搜索等方法,搜索得到
arg min
x
1
∗
f
(
x
1
,
x
2
,
.
.
.
x
n
)
\argmin_{x_1^*}f(x_1,x_2,...x_n)
x1∗argminf(x1,x2,...xn)
b) 将得到的
x
1
∗
x_1^*
x1∗代入凸函数,同时固定
x
3
,
x
4
,
.
.
.
,
x
n
x_3,x_4,...,x_n
x3,x4,...,xn,搜索得到
arg min
x
2
∗
f
(
x
1
∗
,
x
2
,
.
.
.
x
n
)
\argmin_{x_2^*}f(x_1^*,x_2,...x_n)
x2∗argminf(x1∗,x2,...xn)
c) 将得到的
x
1
∗
,
x
2
∗
x_1^*,x_2^*
x1∗,x2∗代入凸函数,同时固定
x
4
,
.
.
.
,
x
n
x_4,...,x_n
x4,...,xn,搜索得到
arg min
x
3
∗
f
(
x
1
∗
,
x
2
∗
,
.
.
.
x
n
)
\argmin_{x_3^*}f(x_1^*,x_2^*,...x_n)
x3∗argminf(x1∗,x2∗,...xn)
…
d)得到本轮迭代后的一组值
x
1
∗
,
x
2
∗
,
.
.
.
,
x
n
∗
x_1^*,x^*_2,...,x_n^*
x1∗,x2∗,...,xn∗
e) 若满足迭代终止条件,则得到最优值,否则进入下一轮迭代。
坐标下降法中每一轮完整的迭代过程相当于梯度下降法中沿着负梯度方向的一次迭代。其区别在于,梯度下降法明确知道其迭代的方向为梯度下降方向(即函数变化最大的方向),而坐标下降法只能交替着在各坐标上进行最小化的尝试。
那么如何保证坐标下降法的每轮迭代都能够使函数值有所下降,下面简要的给出证明:因为在每轮迭代过程中,均是沿着各坐标轴方向的最小化过程,所以有: f ( x 1 , x 2 , . . . , x n ) ≥ f ( x 1 ∗ , x 2 , . . . x n ) ≥ f ( x 1 ∗ , x 2 ∗ , . . . x n ) ≥ f ( x 1 ∗ , x 2 ∗ , . . . x n ∗ ) f(x_1,x_2,...,x_n)\ge f(x_1^*,x_2,...x_n)\ge f(x_1^*,x_2^*,...x_n)\ge f(x_1^*,x_2^*,...x_n^*) f(x1,x2,...,xn)≥f(x1∗,x2,...xn)≥f(x1∗,x2∗,...xn)≥f(x1∗,x2∗,...xn∗)这表明了,坐标下降法的每步迭代都是有效的。
二、坐标下降法的全局最小值
那坐标下降法又是否能保证迭代后的收敛结果即为凸函数的全局最小值呢?这取决于凸函数的可微性!
2.1 可微凸函数
性质一:对于可微的凸函数,坐标下降法的收敛处各坐标方向的偏导必为0;否则函数沿着坐标轴方向必存在函数值进一步下降的空间,这与坐标下降法的迭代终止条件相违背。
性质二:可微凸函数的Hessen矩阵为正定阵。
因此,假设收敛后的坐标点为 x \boldsymbol x x,函数上的任意为 y \boldsymbol y y,由二阶泰勒展开可知: f ( y ) = f ( x ) + ∇ f ( x ) T ( y − x ) + ( y − x ) T H ( x ) ( y − x ) + O 2 ( y − x ) ≥ f ( x ) + 0 = f ( x ) \begin{aligned}f(\boldsymbol y)&=f(\boldsymbol x)+\nabla f(\boldsymbol x)^T(\boldsymbol y-\boldsymbol x)+(\boldsymbol y-\boldsymbol x)^TH(\boldsymbol x)(\boldsymbol y-\boldsymbol x)+O^2(\boldsymbol y-\boldsymbol x)\\&\ge f(\boldsymbol x)+0\\&=f(\boldsymbol x)\end{aligned} f(y)=f(x)+∇f(x)T(y−x)+(y−x)TH(x)(y−x)+O2(y−x)≥f(x)+0=f(x)
因此,对于可微凸函数,坐标下降法的最终结果即为全局最小值点。
2.2 不可微凸函数
对于不可微凸函数,很容易举出坐标下降法不适用的例子。
如在下图的等高线图中,蓝色点处为全局最小值点。若以红色点A为初始点进行坐标下降法的迭代。因为沿着平面内两根轴都无法进一步下降,所以最终值仍为红色点A。因此,此时的坐标下降法失效。
2.3 可微凸函数和不可微凸函数的联合函数
假设凸函数为可微凸函数和不可微凸函数的和: f ( x ) = g ( x ) + ∑ i h ( x i ) f(\boldsymbol x)=g(\boldsymbol x)+\sum _ih(x_i) f(x)=g(x)+i∑h(xi)其中, g ( x ) g(\boldsymbol x_) g(x)为可微凸函数,而 h ( x ) h(\boldsymbol x) h(x)为不可微凸函数,且可写成各坐标轴方向的和。
因此,假设收敛后的坐标点为 x \boldsymbol x x,函数上的任意为 y \boldsymbol y y,可知: f ( y ) − f ( x ) = g ( y ) − g ( x ) + ∑ i ( h ( y i ) − h ( x i ) ) ≥ ∇ g ( x ) T ( y − x ) + ∑ i ( h ( y i ) − h ( x i ) ) = ∑ i ( ∇ i g ( x ) ( y i − x i ) + h ( y i ) − h ( x i ) ) ≥ 0 \begin{aligned} f(\boldsymbol y)-f(\boldsymbol x)=&g(\boldsymbol y)-g(\boldsymbol x)+\sum_i (h(y_i)-h(x_i)) \\\ge &\nabla g(\boldsymbol x)^T(\boldsymbol y-\boldsymbol x)+\sum_i (h(y_i)-h(x_i))\\=&\sum_i (\nabla _ig(\boldsymbol x)(y_i-x_i)+h(y_i)-h(x_i))\\\ge&0\end{aligned} f(y)−f(x)=≥=≥g(y)−g(x)+i∑(h(yi)−h(xi))∇g(x)T(y−x)+i∑(h(yi)−h(xi))i∑(∇ig(x)(yi−xi)+h(yi)−h(xi))0所以,在这种情况下,通过坐标下降法仍可得到全局最优解。
三、注意事项
坐标下降法作为一种有效的解决无梯度凸函数优化问题的方法,在使用时还应注意如下事项。
3.1 坐标轴迭代的无序性
在前文介绍坐标轴下降法每轮迭代过程中,坐标轴是按照1、2…n的顺序轮转的。根据坐标轴的对称性,完全可以打乱这种顺序,进行迭代。
3.2 块坐标轴下降法
在前文介绍坐标轴下降法每轮迭代过程中,每一次坐标轴轮转都只考虑一个坐标轴为变量,而其它方向固定。在实际使用中,还经常采用块坐标轴下降法,即每次将若干个坐标轴为变量,而剩下的坐标轴固定。
3.3 坐标轴的相关性影响
在坐标轴下降法中,若各坐标轴存在较强的相关性,则在每一次坐标的最优化搜索过程中受被固定住的相关坐标的影像,其搜索范围会受到严重压缩,从而导致迭代效率的降低。此时,在坐标轴下降法前可考虑对数据进行PCA等降维处理,使得其坐标轴相互独立。