线性支持向量机。
从PLA引入。对PLA而言,下面任何一条线都可能被选为g,其实我们直观上会觉得第三条线更好。
对以后要预测的点x假设和xn很接近,可以看做xn加上的一些noise,那么我们希望这样的x也能和xn的结果一样。
所以如果点和分隔平面距离大,那么可以认为平面能够容忍更多noise,更加健壮,robust.
因此我们希望找到这样的一条线,首先能够把所有点都正确分开,另外使得点到线的距离的最小值,能够最大。也就是找到一条最胖的线。
问题重写一下
这里呢,把w拆成w和常数项b,假设空间是
任意一点x到分隔平面的距离是
那么问题继续改写成
注意这里去掉绝对值的方法是乘以了yn,因为这条线能够正确分类,所以 yn * h(xn)可以替换掉绝对值。
然后我们做一个scale, 使
那由于有第二个st的限制,第一个肯定成立,所以省去,问题成为
现在希望把st里面的min去掉,方法是把条件放宽。放宽条件并不影响找到原始的最优b、w
目前就得到了通常的SVM问题的形式
这个不等式约束优化问题是一个二次规划问题(quadratic programming, QP),目标函数是关于 b和w的二次式,约束是关于b和w的一次式
将问题写成标准的二次规划的形式,通过软件就可以求解
线性硬间隔SVM的求解过程
hard-margin是说能将所有点都正确的分开,不允许犯错。linear是指我们使用的就是原始的xn,没有经过变换。
将xn映射到zn,就可以做非线性的分隔。
SVM与正则的联系
SVM可以看做一种正则,最小化的目标和约束条件交换了一下。它要求Ein=0后再使w的长度最小。这个regularizetion是希望要一个胖胖的边界,能够抵抗一些误差。
SVM与VC维的联系
我们的最大边界算法希望找一个g,它的边界要求大于某一个数。那么它在特征的资料上,能够做的二分的组合变少了。理解为有效的vc维变小了。
所以可以通过控制线的胖瘦,来控制模型的复杂度。