SVM的理论基础
上面我们讨论了关于 拉格朗日乘子法和KKT条件,下面我们讨论一下 SVM的一些基础概念。
我们从一个简单地二分类问题来看,给定 训练样本集合\( D =\{(x_1,y_1), (x_2,y_2),…, (x_m, y_m)\}, y_i \ \epsilon \ \{-1, +1\}\)如下图所示:
分类学习最基本的思想就是找到一个 超平面将不同的类别分开,因此我们希望找一个决策面使得两个类分开,那么决策面一般表示就是 \(W^T + b = 0\),现在的问题是如何找对应的W和b使得分割效果最好,这里跟logistic分类问题一样,也是找 权值。
在那里,我们使根据每一个样本的输出值和目标值得误差不断的调整权值W和b来求解。当然这种求解方式只是众多方式中的一种,那么SVM是怎么求最优的方式的呢?
这里我们反过来看,假设我们知道了结果,就是上面这样的分类线对应的权值W和b。那么我们会看到,在这两个类里面,是不是总能找到离这个线最近的点,像下面这样:
然后我们定义一下 离这条分类线的最近的点到这个分类面的距离分别为\(d_1\) 和 \(d_2\),因此我们知道总的距离就是\(D = (d_1 + d_2\),所以SVM的策略是 先找最边上的点,然后再找这两个距离之和D, 然后求解D的最大值。于是我们找到了这样的一个分界面\(W^T + b = 0\),那么做离它最近的两类点且平行于分类面,如上面的虚线所示。
W是这个超平面的法向量