10.3. 理解支持向量机¶
10.3.1. 目标¶
10.3.2. 理论¶
线性可分数据¶
考虑下面的图像,它有两种类型的数据,红色和蓝色。在kNN中,对于一个测试数据,我们测量它到所有训练样本的距离,并取最小距离的样本。测量所有距离需要大量时间,存储所有训练样本需要大量内存。但考虑到图像中给出的数据,我们是否需要这么多?
考虑另一个想法。我们找到一条线, \(f(x)=ax_1+bx_2+c\) 将两个数据分为两个区域。当我们得到新的测试数据时 \(X\) ,把它换成 \(f(x)\) .如果 \(f(X) > 0\) ,它属于蓝色组,否则它属于红色组。我们可以把这条线叫做 决策边界 . 这是非常简单和内存效率。这种可以用直线(或高维超平面)分成两部分的数据称为 线性可分 .
所以在上图中,你可以看到很多这样的线条是可能的。我们要哪一个?很直观地说,这条线应该尽可能地从所有点经过。为什么?因为传入的数据中可能有噪声。这些数据不应影响分类精度。因此,走最远的线路将提供更多的抗噪声能力。因此,支持向量机的作用是找到一条直线(或超平面),该直线与训练样本的最小距离最大。请参见下图中穿过中心的粗体线。
所以要找到这个决策边界,你需要训练数据。你需要全部吗?不,只有那些接近另一组的就足够了。在我们的图像中,它们是一个蓝色填充圆和两个红色填充正方形。我们可以叫他们 支持向量 穿过它们的线叫做 支撑面 . 它们足以找到我们的决策边界。我们不必担心所有的数据。它有助于数据缩减。
结果是,找到了前两个最能代表数据的超平面。对于eg,蓝色数据表示为 \(w^Tx+b_0 > 1\) 而红色数据由 \(w^Tx+b_0 < -1\) 在哪里? \(w\) 是 权重向量 ( \(w=[w_1, w_2,..., w_n]\) ) \(x\) 是特征向量 (\(x = [x_1,x_2,..., x_n]\) ) \(b_0\) 是 bias . 权向量决定了决策边界的方向,而偏差点决定了决策边界的位置。现在,决策边界被定义为这些超平面之间的中间位置,因此表示为 \(w^Tx+b_0 = 0\) . 支持向量到决策边界的最小距离由下式给出, \(distance_{{support \, vectors}}=\frac{{1}}{{||w||}}\) . 边距是这个距离的两倍,我们需要最大化这个边距。i、 我们需要最小化一个新函数 \(L(w, b_0)\) 有一些约束条件,可以表示如下:
在哪里? \(t_i\) 是每个类的标签, \(t_i \in [-1,1]\) .
非线性可分数据¶
考虑一些不能用直线分成两部分的数据。例如,假设一个一维数据,其中“X”位于-3&+3,而“O”位于-1&+1。显然它不是线性可分的。但是有办法解决这些问题。如果我们能用函数映射这个数据集, \(f(x) = x^2\) ,我们得到9的X和1的O,它们是线性可分的。
否则我们可以把一维数据转换成二维数据。我们可以利用 \(f(x)=(x,x^2)\) 映射此数据的函数。然后“X”变成(-3,9)和(3,9),而“O”变成(-1,1)和(1,1)。这也是线性可分的。简而言之,低维空间中的非线性可分数据在高维空间中成为线性可分数据的机会更大。
通常,可以将d维空间中的点映射到某个d维空间 \((D>d)\) 检验线性可分性的可能性。有一种方法可以通过在低维输入(特征)空间中进行计算来帮助计算高维(核)空间中的点积。我们可以用下面的例子来说明。
考虑二维空间中的两点, \(p=(p_1,p_2)\) 和 \(q=(q_1,q_2)\) . 让 \(\phi\) 是将二维点映射到三维空间的映射函数,如下所示:
让我们定义一个核函数 \(K(p,q)\) 在两点之间做点积,如下所示:
这意味着,三维空间中的点积可以用二维空间中的平方点积来实现。这可以应用于高维空间。所以我们可以从低维本身计算高维特征。一旦我们映射它们,我们就会得到一个更高维度的空间。
除了这些概念之外,还有一个错误分类的问题。因此,仅仅寻找具有最大裕度的决策边界是不够的。我们还需要考虑错误分类的问题。有时,可能会发现一个决策边界的裕度较小,但减少了错误分类。不管怎样,我们需要修改我们的模型,使其能够找到具有最大边际的决策边界,但错误分类较少。最小化标准修改为:
下图显示了这个概念。对于每个训练数据样本,都有一个新参数 \(\xi_i\) 已定义。它是从相应的训练样本到正确决策区域的距离。对于那些没有被错误分类的人,他们落在相应的支撑平面上,所以他们的距离是零。
因此,新的优化问题是:
如何选择参数C?显然,这个问题的答案取决于训练数据是如何分布的。尽管没有一般性的答案,但考虑到这些规则是有益的:
C的大值给出的解具有较少的误分类误差,但具有较小的裕度。考虑到在这种情况下,犯错误分类是很昂贵的。由于优化的目的是最小化参数,因此允许很少的错误分类。
C的小值给出的解具有较大的裕度和较大的分类误差。在这种情况下,极小化不考虑和的项那么多,所以它更关注于寻找一个具有大边距的超平面。