SE-ML06-支持向量机

线性 SVM

线性 SVM 最大化所有训练样本到决策平面的最小距离

具有最小距离的样本,叫支持向量。

计算 margin

给定模型 $f(\textbf{x})=\textbf{w}^T\textbf{x}+b$,和任一样本 $x$ ,求其到超平面的距离 $r$。

$r=\frac{|f(x)|}{||w||}$

需要优化的式子出来了:

$$ \mathop{argmax}\limits_{\textbf{w},b}(\mathop{min}\limits_{i}(r_i)) $$

可以看到,这个式子的取值完全由间隔最小的样本决定。即模型的参数完全是由支持向量决定的。

分类

$f(x) > 0$ 分为正类,否则是反类。我们的目标就是让 SVM 尽量能完全分开两个类。

至于如何判断预测是否正确,如果正类的真实值是 1,反类是 -1 的话

$y_if(x_i)$ 为正值,预测正确。否则预测错误。

利用这个性质,需要优化的式子可以这样变,以保证 SVM 的可分性:

$$ \mathop{argmax}\limits_{\textbf{w},b}(\mathop{min}\limits_{i}(\frac{y_if(x_i)}{\textbf{||w||}})) $$

既考虑了预测的正确性,也考虑了最大化间隔的目标。

进一步优化

要优化的式子还是不够简单。我们从优化结果反着考虑:

假设我们最终得到的最优的模型的参数是 $(\textbf{w},b)$,考虑一个参数为 $(c\textbf{w},cb)$ 的模型,其中 $c>0$。

可以发现,这个新模型和最优的模型一毛一样

  • 对于样本 $x_i$,二者预测结果一致。因为 $c$ 根本不影响符号
  • 支持向量以及间隔不变,可以参考 $r$ 的公式,$c$ 都抵消掉了

所以,我们可以通过引入这个参数 $c$ ,使得要优化的式子更简单。

通过 $c$ 改变 $||w||=1$ 是一个不错的思路,但细想还是会发现,仍然比较复杂。

直接揭晓答案:通过 $c$,在约束 $\mathop{min}\limits_{i}(y_if(x_i))=1$,同时最大化 $\frac{1}{||\textbf{w}||}$。

拉格朗日乘子法

在约束条件下优化,可以用拉格朗日乘子法解决。

KKT 条件

对偶形式

和原始空间同时达到最优解。

soft margin

非线性支持向量机

通过引入类似线性模型中的联系函数,可以提高 SVM 的表达能力。

Kernel trick

类似联系函数的东西,能将低维特征映射到高维空间。