正例点 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的值。
1,李航 统计学习方法第二版
2,b站某阿婆主svm公式视频讲解