【论文详读】Density weighted support vector data description

Density weighted support vector data description

算法思想

初始SVDD

目标函数:
min ⁡ R 2 + C ∑ i = 1 l ξ i s . t .    ∣ ∣ x i − a ∣ ∣ ≤ R 2 + ξ i , ξ i ≥ 0    ∀ i \min R^2 + C\sum_{i = 1}^l\xi_{i} \\ \\ s.t.\ \ || \boldsymbol{x}_{i} - \boldsymbol{a}|| \leq R^2 + \xi_{i}, \xi_{i} \geq 0 \ \ \forall_{i} minR2+Ci=1lξis.t.  xiaR2+ξi,ξi0  i
结合拉格朗日乘子法,原问题的对偶变成:
max ⁡ ∑ i = 1 l α i ( x i , x i ) − ∑ i = 1 l ∑ j = 1 l α i α j ( x i , x j ) s . t .    0 ≤ α i ≤ C     i = 1 , 2 , … , l ∑ i = 1 l α i = 1 \max \sum_{i = 1}^l \alpha_{i}(x_{i}, x_{i}) -\sum_{i = 1}^l\sum_{j = 1}^l \alpha_{i}\alpha_{j}(x_{i}, x_{j})\\ s.t. \ \ 0 \leq \alpha_{i} \leq C \ \ \ i = 1, 2, \dots, l \\ \sum_{i = 1}^l \alpha_{i} = 1 maxi=1lαi(xi,xi)i=1lj=1lαiαj(xi,xj)s.t.  0αiC   i=1,2,,li=1lαi=1
通过二次规划求解 α i \alpha_{i} αi , 详细参考这篇文章,找出 α i ≥ 0 \alpha_{i} \geq 0 αi0 , 即可得到支持向量,再根据支持向量就可以算出半径 R R R 和 中心 a a a ,这样就可以找到超球边界。

DW-SVDD

算法的思想是不仅为每个样本点设置松弛因子 ξ i \xi_{i} ξi ,而且还设置密度加权 ρ i \rho_{i} ρi 。其认为密度越大的地方,样本越重要,在拟合超球边界的时候,应该“贡献”更大。
密度权重:
ρ ( x i ) = 1 − d ( x i , x i k ) max ⁡ j ∈ t r a i n   s e t d ( x j , x j k ) \rho(x_{i}) = 1 - \frac{d(x_{i}, x_{i}^k)}{\max_{j \in train\ set}d(x_{j}, x_{j}^k) } ρ(xi)=1maxjtrain setd(xj,xjk)d(xi,xik)
这里用到了 k-nearest neighbor (k-NN) distance, d ( x i , x i k ) d(x_{i}, x_{i}^k) d(xi,xik) 表示 x i x_{i} xi 和第 k k k近的样本点 x i k x_{i}^k xik的距离, max ⁡ j ∈ t r a i n   s e t d ( x j , x j k ) \max_{j \in train\ set}d(x_{j}, x_{j}^k) maxjtrain setd(xj,xjk) 表示在训练集中最大的k-NN距离。在密度较大的样本点 ρ ( x i ) \rho(x_{i}) ρ(xi) 就越大,反之越小。

DW-SVDD的目标函数就变成:
min ⁡ R 2 + C ∑ i = 1 l ρ ( x i ) ξ i s . t .    ∣ ∣ x i − a ∣ ∣ ≤ R 2 + ξ i , ξ i ≥ 0    ∀ i \min R^2 + C\sum_{i = 1}^l \rho(x_{i})\xi_{i} \\ \\ s.t.\ \ || \boldsymbol{x}_{i} - \boldsymbol{a}|| \leq R^2 + \xi_{i}, \xi_{i} \geq 0 \ \ \forall_{i} minR2+Ci=1lρ(xi)ξis.t.  xiaR2+ξi,ξi0  i

结合拉格朗日乘子法,原问题的对偶问题变为:
max ⁡ ∑ i = 1 l α i ( x i , x i ) − ∑ i = 1 l ∑ j = 1 l α i α j ( x i , x j ) s . t .    0 ≤ α i ≤ ρ ( x i ) C     i = 1 , 2 , … , l ∑ i = 1 l α i = 1 \max \sum_{i = 1}^l \alpha_{i}(x_{i}, x_{i}) -\sum_{i = 1}^l\sum_{j = 1}^l \alpha_{i}\alpha_{j}(x_{i}, x_{j})\\ s.t. \ \ 0 \leq \alpha_{i} \leq \rho(x_{i}) C \ \ \ i = 1, 2, \dots, l \\ \sum_{i = 1}^l \alpha_{i} = 1 maxi=1lαi(xi,xi)i=1lj=1lαiαj(xi,xj)s.t.  0αiρ(xi)C   i=1,2,,li=1lαi=1

不同点就是在二次规划求解 α i \alpha_{i} αi 时, G G G 有变化,之前时 C C C,现在是 ρ ( x i ) \rho(x_{i}) ρ(xi)

疑问:在这个地方,我个人有问题,SVDD本身是要调节 C C C 的,所以 ρ ( x i ) C \rho(x_{i})C ρ(xi)C 两个一起作用的时候, ρ ( x i ) \rho(x_{i}) ρ(xi) 肯定是一定的,那么我们还是可以调节 C C C, 让 C 1 = ρ C 2 C_{1} = \rho C_{2} C1=ρC2,使最后的效果是一样的,只是说法不同。

已解答 C 1 C_{1} C1 ρ C 2 \boldsymbol{\rho} C_{2} ρC2 实际上肯定是不一样的,不然论文也不得发出来了😂。因为 ρ \boldsymbol{\rho} ρ 是一个向量,对应每个 x x x 都有一个 ρ \rho ρ,在某个取值时,可能 C 1 = ρ ( x i ) C 2 C_{1} = \rho(x_{i})C_{2} C1=ρ(xi)C2,也只会等于其中的某个或者某几个值,也不会全部相等,这体现出了考虑每个样本重要性的作用。

代码实现

1、计算每个样本点得权重

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值