Hard Margin SVM
我们在上一篇博客中介绍了 SVM 的本质就是要最大化 margin.
接下来我们看一下 margin 具体的数学表达式是怎样的?对于这两个支撑向量所决定的两条直线与最终得到的最优决策边界之间都有一个距离
d
d
d,那么 margin = 2d
。换句话说,SVM 要最大化 margin 的话,也就是要最大化
d
d
d,所以我们只要找到
d
d
d 的表达式,也就相应的找到了 margin 的表达式。下面我们看一下怎么找到
d
d
d 的表达式。
我们先来回忆一下点到直线的距离公式,比如 (
x
x
x,
y
y
y) 到直线
A
x
+
B
y
+
C
=
0
Ax + By + C = 0
Ax+By+C=0 的距离,表示为:
那么,我们相应拓展到
n
n
n 维空间,之前我们学习的线性回归或者逻辑回归都把直线方程表达为
θ
T
x
b
=
0
θ^Tx_b = 0
θTxb=0。那么我们这里把直线方程表示为:
w
T
x
+
b
=
0
w^Tx + b = 0
wTx+b=0,相当于我们把
θ
0
x
0
θ_0x_0
θ0x0 这一项单独拿出来叫做截距用字母
b
b
b 表示,而将该样本真实的特征前面的系数用一个向量
w
w
w 表示。这里一定要注意,如果我们样本
x
x
x 中有
n
n
n 特征的话,
θ
θ
θ 里面有
n
+
1
n+1
n+1 项,而
w
w
w 里面只有
n
n
n 项。换句话说,
b
b
b 和
w
w
w 组合起来就是
θ
θ
θ。
那么这里我们为什么要单独把截距拿出来呢?在上面二维平面中,点到直线的距离公式中分母的位置是 A 2 + B 2 A^2 + B^2 A2+B2,与截距 C C C 没有关系的。那么将该公式拓展到 n n n 维空间中,任意一个点到直线 w T x + b = 0 w^Tx + b = 0 wTx+b=0 的距离为:
下面我们就将这个值带到 SVM 的思路中,对于 SVM 算法来说,假设决策边界是
w
T
x
+
b
=
0
w^Tx + b = 0
wTx+b=0 ,离决策边界最近点的距离为
d
d
d,那么所有的样本点离决策边界的距离都应该大于等于
d
d
d。
我们去掉上面式子的绝对值相应的可以得到下面两个式子:
我们把一类叫做 1,另一类叫做 -1,不再把另一类叫做 0 其实是为了方便后续计算。观察式子(1),任取一个样本,它对应的分类为 1,相应的都有:
如果任取一个 y i = − 1 y^i = -1 yi=−1 的话,这些点都存在:
我们将式子(1),(2)的符号两边都同时除以
d
d
d,得到下列式子:
我们通过观察,发现 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣ 是一个数, d d d 也是一个数,所以 ∣ ∣ w ∣ ∣ d ||w||d ∣∣w∣∣d 就是一个数,所以我们将其化简为:
所以又可以得到:
所以我们的两个支撑向量所表示的直线为:
我们发现我们决策边界的方程为
w
T
x
+
b
=
0
w^Tx + b = 0
wTx+b=0,其中
w
T
w^T
wT 和
b
b
b 与
w
d
T
w_d^T
wdT 和
b
d
b_d
bd 就相差了一个
∣
∣
w
∣
∣
d
||w||d
∣∣w∣∣d,所以我们也在决策边界两边同除以
∣
∣
w
∣
∣
d
||w||d
∣∣w∣∣d,得到:
现在我们的直线方程都只有
w
d
T
w_d^T
wdT 和
b
d
b_d
bd,后面我们为了书写方便都将其改成
w
T
w^T
wT 和
b
b
b,但是此时的
w
T
w^T
wT 和
b
b
b 与之前的
w
T
w^T
wT 和
b
b
b 已经不一样的,它们相差了一个系数关系。
但是我们现在式子还是分段函数的样子,非常的不方便,我们还是使用一些技巧将它们融合成一个式子:
不要忘记了,我们的目标是最大化 d d d,那么怎么表达这个 d d d 呢?这个 d d d 代表的是支撑向量到决策边界的距离。换句话说,对于任意支撑向量 x x x,就是 :
然后由于
∣
w
T
x
+
b
∣
=
=
1
|w^Tx + b| == 1
∣wTx+b∣==1,所以:
但是具体在我们求解的时候,我们会将式子写成下面这样,也是为了更加方便进行求导操作。
那么,我们整个支撑向量机的最优化函数如下,并且还有一个限定条件:
这个和我们之前学习的全局最优化(没有限定条件)问题是不同的,它是一个有条件的最优化问题。这个求解过程是很复杂的,所以这里略去求解过程。
这篇博客介绍的是一个 Hard Margin SVM,下一篇博客将会介绍 Soft Margin SVM。