SVM(支持向量机)算法是用于解决二分类问题的,它在样本空间(高维空间)中找一个最优超平面,使得两类数据点中离超平面最近的点(称为支持向量)到超平面的距离最大。
对于极少数"坏样本"的二分类场景,我们可以换个思路:将所有样本视为一类(而不是二类),而将极少数"坏样本"视为这一类的异常。这样,用于二分类的SVM就可以改造为用于一分类的One-Class SVM和SVDD。
One-Class SVM(单类支持向量机)与SVDD(支持向量数据描述)是单类分类领域的两大核心算法,它们的目标均为通过仅使用目标类样本建模,实现异常检测或数据描述。两者在理论基础和实现方式上存在紧密联系,但在决策边界形式、优化目标和应用场景上也有显著差异。以下是具体分析:
1. 核心联系:基于核方法的单类分类框架
1.1 共同的理论基础
- 核技巧:两者均通过核函数将数据映射到高维特征空间,以处理非线性分布问题。例如,使用RBF核将数据映射到无限维空间后,SVDD在高维空间中寻找最小超球体,而One-Class SVM则寻找最优超平面。
- 对偶优化:两者的优化问题均可转化为二次规划问题,并通过拉格朗日对偶方法求解。支持向量(Support Vectors)在两种算法中均起关键作用,决定决策边界的形状。
- 参数敏感性 :均依赖惩罚参数(如One-Class SVM的 n u nu nu或SVDD的 C C C)平衡模型复杂度与异常点容忍度,且核函数参数(如RBF核的 γ γ γ)需谨慎调优。
1.2 数学等价性
- 特定条件下的等价性 :当使用满足 k ( x , x ) = 1 k(x, x) = 1 k(x,x)=1的核函数(如归一化RBF核)时,One-Class SVM与SVDD的决策函数等价。例如,对于高斯核 k ( x , x ′ ) = e x p ( − γ ∣ ∣ x − x ′ ∣ ∣ 2 ) k(x, x') = exp(-γ||x-x'||²) k(x,x′)=exp(−γ∣∣x−x′∣∣2),若归一化为 k ( x , x ′ ) = e x p ( − γ ∣ ∣ x − x ′ ∣ ∣ 2 ) / e x p ( − γ ∣ ∣ x ∣ ∣ 2 ) e x p ( − γ ∣ ∣ x ′ ∣ ∣ 2 ) k(x, x') = exp(-γ||x-x'||²)/exp(-γ||x||²)exp(-γ||x'||²) k(x,x′)=exp(−γ∣∣x−x′∣∣2)/exp(−γ∣∣x∣∣2)exp(−γ∣∣x′∣∣2),则两者的超平面与超球体决策边界在数学上等价。
- 渐近一致性:在数据分布接近球状时,两者的分类结果趋近于一致。例如,当目标类数据在高维空间中近似正态分布时,SVDD的超球体与One-Class SVM的超平面可能重合。
2. 关键区别:决策边界与优化目标
2.1 决策边界形状
- One-Class SVM :
通过超平面(Hyperplane)将目标类数据与原点(或其他参考点)分离。其优化目标是最大化超平面与原点的距离,同时允许少量样本跨越超平面(通过松弛变量)。例如,在二维空间中,超平面表现为一条直线,将目标类数据与原点分隔开。 - SVDD :
通过超球体(Hypersphere)将目标类数据紧密包围。其优化目标是最小化超球体的体积,同时允许部分样本位于球体外(通过松弛变量)。例如,在二维空间中,超球体表现为一个圆,尽可能紧凑地包含目标类数据。
2.2 优化目标差异
- One-Class SVM :
目标函数为:
min w , ρ , ξ 1 2 ∥ w ∥ 2 − ρ + 1 ν n ∑ i = 1 n ξ i \min_{\mathbf{w}, \rho, \xi} \quad \frac{1}{2}\|\mathbf{w}\|^2 - \rho + \frac{1}{\nu n} \sum_{i=1}^n \xi_i w,ρ,ξmin21∥w∥2−ρ+νn1i=1∑nξi
约束条件:
w T ϕ ( x i ) ≥ ρ − ξ i , ξ i ≥ 0 \mathbf{w}^T \phi(\mathbf{x}_i) \geq \rho - \xi_i, \quad \xi_i \geq 0 wTϕ(xi)≥ρ−ξi,ξi≥0
其中, w \mathbf{w} w 是超平面的法向量, ρ \rho ρ 是超平面到原点的距离, ν \nu ν 控制异常点比例。
ϕ \phi ϕ把从原始空间中的特征向量 x \mathbf{x} x映射成特征空间中的特征向量 ϕ ( x ) \phi(\mathbf{x}) ϕ(x),下同。 - SVDD :
目标函数为:
min R , a , ξ R 2 + C ∑ i = 1 n ξ i \min_{R, \mathbf{a}, \xi} \quad R^2 + C \sum_{i=1}^n \xi_i R,a,ξminR2+Ci=1∑nξi
约束条件:
∥ ϕ ( x i ) − a ∥ 2 ≤ R 2 + ξ i , ξ i ≥ 0 \|\phi(\mathbf{x}_i) - \mathbf{a}\|^2 \leq R^2 + \xi_i, \quad \xi_i \geq 0 ∥ϕ(xi)−a∥2≤R2+ξi,ξi≥0
其中, a \mathbf{a} a 是超球体的中心, R R R 是半径, C C C 平衡球体体积与异常点数量。
2.3 几何直观
- One-Class SVM :
超平面的位置由目标类数据与原点的距离决定。若数据分布集中,超平面可能远离原点;若数据分散,超平面可能靠近原点以减少误判。 - SVDD :
超球体的大小和位置由数据的紧凑程度决定。若数据集中,超球体体积较小;若数据分散,超球体体积较大以包含更多样本。
3. 应用场景对比
场景 | One-Class SVM | SVDD |
---|---|---|
数据分布 | 适用于数据分布接近线性可分或具有明确方向的场景。例如,文本数据的主题分布。 | 适用于数据分布呈团状或球状的场景。例如,图像中的物体轮廓。 |
异常点敏感性 | 对异常点较敏感,因为超平面可能被离群点显著影响。 | 对异常点较鲁棒,因为超球体可通过松弛变量排除极端值。 |
计算复杂度 | 训练复杂度与样本数呈二次方关系( O ( n 3 ) O(n^3) O(n3)),适用于小样本。 | 训练复杂度与样本数呈二次方关系( O ( n 3 ) O(n^3) O(n3)),但可通过分解算法优化。 |
参数调优 | 参数 n u nu nu直接控制异常点比例,更易解释。 | 参数 C C C和核函数参数需联合调优,对用户经验要求较高。 |
典型应用 | 网络入侵检测、信用卡欺诈识别(需快速决策)。 | 工业缺陷检测、医学影像分析(需紧凑数据描述)。 |
4. 如何选择?
- 优先选择One-Class SVM :
当数据分布具有明确方向性(如文本、时序数据),或需要直接控制异常点比例时。例如,在信用卡欺诈检测中, n u nu nu参数可直接设定允许的欺诈交易比例。 - 优先选择SVDD :
当数据分布呈团状或球状(如图像、传感器数据),或需要更紧凑的数据描述时。例如,在工业质检中,SVDD的超球体可精确圈定合格产品的特征范围。 - 等价性场景 :
若使用归一化RBF核且数据分布近似球状,两者效果接近,可根据计算效率或参数调优便利性选择。
5. 决策边界、原点与异常点
在 One-Class SVM 和 SVDD 中,在特征空间中,算法所找到的超平面和超球面对应到原始空间中就是这类型状,通常是一个超曲面,称为决策边界。
现在我们考察在原始空间中三者(决策边界、原点与异常点)的位置关系。
- One-Class SVM :原点与异常点同侧,因为超平面的设计目标是将正常数据与原点分离,异常点被视为与原点更接近的样本。
- SVDD :原点与异常点的位置关系不确定,取决于数据分布。若原点在超球体内,异常点与原点异侧;若原点在球体外,异常点与原点同侧。
- 选择建议 :
- 若需要明确控制异常点与原点的位置关系(如同侧),优先选择 One-Class SVM。
- 若数据分布复杂且原点位置不明确,SVDD 更灵活,但需通过数据预处理或参数调优控制原点与异常点的关系。
5.1 One-Class SVM:原点与异常点
1. 决策边界与原点的关系
- 超平面分离 :
One-Class SVM 的核心是在特征空间中寻找一个超平面,将目标类数据与原点(或其他参考点)最大化分离 。其优化目标是:
min w , ρ , ξ 1 2 ∥ w ∥ 2 − ρ + 1 ν n ∑ i = 1 n ξ i \min_{\mathbf{w}, \rho, \xi} \quad \frac{1}{2}\|\mathbf{w}\|^2 - \rho + \frac{1}{\nu n} \sum_{i=1}^n \xi_i w,ρ,ξmin21∥w∥2−ρ+νn1i=1∑nξi
约束条件为:
w T ϕ ( x i ) ≥ ρ − ξ i ( ξ i ≥ 0 ) \mathbf{w}^T \phi(\mathbf{x}_i) \geq \rho - \xi_i \quad (\xi_i \geq 0) wTϕ(xi)≥ρ−ξi(ξi≥0)
其中, w \mathbf{w} w是超平面的法向量, ρ \rho ρ是超平面到原点的距离。- 正常样本 :位于超平面的一侧( w T ϕ ( x i ) ≥ ρ \mathbf{w}^T \phi(\mathbf{x}_i) \geq \rho wTϕ(xi)≥ρ)。
- 原点 :位于超平面的另一侧( w T ϕ ( 0 ) < ρ \mathbf{w}^T \phi(0) < \rho wTϕ(0)<ρ),因为超平面的设计目标是将正常数据与原点分隔开。
2. 异常点的位置
- 异常点的定义 :
若测试样本 x \mathbf{x} x满足 w T ϕ ( x ) < ρ \mathbf{w}^T \phi(\mathbf{x}) < \rho wTϕ(x)<ρ,则被判定为异常点。 - 与原点的关系 :
异常点位于超平面的另一侧,即与原点同侧 。这是因为超平面的设计目标是将正常数据与原点分离,而异常点被视为与原点"更接近"的样本。- 几何直观:在二维空间中,超平面将正常数据与原点分隔,异常点位于原点所在的一侧。例如,若正常数据分布在右侧,超平面可能是一条垂直直线,原点和异常点位于左侧。
3. 核函数的影响
- 特征空间变换 :
核函数(如 RBF 核)将数据映射到高维特征空间,原点在特征空间中的位置可能与输入空间不同。例如,使用 RBF 核时,原点的特征向量可能与输入空间的原点无关。 - 决策逻辑不变 :
无论核函数如何,超平面始终将正常数据与特征空间的原点分离,异常点仍位于原点所在的一侧。
5.2 SVDD:原点与异常点
1. 决策边界与原点的关系
- 超球体包围 :
SVDD 的目标是在特征空间中找到一个最小体积的超球体 ,尽可能紧密地包围目标类数据。其优化目标为:
min R , a , ξ R 2 + C ∑ i = 1 n ξ i \min_{R, \mathbf{a}, \xi} \quad R^2 + C \sum_{i=1}^n \xi_i R,a,ξminR2+Ci=1∑nξi
约束条件为:
∥ ϕ ( x i ) − a ∥ 2 ≤ R 2 + ξ i ( ξ i ≥ 0 ) \|\phi(\mathbf{x}_i) - \mathbf{a}\|^2 \leq R^2 + \xi_i \quad (\xi_i \geq 0) ∥ϕ(xi)−a∥2≤R2+ξi(ξi≥0)
其中, a \mathbf{a} a是超球体的中心, R R R是半径。- 正常样本 :位于超球体内( ∥ ϕ ( x i ) − a ∥ 2 ≤ R 2 \|\phi(\mathbf{x}_i) - \mathbf{a}\|^2 \leq R^2 ∥ϕ(xi)−a∥2≤R2)。
- 原点:其位置由数据分布决定,可能在超球体内或外。
2. 异常点的位置
- 异常点的定义 :
若测试样本 x \mathbf{x} x满足 ∥ ϕ ( x ) − a ∥ 2 > R 2 \|\phi(\mathbf{x}) - \mathbf{a}\|^2 > R^2 ∥ϕ(x)−a∥2>R2,则被判定为异常点。 - 与原点的关系 :
- 若原点在超球体内 :异常点位于球体外,与原点异侧。
- 若原点在超球体外 :异常点也位于球体外,与原点同侧。
- 示例 :
- 若目标类数据分布在远离原点的区域,超球体可能不包含原点,此时原点和异常点均位于球体外(同侧)。
- 若目标类数据分布在原点附近,超球体可能包含原点,此时异常点位于球体外(异侧)。
3. 数据分布的影响
- 原点的位置 :
超球体的中心 a \mathbf{a} a和半径 R R R由数据分布决定。例如:- 若数据集中在原点附近, a \mathbf{a} a可能接近原点,超球体包含原点。
- 若数据分布在远离原点的区域, a \mathbf{a} a也会远离原点,超球体可能不包含原点。
- 异常点的位置 :
无论原点是否在超球体内,异常点始终位于球体外,但与原点的相对位置取决于数据分布。
5.3 数学推导与验证
1. One-Class SVM 的决策函数
- 函数形式 :
f ( x ) = w T ϕ ( x ) − ρ f(\mathbf{x}) = \mathbf{w}^T \phi(\mathbf{x}) - \rho f(x)=wTϕ(x)−ρ- 正常样本 : f ( x ) ≥ 0 f(\mathbf{x}) \geq 0 f(x)≥0(位于超平面一侧)。
- 原点 : f ( 0 ) = w T ϕ ( 0 ) − ρ < 0 f(0) = \mathbf{w}^T \phi(0) - \rho < 0 f(0)=wTϕ(0)−ρ<0(位于另一侧)。
- 异常点 : f ( x ) < 0 f(\mathbf{x}) < 0 f(x)<0(与原点同侧)。
2. SVDD 的决策函数
- 函数形式 :
f ( x ) = ∥ ϕ ( x ) − a ∥ 2 − R 2 f(\mathbf{x}) = \|\phi(\mathbf{x}) - \mathbf{a}\|^2 - R^2 f(x)=∥ϕ(x)−a∥2−R2- 正常样本 : f ( x ) ≤ 0 f(\mathbf{x}) \leq 0 f(x)≤0(位于球体内)。
- 原点 : f ( 0 ) = ∥ ϕ ( 0 ) − a ∥ 2 − R 2 f(0) = \|\phi(0) - \mathbf{a}\|^2 - R^2 f(0)=∥ϕ(0)−a∥2−R2,其符号取决于 a \mathbf{a} a和 R R R。
- 异常点 : f ( x ) > 0 f(\mathbf{x}) > 0 f(x)>0(位于球体外)。