机器学习--支持向量机理论知识(二)

机器学习 | 支持向量机理论知识(二)

大家好,今天我们继续进行支持向量机的学习。

上周我们说明了支持向量机的基本原理,这周我们要对支持向量机进行建模。上周说到在支持向量机算法中,目标函数显然就是那个“分类间隔”,而优化对象则是决策面。所以要对SVM问题进行数学建模,首先要对上述两个对象(“分类间隔”和“决策面”)进行数学描述。接下来我们开始今天的内容

决策面方程

二维空间中的一根直线, \[ y = ax + b \] 假设让原来的x轴变成轴\(x_1\),y变成轴\(x_2\),于是公式中的直线方程会变成下面的样子 \[ x_2 = ax_1 + b \] 移项得到: \[ ax_1 - x_2 + b = 0 \] 公式的向量形式可以写成: \[ [a \quad -1][x_1 \quad x_2]^T + b = 0 \] 考虑到在等式两边乘上任何实数都不会改变等式的成立,所以可以写出一个更加一般的向量表达形式: \[ \omega^Tx + \gamma = 0 \] 其中,向量\(\omega\)\(x\)分别为: \[ \omega = [\omega_1,\omega_2]^T, x = [x_1,x_2]^T \]

最初的直线方程a和b的几何意义:

a表示直线的斜率, a决定了直线与x轴正方向的夹角;

b表示截距,b决定了直线与y轴交点位置。

向量化后的直线的\(\omega\)\(\gamma\)的几何意义:
捕获

在坐标轴上画出直线和向量\(\omega\)

蓝色的线代表向量\(\omega\) ,红色的线代表直线y。可以看到向量和\(\omega\)直线的关系y为垂直关系。 这说明了向量\(\omega\)也控制着直线y的方向,只不过是与这个直线的方向是垂直的。标量\(\gamma\)的作用也没有变,依然决定了直线的截距。此时,我们称为\(\omega\)直线的法向量。

推广到超平面方程: \[ \omega^Tx + \gamma = 0 \] 可以得到: \[ \omega = [\omega_1,\omega_2,...,\omega_n]^T, x = [x_1,x_2,...,x_n]^T \]

分类间隔方程

对于一个二维平面的简单例子进行推导:

捕获

间隔的大小实际上就是支持向量对应的样本点到决策面的距离的二倍。点到直线的距离公式如下: \[ d = |\frac{Ax_0 + By_0 + C}{\sqrt{A^2 + B^2} }| \] 公式中的直线方程为\(Ax_0 + By_0 +C = 0\),点P的坐标为\((x_0. y_0)\)

将直线方程扩展到多维,求得现在的超平面方程,对公式进行如下变形: \[ d = \frac{|\omega^Tx + \gamma|}{||\omega||} \] 这个d就是“分类间隔”。其中\(||\omega||\)表示\(\omega\)的二范数,即为求所有元素的平方和,然后再开方。

比如对于二维平面:\(\omega = [\omega_1,\omega_2]^T\),那么,\(||\omega|| = \sqrt{\omega_1^2 + \omega_2^2}\)

SVM算法的目的是为了找出一个分类效果好的超平面作为分类器。分类器好坏的评定依据是分类间隔W=2d的大小,即分类间隔W越大,我们认为这个超平面的分类效果越好。此时,求解超平面的问题就变成了求解分类间隔W最大化的为题。W的最大化也就是d最大化的。

约束条件

为了求解W的最大值,需要面对如下问题:

➢ 如何判断超平面是否将样本点正确分类?

➢ 知道距离d的最大值,首先需要找到支持向量上的点,怎么在众多的点中选出支持向量上的点呢?

上述需要面对的问题就是约束条件,也就是说优化的变量d的取值范围受到了限制和约束。

SVM算法通过一些巧妙的小技巧,将这些约束条件融合到一个不等式里面。

这个二维平面上有两种点,分别对它们进行标记:

✓ 红颜色的圆点标记为1,人为规定其为正样本;

✓ 蓝颜色的五角星标记为-1,人为规定其为负样本。

对每个样本点\(x_i\)加上一个类别标签\(y_i\)

1
捕获

如果超平面方程能够完全正确地对上图的样本点进行分类,就会满足下面的方程:

2

假设决策面正好处于间隔区域的中轴线上,并且相应的支持向量对应的样本点到决策面的距离为d,那么公式进一步写成:

3

上述公式的解释就是:

➢ 对于所有分类标签为1的样本点,它们到直线的距离都大于等于d(支持向量上的样本点到超平面的距离)。

➢ 对于所有分类标签为-1的样本点,它们到直线的距离都小于等于-d

公式两边都除以d,就可以得到:

4

其中: \[ \omega_d = \frac{\omega}{||\omega||d},\gamma_d = \frac{\gamma}{||\omega||d} \] 5

因为\(||\omega||\)d都是标量。所上述公式的两个矢量,依然描述一条直线的法向量和截距。

进一步说明:

4

上述方程即给出了SVM最优化问题的约束条件。为什么标记为1和-1呢?因为这样标记方便将上述方程变成如下形式: \[ y_i(\omega^Tx_i + \gamma) \ge 1, \forall x_i \] 正是因为标签为1和-1,才方便我们将约束条件变成一个约束方程,从而方便我们的计算。

线性SVM优化问题基本描述

目标函数: \[ d = \frac{|\omega^Tx + \gamma|}{||\omega||} \] 优化目标是使d最大化,即通过支持向量上的样本点求解d的最大化的问题。

所有支持向量上的样本点,都满足公式: \[ |\omega^Tx_i + \gamma| = 1,\forall支持向量上的样本点x_i \] 可以将目标函数进一步化简: \[ d = \frac{1}{||\omega||} \] 之前得到的目标函数:6

说明:为了方便求解,在这里加上了平方,还有一个系数,显然这两个问题是等价的。

因为只关心支持向量上的点,因此,求解d的最大化问题变成了\(||\omega||\)的最小化问题。进而\(||\omega||\)的最小化问题等效于 \[ min\frac{1}{2}||\omega||^2 \]

以上就是今天的内容,下周我将讲解SVM的具体解法,并给出例题,谢谢大家的观看!