## 理解SVM 的三层境界-01 主要参考资料为: **1: 结构之法算法之道blog**(作者July)的 **支持向量机通俗导论(理解SVM的三层境界)**。 [链接]: https://blog.csdn.net/v_JULY_v/article/details/7624837 2: Convex Optimization(作者Stephen Boyd) [链接]: https://github.com/Polaris-F/FilesShare/blob/main/%E3%80%8AConvex%20Optimization(Stephen%20Boyd)%E3%80%8B%E8%8B%B1%E6%96%87%E7%89%88.pdf 本文为以自己思路整理的笔记。 ## 一、了解SVM ​ **SVM**,全称 $ Support\ Vector\ Machine$,中文名 支持向量机,是一种二分类模型,其中,支持向量表示的是距离超平面最近的向量,即当超平面移动时候,首先“穿过”的向量。 **首先我们现在理解一下什么是 Logistic 回归:** ​ *Logistic* 回归目的是从特征学习出一个 0/1 分类模型,将样本向量带入到 *Logistic* 函数(或者称作 *sigmoid* 函数)得到的函数值被认为是属于 $y=1$ 这个类别的概率。 *Logistic* 函数表达式以及图像如下: $$ g(z) = \frac{1}{1+e^{-z}} \tag{1.1} $$ <div align="center" > <img src="https://gitee.com/PolarisF/Picgo_image/raw/master/20210201213816.png" style="zoom:50%;"/> </div> <center >图1 g(z)的函数图像</center> 从而当我们新拿到一个样本的时候,通过 $g(z)$ 就可以判断其属于哪一个类,若 $g(z)>0.5$ 就属于 $y=1$ 的类,反之属于 $y=0$ 的类。 ​ **Q:** 为什么一个多维的样本可以用过这个一元函数进行分类呢,因为这里 $z\in \R$ ? ​ **A:** 对一个多维的样本,我们可以通过超平面方程,将多维向量映射到实轴上,然后用过 $g(z)$ 分类即可。 **然后看一下什么是线性分类:** ​ 以二维平面举例,平面上有两种不同数据,分别用○和△标示,由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,在二维平面上中,这条直线的表达式为 $a x + b y + c=0$ ,当数据的维数为 $n$ 维时候,这个“直线”称为超平面,可以表示为 $f(x) = \omega ^T x+b$ ,这里 $\omega$ 和 $x$ 为一列向量, $b$ 为常数。当数据刚好在平面上时候有 $f(x)=0$ 。超平面两边的数据点分别对应标签 $y=1$ 和 $y=-1$ 。 <div align="center" > <img src="https://gitee.com/PolarisF/Picgo_image/raw/master/20210201221010.png"/> </div> <center>图2 线性分类示例</center> ​ **Q:**为什么 SVM 中的标签 $y$ 只取 1 和 -1 ? ​ **A:** 因为 $y$ 是二分类的分类标签,相当于上述 *Logistic* 函数的上下界 $0/1$ ,我们只需要对 $g(z) $ 进行上下平移和缩放即可得到想要的上下界,我们去 1 和 -1 是为了我们后面计算的方便性,因为超平面两侧的函数值符号相反,所以根据这个特点可以将判断是否正确分类样本的标准用 $y\cdot (\omega x+b)>0$ 统一表示。当然分类标签取 1 和 2 也是可以的,那就需要奖判断标准改为 $(y-1.5)\cdot (\omega x+b)>0$ 表示,显然前者更方便。 ​ 接下来,当我们需要对一些数据进行线性分类时候,只需要找到 一组 $\omega \ b$ 确定一个平面。怎样确定最优的超平面呢,从直观上来讲,我们需要选择距离两边数据的**距离间隔最大**的超平面。 ​ 在二维空间中,我们有点到直线的距离公式 $d = \frac{|ax+by+c|}{\sqrt{a^2+b^2}}$ ,类似的,在高维空间中,点到超平面的距离可以表示为 $d=\frac{|\omega^Tx+b|}{||\omega||}$ ,其中 $||\omega||=\sqrt{\omega_1^2+\omega_1^2+\cdots+\omega_1^2}$ ,表示向量 $\omega$ 的二范数。对于支持向量对应的距离 $d_0$ ,我们有 $d_0 = \min_{i\in[0,n]}\frac{y_i(\omega^Tx_i+b)}{||\omega||}$ , 所以我们的优化问题可以描述为: $$ \begin{equation} \begin{aligned} & \text{maximize}\quad d_0 \\ & \text{subject to} \quad \frac{y_i(\omega^Tx_i+b)}{||\omega||} \geq d_0,\ i = 1,\cdots,n \end{aligned} \end{equation} \tag{1.2} $$ 可以看到这个形式略显复杂,接下来考虑是否可以通过继续挖掘信息简化优化问题。 ​ 在公式(1.2)的约束条件中,可以看到不等式的两个分母 都是 $||\omega||$ ,所以我们只需要判断分子即可,分子表达式的意义可以理解为集合距离与超平面方程系数 $||\omega||$ 的乘积,显然针对一组样本数据,我们要得到超平面方程的两个参数,这样的最优参数有无数组,因为 $w^Tx+b$ 和 $a(\omega^Tx+b),a\neq0$ 表示同一个平面,如果我们令目标\数中的分子 $\min _{i\in[0,n]}y_i(\omega^Tx_i+b)=1$ ,这样就唯一确定了一组参数 $\omega \ b$ ,并且公示(1.2)可以简化为: $$ \begin{equation} \begin{aligned} & \text{maximize}\quad \frac{1}{||\omega||} \\ & \text{subject to} \quad y_i(\omega^Tx_i+b)\geq 1,\ i = 1,\cdots,n \end{aligned} \end{equation} \tag{1.3} $$ <div align="center" > <img src="https://gitee.com/PolarisF/Picgo_image/raw/master/20210205155103.png"/> </div> <center>图3 二维SVM线性分类示例</center> ## 二、深入 SVM ## 三、 证明SVM 敬请期待~ ##