SVM简而言之就是让两组点距离超平面达到最远。
超平面可以用wTx+b=0w^Tx+b=0wTx+b=0表示。其中w=(w1;w2;w3..wm)w=(w_1;w_2;w_3..w_m)w=(w1;w2;w3..wm)是法向量。点x=(x1,x2..xm)x=(x_1,x_2..x_m)x=(x1,x2..xm)到超平面的距离为∣wTx+b∣∣∣w∣∣\frac{|w^Tx+b|}{||w||}∣∣w∣∣∣wTx+b∣,其中||w||=w12+w22+...+wm2\sqrt{w_1^2+w_2^2+...+w_m^2}w12+w22+...+wm2,那么可以得到以下等式:
(wx+b)∣∣w∣∣>=d,yi=1(wx+b)∣∣w∣∣<=−d,yi=−1\frac{(wx+b)}{||w||}>=d, y_{i}=1 \\ \frac{(wx+b)}{||w||}<=-d, y_{i}=-1∣∣w∣∣(wx+b)>=d,yi=1∣∣w∣∣(wx+b)<=−d,yi=−1
合并一下可以写成
(wx+b)yi∣∣w∣∣d>=1\frac{(wx+b)y_i}{||w||d}>=1∣∣w∣∣d(wx+b)yi>=1
其中∣∣w∣∣d||w||d∣∣w∣∣d是正数,放缩一下让它等于1,对推导没有影响,而且∣wT+b∣|w^T+b|∣wT+b∣是常数,所以SVM的一般形式就是:
min∣∣w∣∣2,s.t,(wx+b)yi>=1(公式1)min{\frac{||w||}{2}}, s.t, (wx+b)y_i>=1 (公式1)min2∣∣w∣∣,s.t,(wx+b)yi>=1(公式1)
为了解决这个带约束的最优化问题,上拉格朗日乘数法
得到的对偶问题是(dual problem)是L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^{m}{\alpha_i(1-y_i(w^Tx_i+b))}L(w,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wTxi+b))
注意maxb,αL\max_{b,\alpha}Lmaxb,αL和∣∣w∣∣2,s.t,(wx+b)yi>=1\frac{||w||}{2},s.t, (wx+b)y_i>=12∣∣w∣∣,s.t,(wx+b)yi>=1是等价的,而minmaxL\min{\max{L}}minmaxL是和公式1等价的,把带约束的最优化问题转换成对偶问题是拉格朗日乘数法的思想。
对w和b分别求偏导并且置0∂L∂w=w−∑i=1mαiyixi=0∂L∂b=∑i=1mαiyi=0\frac{\partial{L}}{\partial{w}}=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_i=0 \\ \frac{\partial{L}}{\partial{b}}=\sum_{i=1}^{m}\alpha_{i}y_{i}=0∂w∂L=w−i=1∑mαiyixi=0∂b∂L=i=1∑mαiyi=0
把上面的两个表达式带入L,可以得到目标为
maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxjs.t.∑i=1mαiyi=0αi>=0(拉格朗日的要求)\max_\alpha{\sum_{i=1}^m\alpha_{i}-\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m\alpha_i\alpha_jy_iy_jx_i^Tx_j}\\s.t.\sum_{i=1}^{m}\alpha_{i}y_{i}=0\\\alpha_i>=0 (拉格朗日的要求)αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t.i=1∑mαiyi=0αi>=0(拉格朗日的要求)
因此,训练完成后,最终apply的模型是
f(x)=wTx+b=∑i=1mαiyixiTx+b同时要求以下几个表达式成立αi>=0(公式2,拉格朗日的要求)yif(xi)−1>=0(公式3,公式1和KKT条件的要求)αi(yif(xi)−1)=0(公式4,KKT条件的要求)f(x)=w^Tx+b=\sum_{i=1}^{m}\alpha_{i}y_{i}x_i^Tx+b\\
同时要求以下几个表达式成立\\
\alpha_i>=0 (公式2,拉格朗日的要求)\\
y_if(x_i)-1>=0(公式3,公式1和KKT条件的要求)\\
\alpha_i(y_if(x_i)-1)=0 (公式4,KKT条件的要求) \\
f(x)=wTx+b=i=1∑mαiyixiTx+b同时要求以下几个表达式成立αi>=0(公式2,拉格朗日的要求)yif(xi)−1>=0(公式3,公式1和KKT条件的要求)αi(yif(xi)−1)=0(公式4,KKT条件的要求)
于是,对于任意训练样本(xi,yi)(x_i,y_i)(xi,yi),比较公式2和公式4,可以知道αi=0\alpha_i=0αi=0或者yif(xi)=1y_if(x_i)=1yif(xi)=1。如果αi=0\alpha_i=0αi=0,那么训练样本(xi,yi)(x_i,y_i)(xi,yi)不会对f(x)有任何影响;如果yif(xi)=1y_if(x_i)=1yif(xi)=1,这个训练样本就在最大间隔的边界上,是支持向量。因此,训练完成以后,最终模型仅仅和支持向量有关。
更多推导请参考西瓜书