## 理解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
敬请期待~
##