『ML笔记』Support Vector Domain Description(SVDD)支持向量数据域描述

一、算法背景:

图片:算法描述

后来人们提出了一种想法,我在数据集上,画一个圆(超球体),使得这个圆尽可能小,但是又尽可能囊括多的数据点。 这就是典型的矛盾目标优化问题。因为圆尽可能小,就包的数据点就有可能会减少。同样想要包更多的点就需要一个更大的圆。那么针对这种问题,我们一般给出自己衡量目标的指标,然后写个目标函数优化就好了嗯。(PS:大部分算法的结果就在于这个目标函数写的好不好,如果目标函数是十分贴合实际的,往往就有比较好的算法效果)。 我们构造一个目标函数
F ( R , a ⃗ , ξ i ) = R 2 + C ∑ i = 1 N ξ i s u b j e c t t o : ∥ ( x ⃗ i − a ⃗ ) ∥ 2 ≤ R 2 + ξ i ∀ i , ξ i ≥ 0 (1) \begin{array}{c}{F\left(R, \vec{a}, \xi_{i}\right)=R^{2}+C \sum_{i=1}^{N} \xi_{i}}\tag{1} \\ \\subject to:\\ {\left\|\left(\vec{x}_{i}-\vec{a}\right)\right\|^{2} \leq R^{2}+\xi_{i} \forall i, \xi_{i} \geq 0}\end{array} F(R,a ,ξi)=R2+Ci=1Nξisubjectto:(x ia )2R2+ξii,ξi0(1)

注意:如果 C C C取的很大,最小化目标函数的时候ξi会几乎接近为0,允许出错的样本越少,他就会尽量偏向于找一个圆囊括尽量多的点。如果 C C C比较小,就偏向于找一个小的圆。

通过类似SVM的优化步骤,我们可以找到最优解。 类似SVM中的定义,落在超球体表明的点我们叫他Support Vector (SV) 支持向量。外部的叫做BSV。 下面是一个二维数据下的例子:

诶,人们发现圆是画出来了,但是有个问题,就是这个圆囊括了好多没用的地方,就是不够紧致(论文里面用的是tight),不能够贴切的描述整个数据的分布情况。

后来人们想到了高维空间。 大概的思路就是: 把原始的数据映射到高维空间,然后在高维空间中按照上述方法找一个超球体。然后把超球体逆映射到原始的数据空间。然后就可以得到一个轮廓 。通过之前的优化计算,和核函数代入,我们得到原始数据的一个点映射到高维空间后距离超球体圆心距离的公式:
R ( x ⃗ ) = ∥ ϕ ( x ⃗ ) − μ ⃗ ∥ = 1 − 2 ∑ i = 1 N β i K ( x ⃗ i , x ⃗ ) + ∑ i , j = 1 N β i β j K ( x ⃗ i , x ⃗ j ) (2) \begin{aligned} R(\vec{x}) &=\|\phi(\vec{x})-\vec{\mu}\| \\ &=\sqrt{1-2 \sum_{i=1}^{N} \beta_{i} K\left(\vec{x}_{i}, \vec{x}\right)+\sum_{i, j=1}^{N} \beta_{i} \beta_{j} K\left(\vec{x}_{i}, \vec{x}_{j}\right)} \end{aligned}\tag{2} R(x )=ϕ(x )μ =12i=1NβiK(x i,x )+i,j=1NβiβjK(x i,x j) (2)

传说中的核函数技术 :把原始空间的数据映射到高维空间,然后再找一个超平面划分数据。 这里要明确一点: 核函数不是这个映射,核函数只是用来计算这个映射后的点的内积 。通过一个映射,原始数据从低维空间映射到高维空间。

二、公式推导:

图片:简单推导
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI大模型前沿研究

感谢您的打赏,我会继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值