SVM 之线性可分支持向量机

支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。

模型包括以下几类:

 

1. 基本概念

   线性可分支持向量机前提:训练集样本线性可分。设训练集样本 $T$:

$$T = \left \{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{n},y_{n})\right \}$$

   任意一个超平面 $(w,b)$ 关于样本点 $(x_{i},y_{i})$ 的几何间隔为:

$$\gamma_{i} = \frac{|w^{T}x_{i} + b|}{||w||} = \frac{y_{i}(w^{T}x_{i} + b)}{||w||}$$

   这里的几何间隔不是指点到超平面的距离,而是实例点到超平面带符号的距离,可以为负数,此时样本点被错误分类;当样本点被正确分类时,

   几何间隔才等于点到超平面的距离。

   任意一个超平面关于训练集 $T$ 的几何间隔定义为:所有样本点到超平面几何间隔的最小值,即

$$\gamma = \min_{i}\gamma_{i} = \min_{i} \frac{y_{i}(w^{T}x_{i} + b)}{||w||}$$

   那么这个到超平面距离最小的样本点就称为这条直线的支持向量。举个例子,观察下图

        

   对于同一个超平面 $(w,b)$,【错误分类点的几何间隔 $< 0 <$ 正确分类点的几何间隔】

      1)绿色直线的支持向量为点 $D$,几何间隔为 $\gamma_{i} \bigg |_{D}$,是一个负数。

      2)蓝色直线的支持向量为点 $A$,几何间隔为 $\gamma_{i} \bigg |_{A}$,也是一个负数。

      3)橙色直线的支持向量为点 $A \; or \; D$,几何间隔为 $\gamma_{i} \bigg |_{A}$,是一个正数,等于距离。

   并不是每一个样本点都可以成为支持向量,比如图中的 $H$ 点,就没办法找到一条直线,使它到该直线的几何间隔比其它样本点的都小。

   支持向量的个数取决于样本,一般是有限的几个,且位于边界。

   每个支持向量都会对应一簇超平面,这簇超平面到该支持向量的几何间隔比其它样本点都小。

 

2. 什么样的超平面才是最优超平面?

   考虑如下左图 $1$,过点 $I$ 和点 $F$ 做两条平行线,且平行线之间没有其它的样本点,那么位于这两条平行线之间的直线必然是要么以 $I$ 点为

   支持向量,要么以 $F$ 点为支持向量。现在我们将这两条直线同步地逆时针旋转,旋转过程中必须保持两条平行线之间没有其它样本点,旋转到

   一定程度,如下图 $2$。此时达到临界点,如果在两条平行线之间选择一条分割线,显然黑线会是最好的。

   如果在 $C$ 和 $F$ 两点做平行线,如下图 $3$,很明显图 $3$ 中的平行线之间的间隔更大,那么能否认为 $3$ 中的黑色直线比 $2$ 中的更优?

                  

   上图中的虚线称为支撑超平面,很明显正类和负类都各有一个支撑超平面,它们一一对应,即满足:

       1)每一个支撑超平面都经过支持向量,且相互平行。

       2)两个支撑超平面之间没有其它样本点,是一个“真空”区域。

   硬间隔:两个对应的支撑超平面之间的距离。

   线性可分支持向量机模型选择的依据是:硬间隔最大化也就是说当两个支撑超平面之间的距离最大的时候,位于它们中间的那个超平面就是最优超平面。

   按这种思路,图 $3$ 中的黑线是优于图 $2$ 的。

 

3. 建立约束最优化问题

   仍然以 $2$ 中的图为例。先只考虑假设空间中的超平面,即会使样本点都被正确分类的超平面,这些超平面只会位于下图所示位置:

     

   图中 $A,C,I,F,H$ 都可能成为分离超平面的支持向量,我们目标是:求出一组参数 $w,b$ 使得对应的硬间隔最大。

   现在需要确定一个指标来作为评判标准。

   观察一下 $2$ 中的图 $2$,黑色直线到点 $I$ 或点 $F$ 的距离是最大的,此时它的支持向量有两个,即点 $I,F$,这是一个临界直线,往左,

   则支持向量仅为 $I$;往右,则支持向量仅为 $F$。

   而我们要求的那个黑色直线满足:所有以点 $I$ 或点 $F$ 为支持向量的直线簇中,与支持向量的几何间隔最大的那条

   另外,做为支持向量的点只需要考虑正类或者负类,因为一方会决定另一方。求解步骤如下:

   1)设点 $H$ 坐标 $(x_{H},y_{H})$,则该点到超平面 $(w,b)$ 的几何间隔为

$$\gamma_{H} = \frac{y_{H}\left ( w^{T}x_{H} + b\right )}{||w||}$$

      则几何间隔最大的那个超平面为

$$(w,b) = arg \max_{w,b} \; \gamma_{H}$$

      求解过程中必须保证支持向量仍然为 $F$,即其它样本点到超平面的距离都必须 $\geq \gamma_{H}$,于是有 $n$ 个约束:

$$\frac{y_{i}\left ( w^{T}x_{i} + b\right )}{||w||} \geq \gamma_{H}, \; i = 1,2,\cdots,n$$

   2)设点 $F$ 坐标 $(x_{F},y_{F})$,与 1)中过程相同,可得到:

$$\gamma_{F} = \frac{y_{F}\left ( w^{T}x_{F} + b\right )}{||w||} \\
(w,b) = arg \max_{w,b} \; \gamma_{F} \\
s.t. \;\;\; \frac{y_{i}\left ( w^{T}x_{i} + b\right )}{||w||} \geq \gamma_{F}, \; i = 1,2,\cdots,n$$

   上面两步之后会得到 $2$ 条分割线,取几何间隔最大的那条作为最终的分离超平面。

   但是,上面的求解过程是站在了上帝视角,给了一堆样本点,我们根本就不会知道哪些点能作为支持向量,即 $H,F$ 点都是未知的。

   我们来观察一下 $\gamma_{H}$,思考一个问题:分子的取值会不会影响最优化问题的解?

   分析:对于超平面 $w^{T}x + b = 0$,可以按比例改变系数 $w,b$,改变后仍然代表同一个超平面,设点 $x_{0}$,那么它到这个超平面的距离为 $d = \frac{|w^{T}x + b|}{|w|}$,

         现在调整 $w,b$ 为 $\lambda w,\lambda b$,距离 $d$ 恒定不变,但分子和分母都各自改变了,也就是说,可以通过调整比例 $\lambda$ 使分子出现任何数值,那么总会存在

         一个比例 $\lambda_{0}$ 使得

$$|\;(\lambda_{0} w)^{T}x + \lambda_{0}b\;| = 1 \\
w \rightarrow w^{'} = \lambda_{0}w \\
b \rightarrow b^{'} = \lambda_{0}b$$

         此时距离公式变成 $d = \frac{1}{|w^{'}|}$。

         现在来考虑 $\gamma_{H}$,最优化问题是求它的最大值,设最优解为 $(w^{*},b^{*})$,备选的直线是:所有以点 $H$ 为支持向量的直线簇(约束),那么这些

         直线也可以各自调整它们的系数 $w,b$,调整后仍然会代表相同的直线。也就是说,每一条直线都会存在一个系数 $\lambda$,使得调整后的参数 $w^{'},b^{'}$ 满足

$$y_{H}\left ( (w^{'})^{T}x_{H} + b^{'} \right ) = 1 \\
w^{'} = \lambda w \\
b^{'} = \lambda b$$

         那么此时求得的最优解就变成了 $\left ( \lambda w^{*}, \lambda b^{*} \right )$,代表的仍然是同一个超平面。

   此时惊讶的发现根本就没必要知道支持向量的具体数值,上面的步骤 1) 2)就可以写到一起,如下:

$$max \; \frac{1}{||w||} \\
s.t. \;\;\; y_{i}\left ( w^{T}x_{i} + b\right ) \geq 1, \; i = 1,2,\cdots,n$$

   上面就等价于求分母的最小值,于是得到最终所要求解的最优化问题

$$min \; \frac{1}{2}||w||^{2} \\
s.t. \;\;\; y_{i}\left ( w^{T}x_{i} + b\right ) - 1 \geq 0, \; i = 1,2,\cdots,n$$

   为什么这么转化呢?可能与凸优化相关,暂时不论。

 

4. 最优超平面唯一性证明

   只需要证明:以某个样本点作为支持向量的最优超平面唯一。

   比如 $2$ 中的图,以点 $H$ 为支持向量的直线簇中,只能找到一条直线,它到点 $H$ 的几何间隔最大。

   证明:

       采用反证法。即假设存在两个几何间隔最大的超平面 $(w_{1}^{*}, b_{1}^{*}),(w_{2}^{*}, b_{2}^{*})$,因为都是最优解,所以:

$$||w_{1}^{*}|| = ||w_{2}^{*}|| = c$$

       将这两个解代入约束条件有:

$$y_{i}(w_{1}^{*}x_{i} + b_{1}^{*}) - 1 \geq 0\\
y_{i}(w_{2}^{*}x_{i} + b_{2}^{*}) - 1 \geq 0$$

       上面两式相加得:

$$y_{i}\left ( \frac{w_{1}^{*} + w_{2}^{*}}{2} \cdot x_{i} + \frac{b_{1}^{*} + b_{2}^{*}}{2}\right ) - 1 \geq 0$$

       令 $w = \frac{w_{1}^{*} + w_{2}^{*}}{2}, \; b = \frac{b_{1}^{*} + b_{2}^{*}}{2}$,所以 $(w,b)$ 是问题的可行解(满足约束条件的解),根据向量三角不等式有

$$c \leq ||w|| = ||\frac{1}{2}w_{1}^{*} + \frac{1}{2}w_{2}^{*}|| \leq \frac{1}{2}||w_{1}^{*}|| + \frac{1}{2}||w_{2}^{*}|| = c$$

       所以有

$$||w_{1}^{*} + w_{2}^{*}|| = ||w_{1}^{*}|| + ||w_{2}^{*}||  \\
\Rightarrow \; w_{1}^{*} = w_{2}^{*}$$

       现在,最优解 $(w_{1}^{*}, b_{1}^{*}),(w_{2}^{*}, b_{2}^{*})$ 可以记为 $(w^{*}, b_{1}^{*}),(w^{*}, b_{2}^{*})$,下面证明它们的截距也相同。

       对于超平面 $(w^{*}, b_{1}^{*})$,在正类和负类中分别选择一个它的支持向量 $x_{1}^{'},x_{1}^{''}$,则这两个向量会使约束条件取等号,即

$$w^{*}x_{1}^{'} + b_{1}^{*} - 1 = 0  \\
-w^{*}x_{1}^{''} - b_{1}^{*} - 1 = 0$$

       对于超平面 $(w^{*}, b_{2}^{*})$,在正类和负类中分别选择一个它的支持向量 $x_{2}^{'},x_{2}^{''}$,则这两个向量会使约束条件取等号,即

$$w^{*}x_{2}^{'} + b_{1}^{*} - 1 = 0  \\
-w^{*}x_{2}^{''} - b_{1}^{*} - 1 = 0$$

       分别得到

$$b_{1}^{*} = -\frac{1}{2}(w^{*}x_{1}^{'} + w^{*}x_{1}^{''})  \\
b_{2}^{*} = -\frac{1}{2}(w^{*}x_{2}^{'} + w^{*}x_{2}^{''})  \\
\Rightarrow \; b_{1}^{*} - b_{2}^{*} = -\frac{1}{2}\left [ w^{*} \cdot (x_{1}^{'} - x_{2}^{'}) + w^{*} \cdot (x_{1}^{''} - x_{2}^{''}) \right ]$$

       又因为

$$w^{*}x_{2}^{'} + b_{1}^{*} \geq 1 = w^{*}x_{1}^{'} + b_{1}^{*} \\
w^{*}x_{1}^{'} + b_{2}^{*} \geq 1 = w^{*}x_{2}^{'} + b_{2}^{*} \\
\Rightarrow \; w^{*}(x_{1}^{'} - x_{2}^{'}) = 0$$

       同理:$w^{*}(x_{1}^{''} - x_{2}^{''}) = 0$,所以 $b_{1}^{*} = b_{2}^{*}$。

   证毕

 

5. 最优化问题求解

   如果不懂什么是拉格朗日乘子拉格朗日对偶,可先阅读这两篇博客。

   现在要求解的原始问题为:

$$min \; \frac{1}{2}||w||^{2} \\
s.t. \;\;\; 1 - y_{i}\left ( w^{T}x_{i} + b\right )  \leq 0, \; i = 1,2,\cdots,n$$

   定义拉格朗日函数:

$$L(w,b,\alpha) = \frac{1}{2}||w||^{2} + \sum_{i=1}^{n}\alpha_{i}\left [ 1 - y_{i}\left ( w^{T}x_{i} + b\right ) \right ]\\
= \frac{1}{2}||w||^{2} + \sum_{i=1}^{n}\alpha_{i}\left [ 1 - y_{i}\left ( w^{T}x_{i} + b\right ) \right ]  \\
= \frac{1}{2}||w||^{2} - \sum_{i=1}^{n}\alpha_{i}y_{i}\left ( w^{T}x_{i} + b\right ) + \sum_{i=1}^{n}\alpha_{i}, \;\; \alpha_{i} \geq 0, \; i = 1,2,...,n$$

   可以写出求解这个不等式约束问题的 KKT 条件:

$$\left\{\begin{matrix}
L_{w} = w - \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i} = 0 \\
L_{b} = -\sum_{i=1}^{n}\alpha_{i}y_{i} = 0 \\
y_{i}\left ( w^{T}x_{i} + b\right ) - 1 \geq 0, \; i = 1,2,\cdots,n \\
\alpha_{i} \left [ y_{i}\left ( w^{T}x_{i} + b\right ) - 1 \right ] = 0, \; i = 1,2,\cdots,n \\
\alpha_{i} \geq 0
\end{matrix}\right. \; \Rightarrow \;
\left\{\begin{matrix}
w = \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i} \\
\sum_{i=1}^{n}\alpha_{i}y_{i} = 0 \\
b = y_{j} - w^{T}x_{j} = y_{j} - \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}^{T}x_{j}, \;(\alpha_{j} > 0)
\end{matrix}\right.$$

   如果 $\alpha$ 的任何一个分量都为 $0$,则可推出法向量 $w$ 为 $0$,矛盾,所以必有一个分量 $\alpha_{j} > 0$,通过这个正分量来计算 $b$。

   很明显:只要知道了 $\alpha_{i},\; i = 1,2,...,n$ 就能够求出 $w,b$

   $\bullet$ 下面采用拉格朗日对偶来求。

     原始问题为

$$\min_{w,b} \bigg [ \max_{\alpha_{i} \;:\;\alpha_{i} \geq 0} L(w,b,\alpha) \bigg]$$

     它对应的对偶问题为

$$\max_{\alpha_{i} \;:\;\alpha_{i} \geq 0} \bigg [ \min_{w,b} L(w,b,\alpha) \bigg]$$

     1)求 $\min_{w,b} L(w,b,\alpha)$

$$\left\{\begin{matrix}
L_{w} = w - \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i} = 0\\
L_{b} = -\sum_{i=1}^{n}\alpha_{i}y_{i} = 0
\end{matrix}\right. \;\Rightarrow \;
\left\{\begin{matrix}
w = \sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}\\
\sum_{i=1}^{n}\alpha_{i}y_{i} = 0
\end{matrix}\right.$$

        将求解结果代入拉格朗日函数得

$$L(w,b,\alpha) = \frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i} \cdot x_{j}) - \sum_{i=1}^{n}\alpha_{i}y_{i} \left [ \left (\sum_{j=1}^{n}\alpha_{j}y_{j}x_{j}^{T}  \right )x_{i} + b\right ] + \sum_{i=1}^{n}\alpha_{i} \\
= -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}^{T}x_{j}) + \sum_{i=1}^{n}\alpha_{i}$$

     2)求 $\min_{w,b} L(w,b,\alpha)$ 对 $\alpha$ 的极大

        对偶的目的就是为了消去 $w,b$,将 1)中得到的结果添个负号改为极小化问题,如下:

$$\min_{\alpha } \; \frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}^{T}x_{j}) -\sum_{i=1}^{n}\alpha_{i} \\
s.t. \;\;\; \sum_{i=1}^{n}\alpha_{i}y_{i} = 0 \\
\alpha_{i} \geq 0, \; i = 1,2,\cdots,n$$

       我们先看看这样化简有什么好处?

       第一个好处就是未知数的个数下降了, 把前面含有 $w$ 和 $b$ 的未知数消去了,现在的未知数只剩下 $\alpha_{i}$ 和 $\alpha_{j}$,其他未知数都为已知量。

       现在的问题是怎么求 $\alpha$。采用的是 $SMO$ 算法,将在另一篇博客介绍。

 

posted @ 2020-10-09 14:19  _yanghh  阅读(590)  评论(0编辑  收藏  举报