支持向量机(SVM)前戏-手动求解超平面方程

问题:训练集有3个数据点,其中两个正例点: x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T , 一 个 负 例 点 : x 3 = ( 1 , 1 ) T x_1=(3,3)^T,x_2=(4,3)^T,一个负例点:x_3=(1,1)^T x1=(3,3)T,x2=(4,3)T,x3=(1,1)T。试求最大间隔分离超平面(在二维空间即为一条直线)。

构建模型:设超平面方程为 w 1 x + w 2 y + b = 0 w_1x+w_2y+b=0 w1x+w2y+b=0,则上述问题等价于下列约束最优化问题:
m i n w i , b , i = 1 , 2 1 2 ( w 1 2 + w 2 2 ) \underset{w_i,b,i=1,2}{min} \frac{1}{2}(w_1^2+w_2^2) wi,b,i=1,2min21(w12+w22)
s.t.
3 w 1 + 3 w 2 + b > = 1 3w_1+3w_2+b>=1 3w1+3w2+b>=1
4 w 1 + 3 w 2 + b > = 1 4w_1+3w_2+b>=1 4w1+3w2+b>=1
− w 1 − w 2 − b > = 1 -w_1-w_2-b>=1 w1w2b>=1

1,代数解法

构建拉格朗日函数:
L ( w 1 , w 2 , b , μ 1 , μ 2 , μ 3 ) = 1 2 ( w 1 2 + w 2 2 ) + μ 1 ( 1 − 3 w 1 − 3 w 2 − b ) + μ 2 ( 1 − 4 w 1 − 3 w 2 − b ) + μ 3 ( w 1 + w 2 + b + 1 ) \mathcal{L}(w_1,w_2,b,\mu_1,\mu_2,\mu_3)=\frac{1}{2}(w_1^2+w_2^2)+\mu_1(1-3w_1-3w_2-b)+\mu_2(1-4w_1-3w_2-b)+\mu_3(w_1+w_2+b+1) L(w1,w2,b,μ1,μ2,μ3)=21(w12+w22)+μ1(13w13w2b)+μ2(14w13w2b)+μ3(w1+w2+b+1)

求偏微分:
∂ L ∂ w 1 = w 1 − 3 μ 1 − 4 μ 2 + μ 3 = 0 \frac{\partial\mathcal{L}}{\partial w_1}=w_1-3\mu_1-4\mu_2+\mu_3=0 w1L=w13μ14μ2+μ3=0
∂ L ∂ w 2 = w 2 − 3 μ 1 − 3 μ 2 + μ 3 = 0 \frac{\partial\mathcal{L}}{\partial w_2}=w_2-3\mu_1-3\mu_2+\mu_3=0 w2L=w23μ13μ2+μ3=0
∂ L ∂ b = − μ 1 − μ 2 + μ 3 = 0 \frac{\partial\mathcal{L}}{\partial b}=-\mu_1-\mu_2+\mu_3=0 bL=μ1μ2+μ3=0
用KKT条件对其进行约束:
3 w 1 + 3 w 2 + b − 1 > = 0 3w_1+3w_2+b-1>=0 3w1+3w2+b1>=0
4 w 1 + 3 w 2 + b − 1 > = 0 4w_1+3w_2+b-1>=0 4w1+3w2+b1>=0
− w 1 − w 2 − b − 1 > = 0 -w_1-w_2-b-1>=0 w1w2b1>=0
μ i > = 0 , i = 1 , 2 , 3 \mu_i>=0,i=1,2,3 μi>=0,i=1,2,3
μ 1 ( 3 w 1 + 3 w 2 + b − 1 ) = 0 \mu_1(3w_1+3w_2+b-1)=0 μ1(3w1+3w2+b1)=0
μ 2 ( 4 w 1 + 3 w 2 + b − 1 ) = 0 \mu_2(4w_1+3w_2+b-1)=0 μ2(4w1+3w2+b1)=0
μ 3 ( − w 1 − w 2 − b − 1 ) = 0 \mu_3(-w_1-w_2-b-1)=0 μ3(w1w2b1)=0
分情况进行讨论:
1)假设 μ 1 = 0 , 可 以 计 算 得 w 1 = 3 μ 2 , w 2 = 2 μ 2 , 带 入 三 个 不 等 式 得 : b > = 1 − 15 μ 2 , b > = 1 − 18 μ 2 , b < = − 5 μ 2 − 1 \mu_1=0,可以计算得w_1=3\mu_2,w_2=2\mu_2,带入三个不等式得:b>=1-15\mu_2,b>=1-18\mu_2,b<=-5\mu_2-1 μ1=0w1=3μ2,w2=2μ2,b>=115μ2,b>=118μ2,b<=5μ21
此时 μ 2 = μ 3 > = 1 / 5 , 则 4 w 1 + 3 w 2 + b − 1 = 0 , − w 1 − w 2 − b − 1 = 0 , 即 18 μ 2 + b − 1 = 0 , − 5 μ 2 − b − 1 = 0 , 即 μ 2 = 2 / 13 , 矛 盾 , 所 以 μ 1 大 于 0 \mu_2=\mu_3>=1/5,则4w_1+3w_2+b-1=0,-w_1-w_2-b-1=0,即18\mu_2+b-1=0,-5\mu_2-b-1=0,即\mu_2=2/13,矛盾,所以\mu_1大于0 μ2=μ3>=1/54w1+3w2+b1=0w1w2b1=018μ2+b1=0,5μ2b1=0,μ2=2/13μ10

2)假设 μ 2 = 0 , 可 以 计 算 得 w 1 = w 2 = 2 μ 1 > 0 , 带 入 三 个 不 等 式 ( 有 两 个 已 经 变 成 了 等 式 ) 得 : b = 1 − 12 μ 1 , b > = 1 − 14 μ 1 , b = − 4 μ 1 − 1 \mu_2=0,可以计算得w_1=w_2=2\mu_1>0,带入三个不等式(有两个已经变成了等式)得:b=1-12\mu_1,b>=1-14\mu_1,b=-4\mu_1-1 μ2=0w1=w2=2μ1>0,b=112μ1,b>=114μ1,b=4μ11
此时 μ 2 = 0 , μ 1 = μ 3 = 1 / 4 , w 1 = w 2 = 1 / 2 , b = − 2 \mu_2=0,\mu_1=\mu_3=1/4,w_1=w_2=1/2,b=-2 μ2=0μ1=μ3=1/4,w1=w2=1/2,b=2

假设 μ 2 不 等 于 0 , 则 4 w 1 + 3 w 2 + b − 1 = 0 , 3 w 1 + 3 w 2 + b − 1 = 0 , 即 w 1 = 0 , 易 得 μ 3 = 0 , μ 2 = − μ 1 , 显 然 出 现 了 矛 盾 , 此 种 情 况 不 可 能 。 \mu_2不等于0,则4w_1+3w_2+b-1=0,3w_1+3w_2+b-1=0,即w_1=0,易得\mu_3=0,\mu_2=-\mu_1,显然出现了矛盾,此种情况不可能。 μ204w1+3w2+b1=03w1+3w2+b1=0w1=0,μ3=0,μ2=μ1

3)假设 μ 3 = 0 , 由 前 面 的 条 件 易 知 μ 1 = 0 , 出 现 了 矛 盾 \mu_3=0,由前面的条件易知\mu_1=0,出现了矛盾 μ3=0μ1=0

综上所述:
μ 2 = 0 , μ 1 = μ 3 但 不 等 于 0 , 此 时 μ 2 = 0 , μ 1 = μ 3 = 1 / 4 , w 1 = w 2 = 1 / 2 , b = − 2 \mu_2=0,\mu_1=\mu_3但不等于0,此时\mu_2=0,\mu_1=\mu_3=1/4,w_1=w_2=1/2,b=-2 μ2=0,μ1=μ30μ2=0μ1=μ3=1/4,w1=w2=1/2,b=2

所以超平面方程为 1 / 2 x + 1 / 2 y − 2 = 0 1/2x+1/2y-2=0 1/2x+1/2y2=0

Note:使得 μ i \mu_i μi不等于0的点都是支持向量上的点,其他点并没有起到约束效果。对于求最小值,构造拉格朗日函数时,应该使约束条件的方向是g(x)<=0,这样才能保证KKT乘子是正数。

2,几何解法

约束条件在三维空间对应着三个面所夹的范围,函数 f ( x ) = x 2 + y 2 f(x)=x^2+y^2 f(x)=x2+y2可以看成是一个动态的往外扩展的圆。如下图:
在这里插入图片描述
圆与这个空间想切的地方,即是最小值出现的地方。

附上图实现的代码:

require(rgl)
x = seq(-10, 10, len = 100)
df <- expand.grid(x=x,y=x,z=x)
df$ind <- with(df, 3*x+3*y+z>=1 & 4*x+3*y+z>=1 & x+y+z<=-1)
plot3d(df$x, df$y, df$z, type = 'n')
with(df[df$ind, ], points3d(x, y, z, color = 'red', size = 10))

3,专业解法

上述问题的对偶问题是
m i n μ f ( μ 1 , μ 2 , μ 3 ) = 1 2 ∑ i = 1 3 ∑ j = 1 3 μ i μ j y i y j ( x i . x j ) − ∑ i = 1 3 μ i \underset{\mu}{min} \quad f(\mu_1,\mu_2,\mu_3)=\frac{1}{2}\sum_{i=1}^{3}\sum_{j=1}^{3}\mu_i\mu_jy_iy_j(x_i.x_j)-\sum_{i=1}^{3}\mu_i μminf(μ1,μ2,μ3)=21i=13j=13μiμjyiyj(xi.xj)i=13μi
s.t.
μ 1 + μ 2 − μ 3 = 0 \mu_1+\mu_2-\mu_3=0 μ1+μ2μ3=0
μ i > = 0 , i = 1 , 2 , 3 \mu_i>=0,i=1,2,3 μi>=0i=1,2,3

可以简化为
m i n μ \underset{\mu}{min} μmin f ( μ 1 , μ 2 ) = 4 μ 1 2 + 13 2 μ 2 2 + 10 μ 1 μ 2 − 2 μ 1 − 2 μ 2 f(\mu_1,\mu_2)=4\mu_1^2+\frac{13}{2}\mu_2^2+10\mu_1\mu_2-2\mu_1-2\mu_2 f(μ1,μ2)=4μ12+213μ22+10μ1μ22μ12μ2
此方程的解与上述情况一样。

  • 37
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值