_SVM_,指的是支持向量机(_support vector machines_)。

支持向量机,假设数据是线性可分的,那么我们就能找到一个超平面,将数据分成两类。但是一旦线性可分,我们就可能找到无数的超平面,都可以将数据分成两类:

但是很明显,上图中虽然a, c都对数据进行了有效的分割。但很明显,都不如b分割的好。

我们可以用“间隔”这个概念来定义这个超平面(在二维上是线)对数据的分割优劣。在分类正确的情况下,间隔越大,我们认为对数据的分类越好。

我们的目标是得到数据的分类:$y \in \lbrace -1, +1 \rbrace$。

这个超平面,则可以表示成$w^Tx+b$,其中$w=[\theta_1, \ldots, \theta_n]^T, b=\theta_0$。这个超平面可以表达成一个$n+1$维向量。

判别函数:

假设则可以表示成:$h_{w,b}(x)=g(w^Tx+b)$

间隔

函数间隔(functional margin)

某个超平面$(w,b)$和训练样本$(x^{(i)}, y^{(i)})$之间的函数间隔被表示成:

于是,我们可以知道:

  1. 当$y^{(i)}=1$,于是我们想获得更大的函数间隔(这是我们的目标),就需要使得$w^Tx^{(i)}+b \gg 0$
  2. 相反,当$y^{(i)}=-1$,我们想获得更大的函数间隔,就需要使得$w^Tx^{(i)}+b \ll 0$

并且,很明显,只有当函数间隔$\hat{\gamma}>0$时,分类结果是正确的。

最后,超平面与数据集$\lbrace (x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), \ldots \rbrace$之间的函数间隔,被定义为所有函数间隔中的最小值:

几何间隔(geometric margin)

从点$(x^{(i)}, y^{(i)})$出发,对超平面做垂线,得到点 D,我们知道他们之间的距离,就是该超平面到数据点$(x^{(i)}, y^{(i)})$的几何间隔。

经过推导,D 的坐标可以表示为:

又因为,D 在超平面$w^Tx+b=0$上,所以:

加上正负分类的判断:

我们可以看到,几何间隔跟函数间隔之间存在如下的关系:

同样的,超平面与数据集$\lbrace (x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), \ldots \rbrace$之间的几何间隔,被定义为所有几何间隔中的最小值:

最后,我们导出最优间隔分类器(_Optimal Margin Classifier_)问题:选择$w, b$,最大化$\gamma$,同时满足$\forall(x^{(i)}, y^{(i)})$,$ y^{(i)} \cdot ((\frac{w}{||w||})^T \cdot x^{(i)}+\frac{b}{||w||}) \geq \gamma$(所有数据点的几何间隔都大于该最小几何间隔)。

目前为止,已经是 SVM 问题的一个简化版本。