坐标上升#
术语解释#
坐标上升算法(Coordinate Ascent) 是一种用于求解目标函数极大值的优化策略,其核心逻辑是在每次迭代中仅更新一个坐标(变量),而保持其他坐标固定不变。 它通过轮流将向量参数中的某一个分量视为变量,而将其余分量固定为常数,从而将多元函数的优化问题转化为一元函数的极值问题。
计算流程:
-
初始化:随机赋予参数向量 $w=(w_1, w_2, \dots, w_n)$ 一个初始值。
-
迭代优化:依次(或按某种规则)选择 $w_i$ 作为变量,求目标函数关于 $w_i$ 的导数并令其为 0,解出 $w_i$。
-
循环:重复上述步骤,直到目标函数收敛或达到预设阈值。
在等高线图中,梯度上升算法的搜索路径通常是曲线,而坐标上升算法的路径则是沿着坐标轴方向移动的折线(楼梯状)。更多相关内容可参见「10.9 SMO算法求解SVM:支持向量机优化方法详解」。
出现动机#
-
简化优化难度:直接对含有多个变量的复杂目标函数进行整体优化(如求解支持向量机 SVM 的对偶问题)通常非常困难。
-
避免大规模数值计算:通过将问题拆解,坐标上升法可以采用分析的方式(Analytic manner)定位最优解,从而避免传统数值优化中繁重的计算开销。
-
适应特定约束:在某些场景下(如 SMO 算法),它是解决带有约束条件的二次规划问题的基础工具。
直观示例#
在图10-15中,曲线为目标函数$J({{w}_{1}},{{w}_{2}})=-0.5{{({{w}_{1}}-1)}^{2}}-{{(2{{w}_{2}}+1)}^{2}}-0.5{{({{w}_{1}}-{{w}_{2}})}^{2}}$的等高线,黑色箭头曲线为梯度上升算法最大化目标函数$J(w_1,w_2)$的求解过程,而黑色箭头折线为坐标上升算法最大化目标函数的求解过程。

例如在上面这个示例中$w_1$和$w_2$的求解表达式分别为
$$ \begin{aligned} & w_{1}^{\text{new}}=-2w_{1}^{\text{old}}+w_2^{\text{old}}+1 \\[1ex] & w_{2}^{\text{new}}=-9w_{2}^{\text{old}}+w_1^{\text{new}}-4 \end{aligned}\tag{10-131} $$那么在初始化一组$w_{1}^{\text{old}}$和$w_{2}^{\text{old}}$后,便可以通过式(10-131)来迭代以便求解得到$w_1$和$w_2$的解。
优点缺点#
-
优点:
-
计算简单且高效:由于每次只处理一个变量,子问题的求解通常非常简单,甚至有解析解,不需要像梯度下降那样反复计算复杂的全局梯度。
-
无需手动设置学习率:在很多情况下,通过令导数为 0 直接解出的 $w_i$ 就是该方向上的最优值,不需要像梯度下降那样精细调节步长(学习率)。
-
收敛稳健性:对于某些特定结构的函数(如凸函数),它能稳定地迭代到全局最优解附近。
-
-
缺点:
-
搜索路径受限:由于只能沿坐标轴方向移动,如果变量之间存在强相关性,算法可能会出现“锯齿状”路径,导致收敛速度慢于梯度上升。
-
受约束条件限制:在某些带有严格等式约束的任务中,固定其他变量可能导致唯一的变量也无法移动。例如在 SVM 的对偶问题中,因为有 $\sum \alpha_i y^{(i)} = 0$ 的约束,至少需要同时选择两个变量(即 SMO 算法的改进)才能进行优化,无法直接使用原始的单变量坐标上升。
-
顺序选择的局限性:按顺序轮流更新变量并非最优,通常需要配合更复杂的启发式规则(如选择能使目标函数增量最大的变量)来提高效率。
-