[ML从入门到入门] 支持向量机:SMO算法的收敛性分析

引言

上一篇文章我们介绍了 SMO 算法,作为其姊妹篇,本文将对 SMO 算法的收敛性进行分析,同时,希望能为读者提供新的角度去理解 SMO 算法的原理。

证明思路来自于《Convergence of a Generalized SMO Algorithm for SVM Classifier Design》。

 

回顾 KKT 条件

本节将从另一个角度去回顾 SVM 中的 KKT 条件,并做一些新的定义。这里不再赘述 SVM 的推导过程,我们继续沿用上一篇文章得到的结论和部分定义,需要注意一些定义会有改动。

首先,还是熟悉的 SVM 原问题的对偶问题,现在我们重新将它看作原问题:

定义出拉格朗日函数 $L$:

先求出 $L$ 对每个分量 $\alpha_{k}$ 的偏导函数:

然后得到 KKT 条件:

结合偏导为零的方程和互补松弛条件,进一步推出 KKT 成立时的一个必要条件:

这其实就是之前推导 SMO 的文章里,“$\alpha_{i}$ 和 $u_{i}$ 的关系”这一小节中提到的内容,稍微转换一下就可以得到一模一样的结果,只是偏置 $b$ 在这里变成了 $\beta$。

我们对 $y_{i}$、$\alpha_{i}$ 各种可能的取值进行分类,并做如下定义:

进一步简化 KKT 的必要条件:

这个条件在 SMO 中,被用于判断 $\alpha$ 是否取得最优解,但通常 SMO 只能取到最优解的近似值,为了不让算法一直循环下去,我们需要引入一个 容忍参数(Tolerance Parameter)让算法提前停止,记作 $\tau$。

则 SMO 取得近似解的必要条件重新记作:

如果满足上面条件,我们称为 $\tau$-optimal,否则称为 $\tau$-violating。

 

SMO 的最小化步长

我们知道,SMO 每次迭代是在 $\alpha$ 中选择两个 $\tau$-violating 的分量进行优化,其他分量暂时固定不变。

设选取 $\alpha_{i}$ 作为第一个变量,选取 $\alpha_{j}$ 作为第二个变量,SVM 优化问题的等式约束记作:

使用 $t$ 来表示某次迭代中 $\alpha$ 的变化量,由上面的等式可以得到以下函数:

为方便书写,接下来使用 $\alpha_{ij}$ 表示向量 $(\alpha_{i},\alpha_{j})$,同理,$\alpha_{ij}(t)$ 表示向量 $(\alpha_{i}(t),\alpha_{j}(t))$;使用 $\alpha_{ij}(0)$ 表示满足 $\tau$-violating 的旧值;$\alpha_{ij}(t^{*})$ 表示满足 $\tau$-optimal 的新值。

下图分别展示了 $y_{i}=y_{j}$、 $y_{i}\ne y_{j}$ 时,$\alpha_{ij}(0)$ 和 $\alpha_{ij}(t^{*})$ 的变化关系:

可以看到,不管 $y_{i}$、$y_{j}$ 是否相等,$\alpha_{ij}(0)$ 和 $\alpha_{ij}(t^{*})$ 的模始终都为 $\left| t^{*} \right|\sqrt{2}$,即:

接着我们把目标函数 $f(\alpha)$ 考虑进来,在三维空间中得到 $y_{i}\ne y_{j}$ 时的函数图像如下:

因为目标函数的核矩阵具有半正定性,所以 $f(\alpha)$ 始终大于等于零,其表现为一个下凹的碗状曲面,最小值点位于原点;限制条件的等式约束则体现为一个平面,与目标函数相交于一条曲线,优化目标是从这条曲线上取得最小值点。结合前面我们定义的变化量 $t$,接下来用 $\phi(t)=f\left(\alpha(t)\right)$ 表示两个面相交的曲线。

由于存在另一个不等式约束,$\alpha_{i}$、$\alpha_{j}$ 必须大于等于零,如上图所示,最小值点 $\alpha_{ij}(t^{*})$ 只会在 $\alpha_{i}$ 轴或 $\alpha_{j}$ 轴的正半轴上取得。此时,${\phi(t^{*})}'\le 0$。

同理,当 $y_{i}=y_{j}$ 时,得到函数图像如下:

如上图所示,当 $y_{i}=y_{j}$ 时,最小值点 $\alpha_{ij}(t^{*})$ 在第一象限内取得。此时,${\phi(t^{*})}'= 0$。

接下来重点对曲线 ${\phi(t)}$ 进行分析,我们将 ${\phi(t)}$ 泰勒展开,得:

由于 $\alpha(t)$ 是线性函数,所以 ${\phi(t)}$ 仍然是一个凸函数,又因为凸函数的二阶导是一个常数,三阶导则为零,易得:

${\phi}'(t)={\phi}'(0)+{\phi}''(0)t$

我们具体推导一下 ${{\phi}'(t)}$:

这是一个有意思的结论:

${\phi}'(t)=F_{i}\left(\alpha(t)\right)-F_{j}\left(\alpha(t)\right)$

我们设 $i\in I_{up}(\alpha)$,$j\in I_{low}(\alpha)$,每次选择 $\tau$-violating 的 $\alpha_{ij}$ 进行优化,意味着 $F_{i}\left(\alpha\right)-F_{j}\left(\alpha\right)<-\tau$,也即 ${\phi}'(0)<-\tau$,此时 $t^{*}$ 必然大于零。

${\phi(t)}$ 的函数图像如下:

图中 $t_{Q}$ 是 $\phi(t)$ 的最小值点,但由于限制条件存在的不等式约束,当 $y_{i}\ne y_{j}$ 时,$t^{*}$ 可能无法在 $t_{Q}$ 处取得,此时 ${\phi}'(t^{*})<-\tau$,$i\in I_{low}(\alpha)$,$j\in I_{up}(\alpha)$,$\alpha_{ij}$ 将重新满足 $\tau$-optimal。

设经过点 $(0,\phi(0))$ 和 $(t_{Q},\phi(t_{Q}))$ 的线性函数为 $l(t)$,由于 ${\phi(t)}$ 是凸函数,这意味着在区间 $t\in[0,t_{Q}]$ 内,$\phi(t)\le l(t)$。根据这一定理,我们可以推出一个重要结论:

 综上所述,我们可以得到 SMO 算法的最小化步长:

 

 

SMO 的收敛性证明

我们将上一节的结论,重新调整为下面的不等式:

设 $k\in\mathbb{N}$,$\alpha_{k}$ 表示第 $k$ 轮迭代时的初始值,$\alpha_{k+1}$ 为该轮迭代优化后的值,则:

易得:

又根据三角不等式可知:

所以:

同理,设 $p\in\mathbb{N_{+}}$,则有:

因为 $f(\alpha_{k})>f(\alpha_{k+p})$,且 $f(\cdot)$ 是凸函数,这意味着当 $k$ 足够大时,存在 $\bar{f}$,使得 $f(\cdot)\to \bar{f}$。

于是,对于任意实数 $\varepsilon> 0$,存在 $n\in\mathbb{N}$,使得当 $k,p>n$ 时,下面的不等式成立:

这证明了 $\{\alpha_{k}\}$ 是柯西序列,该序列将会收敛。

 

参考资料

柯西收敛准则

Convergence of a Generalized SMO Algorithm for SVM Classifier Design

 

posted @ 2023-04-29 01:03  CookMyCode  阅读(333)  评论(0编辑  收藏  举报