在WB二面中,问到让讲一下SVM算法。
我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性切割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1。
面试官就问,为什么是正负1?
当时没有答上来,看来还是对模型不够理解。
回来查资料和ppt等,解答例如以下:
线性切割面是f(x) = wx + b,该线性切割面是要把样本点分为两类:
对于正样本,都满足:wx + b > 0;
对于负样本。都满足&#xff1a;wx &#43; b <0&#xff1b;
从式子中能够观察到&#xff0c;假设同一时候放大或缩小w和b。最后的结果是不受影响的&#xff0c;还是同一个线性切割面。
因此&#xff0c;我们能够做一个要求&#xff1a;
对于全部正样本。都满足&#xff1a;wx &#43; b >&#61; 1&#xff1b;
对于全部负样本。都满足&#xff1a;wx &#43; b <&#61; -1&#xff1b;
当中&#xff0c;间隔边界外的点相应的是">"或"<"号。而间隔边界上的点&#xff0c;相应的是"&#61;"号。
即得到&#xff1a;
对于间隔边界上的正样本&#xff0c;都满足&#xff1a;wx &#43; b &#61; 1。
对于间隔边界上的负样本。都满足&#xff1a;wx &#43; b &#61; -1&#xff1b;
这就是间隔边界上的值为正负1的由来。
PS1&#xff1a;
硬间隔SVM中&#xff0c;最小化间隔为&#xff1a;
min f(w) &#61; w.T * w / 2
其约束条件为&#xff1a;使全部的样本点都能正确划分&#xff0c;即&#xff1a;
s.t. y_i(w * x_i &#43; b) >&#61; 1。
注意&#xff1a;不等式是包括等号"&#61;"的&#xff0c;是说。全部的点都在间隔边界之上或之外。不同意出如今间隔边界与分类超平面之间的&#xff01;
PS2&#xff1a;
对于软间隔SVM中的松弛变量的概念。噪声点并不是仅仅能存在于正确间隔边界外&#xff0c;因为有了松弛变量把它拉回来&#xff0c;因此&#xff0c;噪声点是能够到两个间隔边界之中&#xff0c;或者到错误的间隔边界之外的&#xff08;当然&#xff0c;假设仅仅是出如今分类超平面和正确的间隔边界之间&#xff0c;此时该点还是会被正确分类的。可是&#xff0c;此时它还是会为l(w)函数贡献松弛变量e的。&#xff09;。
此时的限制条件为&#xff1a;
s.t. y_i(w * x_i &#43; b) &#43; e_i >&#61; 1&#xff0c;当中&#xff0c;e_i >&#61; 0。