SVDD基本原理

您所在的位置:网站首页 高维空间什么意思 SVDD基本原理

SVDD基本原理

2024-07-16 16:24| 来源: 网络整理| 查看: 265

支持向量数据表达/描述(SVDD;Support Vector Data Description)是一种适用于只有一类数据的分类方法。

可能你会说,开什么玩笑?一类数据分个什么类?

其实,这是一种很常见的应用场景。如机器故障诊断,很多时候,我们能够采集到正常情况下机器的运行数

据,而我们的一个想法是利用这些正常的数据判断机器是否发生故障。因此,对于这个问题,根据不同的应用

场景其实还有另外的一些称呼:如异常检测,开集识别,孤立点检测等等。详细的一些介绍可以参考文献[1]的

介绍。这里,我们聚焦于其中的一种技术,即SVDD。

SVDD的基本思想是建立一个最小的超球体,利用这个超球体去尽可能地包含所有的数据,当要测试一个新的数

据时,我们只需要判断数据是在超球体内还是超球体外就可以实现分类了,如图1所示。

                                              

                                                图1 SVDD基本思路示意图

那么问题来了,该如何建立起这个超球体去尽可能地包含所有的数据呢?现在,我们来进行一些分析:

1)我们希望以尽可能小的一个超球体去包含尽可能多的数据,即在建立超球体的过程中需要对超球体的半径做约束;

2)我们希望建立起来的这个超球体有一定的容忍错误的能力,即允许一些异常的数据落在超球体外部,如图1所示;

基于上述考虑,可以建模如下的约束优化问题:

                                                  min_{R,c,\xi} R^2 +C \sum_i \xi_i,

                                                 s.t. \|\phi_k(x_i) -c \|^2 \leq R^2+\xi_i, \xi_i \geq 0, \forall i.                                                              (1)

该约束优化中,最小化的目标包含两部分:

第一部分希望最小化超球体的半径(这一部分可以看作结构风险);

第二部分希望超球体具备一定的容错能力(这一部分可以看作经验风险),理想情况下,当所有数据都位于超球体

体内时,经验风险为0。

在该优化问题中,我们添加约束条件 \|\phi_k(x_i) -c \|^2 \leq R^2+\xi_i,与\xi_i \geq 0。其中,\phi_k(x_i)可看作一个映射函数,它可以将原始

数据映射至一个特征空间中,如支持向量机中的核函数或者神经网络等。c是超球体中心,R 为超球体半径,\xi_i为松弛因子。

接下来介绍如何求解上述约束优化问题?如果熟悉支持向量机的求解过程,可以很容易想到这类带约束的优化问题可以

直接套用拉格朗日松弛法。即(为简单起见,这里直接使用x_i,不考虑利用\phi_k将其映射至某一个特征空间中):

             L(R,c,\xi, \alpha, \gamma)=R^2 + C \sum_i{\xi_i}-\sum_i \alpha_i (R^2 + \xi_i - (x_i \cdot x_i)-2c \cdot x_i+ c \cdot c)-\sum_i \gamma_i \xi_i    (2)

现在,要最小化L,即min L(R,c,\xi,\alpha,\gamma),利用L分别对R,c,\xi求导可得:

                                                           \sum_i a_i=1;

                                                          c=\sum_i \alpha_i x_i;

                                                         C-\alpha_i-\gamma_i=0, \forall i;                                                      (3)

从该求导结果可知,超球体的中心c是可以通过所有样本\{x_i\}及其对应的系数\{\alpha_i\}直接表达出来的。

此外,要min L(R,c,\xi,\alpha,\gamma),可看作最小化参数:R,\xi,c,最大化参数:\alpha,\gamma的过程。即:

                                                        max_{\alpha,\gamma}min_{R,\xi,c}L(R,a,\xi,\alpha,\gamma)

因此,结合(3)中的求导结果,最终的优化目标函数可以表达为:

                                                        L=\sum_i \alpha_i x_i \cdot x_i -\sum_{i,j} \alpha_i \alpha_j (x_i \cdot x_j)

                                                        s.t. 0 \leq \alpha_i \leq C, \forall i                                                               (4)

由(4)可知,这是一个二次规划的问题,由于有很多软件都可以对其进行求解。这里就不在对(4)中的求解过程进行深究。

假设我们已经求解出了(4)中的\{\alpha_i\},那么,要如何如何判断新的样本数据是否是在超球体内呢?

由(3)可知,已知\{\alpha_i\},根据c=\sum_i \alpha_i x_i可以求取超球体的中心。对应超球体的半径可计算为:

                                                 R^2=(x_k \cdot x_k)-2\sum_i \alpha_i (x_i \cdot x_k) +\sum_{i,j} \alpha_i \alpha_j (x_i \cdot x_j), x_k \in SV^{bnd}

式中,x_k是支持向量,即\alpha_i0所对应的样本,由于\sum_i a_i=1,求解出来的\alpha_i大多都为0,只有少部分大于0,这部分大于

0所对应的样本可称为支持向量。

现在,已知cR,对应一个新的数据z,可进行如下计算:

如果\|z-c\|^2R^2,则数据z位于超球体外,可判断其为异常值;

如果\|z-c\|^2 \leq R^2,则数据z位于超球体内,可判断其为正常值;

以上为SVDD的基本思想,若进一步扩展,在(4)式中可利用核函数或者神经网络进行表达:即\phi_k(x_i, x_j),这里不在赘述。

参考文献:

[1] Pramuditha Perera,One-Class Classifification: A Survey,2021.

[2] Proefschrift ,One-class classifification,2001.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3