机器学习技法CH4:Soft-Margin Support Vector Machine
CH4:Soft-Margin Support Vector Machine
Motivation and Primal
我们不能一直追求全部正确,数据也不一定可分。
在pocket中我们选择容忍一些错误:
因此我们让SVM上min的目标不仅包含$\frac{1}{2}w^Tw$ ,也包括错误的数量,这个C代表着这两者的权衡,如果你不在意多错一点,想要使得$\frac{1}{2}w^Tw$最小(即胖胖的间隔更宽),那么C就可以小一点,反之同理。
这是又一个trade-off: 在更宽的边界和噪声容忍度上的权衡。
上面这个式子想法很好,但是有几个问题:
- $[·]$不是一个线性函数,QP(二次规划)没法解决。
- 我们无法区分错误的严重程度,大的错误和小的错误被认为相同。
我们首先把不同的错误程度用$\xi$代表,这样我们就把记录错误的数量转换为了记录多大的错误。
这个$\xi$代表着错误程度,如下图代表着距离胖胖额外边界的长度:
C大小的意义:
现在的问题转化为了:
有了这个以后我们做对偶的QP问题,把$\tilde{d}$拿掉。
Dual Problem
和之前一样,先求lagrange fuction:
化简一下$\xi$和$\beta$。
和之前算Dual SVM一样,对不同变量进行求偏导:
最后我们转化为了如下的问题:
这里的soft margin推导和我们之前所提到的hard margin区别就是:$\alpha$多了一个上界。
Messages
和我们做hard-margin的过程一样,但是这个里的b怎么求呢?
- 和之前hard-margin只用第一个条件,那么我们求出来的SV:终于有b和$\xi$两个未知的是无法求出b的。
- 我们考虑用第二个式子,当$\alpha<C$的时候,$\xi=0$,那么我们就可以求出解了:
用free SV可以求出$b$。
C越来越大,我们做的正确的会越来越多,但是边界会越来越瘦。
不是支持向量的:原理fat boundary的那些点
free SV:fat boundary的边界点
bounded SV:越界的点,比如:
上图中红叉的距离没有在红色边界的一遍,他的错误程度就是紫色线的距离。
Model Selection
我们在用Gauss核的时候有两个要选的:$C$和$\gamma$
怎么选择合适的呢?
做validation即可:
有趣的是在做Leave-One-Out Cross Validation的时候有一些新的值得注意的东西:
我们取出来的One是$\alpha=0$的,即non SV ,这些不是支持向量,因此加上也不会使得结果更准确。
我们的non-SV 一定都是正确的,而SV的错误率最多也就是1而已。加入我们一共有N个向量,那么我们同体的错误肯定小于$SV的数量 / N$.
即:
这也侧面告诉我们可以通过SV的数量来做安全检查:
特别大的SV数量我们就要小心用了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!