问题:训练集有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
−w1−w2−b>=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(1−3w1−3w2−b)+μ2(1−4w1−3w2−b)+μ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
∂w1∂L=w1−3μ1−4μ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
∂w2∂L=w2−3μ1−3μ2+μ3=0
∂
L
∂
b
=
−
μ
1
−
μ
2
+
μ
3
=
0
\frac{\partial\mathcal{L}}{\partial b}=-\mu_1-\mu_2+\mu_3=0
∂b∂L=−μ1−μ2+μ3=0
用KKT条件对其进行约束:
3
w
1
+
3
w
2
+
b
−
1
>
=
0
3w_1+3w_2+b-1>=0
3w1+3w2+b−1>=0
4
w
1
+
3
w
2
+
b
−
1
>
=
0
4w_1+3w_2+b-1>=0
4w1+3w2+b−1>=0
−
w
1
−
w
2
−
b
−
1
>
=
0
-w_1-w_2-b-1>=0
−w1−w2−b−1>=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+b−1)=0
μ
2
(
4
w
1
+
3
w
2
+
b
−
1
)
=
0
\mu_2(4w_1+3w_2+b-1)=0
μ2(4w1+3w2+b−1)=0
μ
3
(
−
w
1
−
w
2
−
b
−
1
)
=
0
\mu_3(-w_1-w_2-b-1)=0
μ3(−w1−w2−b−1)=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=0,可以计算得w1=3μ2,w2=2μ2,带入三个不等式得:b>=1−15μ2,b>=1−18μ2,b<=−5μ2−1。
此时
μ
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/5,则4w1+3w2+b−1=0,−w1−w2−b−1=0,即18μ2+b−1=0,−5μ2−b−1=0,即μ2=2/13,矛盾,所以μ1大于0。
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=0,可以计算得w1=w2=2μ1>0,带入三个不等式(有两个已经变成了等式)得:b=1−12μ1,b>=1−14μ1,b=−4μ1−1。
此时
μ
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,显然出现了矛盾,此种情况不可能。 μ2不等于0,则4w1+3w2+b−1=0,3w1+3w2+b−1=0,即w1=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=μ3但不等于0,此时μ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/2y−2=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)=21∑i=13∑j=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>=0,i=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μ2−2μ1−2μ2
此方程的解与上述情况一样。