Support Vector Machine

SVM 是个线性分类模型 (即便使用了 kernel,它本质也是个高维空间的线性模型)

Loss Function

SVM 使用的 loss function 是 hinge loss,hinge loss 的好处包括

Loss Funtion 的进化

这一节我们看一下通常看见的 SVM loss function 的形式是怎么一步一步演化得到的

Dual Problem

通常上述优化问题会被转化为 dual problem 来解决,定义 lagrangian function

其中 $\alpha_i \geq 0, \beta_i \geq 0$。Dual problem 可以被表示为

其中 $\underset{w, v, \xi}{\min} L(w, v, \xi, \alpha, \beta)$ 为 dual function,首先我们先求解一下这个 dual function,分别对 $w, v, \xi$ 求 partial derivative

最后一个式子其实包含了 $n$ 个等式,即 $\alpha_i + \beta_i = C, \;\; \forall i = 1, \cdots, n$,将这里得到的变量间的关系带入 lagrangian function 有 (目测一下,就可以发现很多项都可以消掉)

最后一个式子中 $Y$ 是 diagonal matrix 且 $Y_{ii} = y_i$,$K$ 表示 kernel matrix,$K_{ij} = x_i^T x_j$,$\b{1}$ 表示元素全为 1 的 vector。这里已经不包含 $\alpha$,由于 $\alpha_i + \beta_i = C, \alpha_i \geq 0, \beta_i \geq 0$,所以 $0 \leq \beta_i \leq C$,同时 $\sum_{i=1}^n \beta_i y_i = 0$,因此最后我们得到如下 dual problem

有了这样的问题形式,我们就可以应用所谓的 kernel trick,即用其他的函数计算 $K_{ij}$,比如非常常用的 RBF kernel

Kernel function 本质上是更高维空间的内积,同样用于度量两两样本之间的相似性

Support Vector

前面我们推导出 $w = \sum_{i=1}^n \beta_i y_i x_i$,所谓的 support vector 指的是对应于 $\beta_i \neq 0$ 的那些 $x_i$,那哪些 $x_i$ 对应的 $\beta_i$ 不等于 0 呢?根据 KKT condition,问题的最优解必然满足

因此对于 $(y_i (w^T x_i + v) - 1 + \xi_i) \neq 0$ 的 $x_i$ 其对应的 $\beta_i$ 必然等于 0,这些样本实际上就是处于 margin 之外的那些样本,而在 margin 内或者处于分类面错误一侧的 $x_i$ 其 $\beta_i \neq 0$,他们就是 support vector