更新于 2026年8月12日

坐标上升#


术语解释#

坐标上升算法(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)$的求解过程,而黑色箭头折线为坐标上升算法最大化目标函数的求解过程。

图 10-15 梯度上升与坐标上升
图 10-15 梯度上升与坐标上升

例如在上面这个示例中$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 算法的改进)才能进行优化,无法直接使用原始的单变量坐标上升。

    • 顺序选择的局限性:按顺序轮流更新变量并非最优,通常需要配合更复杂的启发式规则(如选择能使目标函数增量最大的变量)来提高效率。

阅读 --

10.9 SMO算法求解SVM

在10.7节内容中,我们分别就SVM中硬间隔与软间隔目标函数的求解过程进行了介绍,但是在实际应用过程中,从效率的角度来讲那样的做法显然是不可取的,尤其是在大规模数据样本和稀疏数据中。在接下来的这节内容中,我们将介绍一种新的求解算法,即序列最 …