上篇文章利用Matlab中的
quadprog
函数求解出拉格朗日算子矩阵 α \alpha α本文将介绍如何利用 α \alpha α求解非线性核SVM最终的决策函数
- 多项式形式的核函数,二次为例:
K ( u , v ) = ( u T v + 1 ) 2 K(u,v)=(u^Tv+1)^2 K(u,v)=(uTv+1)2
-
决策函数:
g ( x ) = w T ϕ ( x ) + b = ∑ i = 1 N α i y i ϕ T ( x i ) ϕ ( x ) + b = ∑ i = 1 N α i y i K ( x i , x ) + b g(x)=w^T\phi(x)+b\\ =\sum_{i=1}^N\alpha_iy_i\phi^T(x_i)\phi(x)+b\\ =\sum_{i=1}^N\alpha_iy_iK(x_i,x)+b g(x)=wTϕ(x)+b=i=1∑NαiyiϕT(xi)ϕ(x)+b=i=1∑NαiyiK(xi,x)+b- α i \alpha_i αi是我们已经求出的矩阵 α \alpha α的元素
- y i y_i yi是已知的训练集标签
-
K
(
x
i
,
x
)
=
(
x
i
T
⋅
x
+
1
)
2
K(x_i,x)=(x_i^T \cdot x+1)^2
K(xi,x)=(xiT⋅x+1)2
- x i x_i xi是训练集第 i i i个样本
- x x x是我们需要判断的一个样本,其维度与 x i x_i xi一致
-
问题在于如何求解 b b b
-
由于我们已知支持向量的判别结果被定义为±1
-
对于我们已知的训练集,它包含两类样本,分别是 x + x_+ x+和 x − x_- x−
ω ⃗ ⋅ x + ⃗ + b ≥ 1 , 对于 + 样本 ω ⃗ ⋅ x − ⃗ + b ≤ − 1 , 对于 − 样本 \vec{\omega}\cdot\vec{x_+}+b \geq 1 , 对于+样本\\ \vec{\omega}\cdot\vec{x_-}+b \leq -1, 对于-样本 ω⋅x++b≥1,对于+样本ω⋅x−+b≤−1,对于−样本 -
刚好在判定边界上的支持向量代入决策函数的结果是已知的
-
我们可以通过这一点来计算所有支持向量对应的 b b b,最后取平均值
-
这里的 ω ⃗ ⋅ x ⃗ \vec{\omega}\cdot\vec{x} ω⋅x就是 ∑ i = 1 N α i y i K ( x i , x ) \sum_{i=1}^N\alpha_iy_iK(x_i,x) ∑i=1NαiyiK(xi,x)
-