题目描述
正例点 x 1 = ( 3 , 3 ) T x_1=(3,3)^{T} x1=(3,3)T, x 2 = ( 4 , 3 ) T x_2=(4,3)^{T} x2=(4,3)T,负样例点 x 3 = ( 1 , 1 ) T x_3=(1,1)^{T} x3=(1,1)T,求最大硬间隔分离超平面。
解法
求硬间隔最大分离超平面的问题也就是求:
m
i
n
w
,
b
1
2
∣
∣
w
∣
∣
2
{min}_{w,b}\ \frac{1}{2}{||w||}^2
minw,b 21∣∣w∣∣2
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
−
1
≥
0
,
i
=
1
,
2
,
.
.
.
,
N
s.t.\ y_i(w\ \cdot\ x_i +b)-1 \geq 0,i=1,2,...,N
s.t. yi(w ⋅ xi+b)−1≥0,i=1,2,...,N
代入到本题,也就是求:
m
i
n
w
,
b
1
2
(
w
1
2
+
w
2
2
)
{min}_{w,b}\ \frac{1}{2}({w_1}^2+{w_2}^2)
minw,b 21(w12+w22)
s
.
t
.
2
w
1
+
3
w
2
+
b
−
1
≥
0
4
w
1
+
3
w
2
+
b
−
1
≥
0
−
w
1
−
w
2
−
b
−
1
≥
0
s.t.\ 2w_1+3_w2+b-1\geq0 \\ 4w_1+3_w2+b-1\geq0 \\ -w_1-w_2-b-1\geq0
s.t. 2w1+3w2+b−1≥04w1+3w2+b−1≥0−w1−w2−b−1≥0
约束条件变换一下,得:
1
−
3
w
1
−
3
w
2
−
b
≤
0
(1)
1-3w_1-3w_2-b\leq0 \tag{1}
1−3w1−3w2−b≤0(1)
1
−
4
w
1
−
3
w
2
−
b
≤
0
(2)
1-4w_1-3w_2-b\leq0 \tag{2}
1−4w1−3w2−b≤0(2)
1
+
w
1
+
w
2
+
b
≤
0
(3)
1+w_1+w_2+b\leq0 \tag{3}
1+w1+w2+b≤0(3)
构造拉格朗日函数:
L
=
1
2
(
w
1
2
+
w
2
2
)
+
α
∗
(
1
)
+
β
∗
(
2
)
+
γ
∗
(
3
)
L = \frac{1}{2}({w_1}^2+{w_2}^2)+\alpha*(1)+\beta*(2)+\gamma*(3)
L=21(w12+w22)+α∗(1)+β∗(2)+γ∗(3)
拉格朗日函数满足ktt条件
(
∇
x
L
=
0
)
(\nabla_xL=0)
(∇xL=0),此处
∇
w
,
b
L
=
0
\nabla_{w,b}L=0
∇w,bL=0,即:
∂
L
∂
w
1
=
w
1
−
3
α
−
4
β
+
γ
=
0
(4)
\frac{\partial{L}}{\partial{w_1}}=w_1-3\alpha-4\beta+\gamma=0 \tag{4}
∂w1∂L=w1−3α−4β+γ=0(4)
∂
L
∂
w
2
=
w
2
−
3
α
−
3
β
+
γ
=
0
(5)
\frac{\partial{L}}{\partial{w_2}}=w_2-3\alpha-3\beta+\gamma=0 \tag{5}
∂w2∂L=w2−3α−3β+γ=0(5)
∂
L
∂
b
=
−
α
−
β
+
γ
=
0
(6)
\frac{\partial{L}}{\partial{b}}=-\alpha-\beta+\gamma=0 \tag{6}
∂b∂L=−α−β+γ=0(6)
另一个ktt条件是
α
i
∗
⋅
c
j
∗
=
0
{\alpha}^{*}_i \cdot c^{*}_j=0
αi∗⋅cj∗=0,
c
j
∗
c^*_j
cj∗分别为(1),(2),(3),
α
i
∗
{\alpha}^{*}_i
αi∗分别为
α
\alpha
α,
β
\beta
β,
γ
\gamma
γ,即有:
α
(
1
−
3
w
1
−
3
w
2
−
b
)
=
0
(7)
\alpha(1-3w_1-3w_2-b)=0 \tag{7}
α(1−3w1−3w2−b)=0(7)
β
(
1
−
4
w
1
−
3
w
2
−
b
)
=
0
(8)
\beta(1-4w_1-3w_2-b)=0 \tag{8}
β(1−4w1−3w2−b)=0(8)
γ
(
1
+
w
1
+
w
2
+
b
)
=
0
(9)
\gamma(1+w_1+w_2+b)=0 \tag{9}
γ(1+w1+w2+b)=0(9)
α
,
β
,
γ
≥
0
,
c
j
≤
0
\alpha,\beta,\gamma \geq0,c_j\leq0
α,β,γ≥0,cj≤0
解(4),(5),(6),(7),(8),(9)这六个方程组可以得出最优解为
w
1
=
w
2
=
1
2
,
b
=
−
2
w_1=w_2=\frac{1}{2},b=-2
w1=w2=21,b=−2,所求得分离超平面为:
1
2
x
(
1
)
+
1
2
x
(
2
)
−
2
=
0
\frac{1}{2}x^{(1)}+\frac{1}{2}x^{(2)}-2=0
21x(1)+21x(2)−2=0,
其中
x
1
=
(
3
,
3
)
T
x_1=(3,3)^{T}
x1=(3,3)T和
x
3
=
(
1
,
1
)
T
为
支
持
向
量
x_3=(1,1)^{T}为支持向量
x3=(1,1)T为支持向量。
求上面六个方程组可以用以下代码求解:
from scipy.optimize import fsolve
def solve_f(value):
w1,w2,A,B,C,b = value[0],value[1],value[2],value[3],value[4],value[5]
return [
w1-3*A-4*B+C,
w2-3*A-3*B+C,
-A-B+C,
A*(1-3*w1-3*w2-b),
B*(1-4*w1-3*w2-b),
C*(1+w1+w2+b),
]
solved = fsolve(solve_f,[0.5,0.5,0.5,0.5,0.5,0.5])
print(solved)
输出结果为:
[ 5.00000000e-01 5.00000000e-01 2.50000000e-01 -3.36817019e-13
2.50000000e-01 -2.00000000e+00]
其中,第一第二个分别为
w
1
w_1
w1,
w
2
w_2
w2的值,最后一个为
b
b
b的值。
Reference
1,李航 统计学习方法第二版
2,b站某阿婆主svm公式视频讲解