前言
最近开始研读周老师《Isolation set-kernel and its application to multi-instance learning》这篇文章,之前只是大致浏览,如今细细品味一番。
论文地址:https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/kdd19iskernel.pdf
摘要
集合级别 (set-level)问题与实例级别问题 (instance-level)同等重要,其解决核心是如何度量两个集合之间的相似性 (similarity)。在周老师这篇文章中,研究了由数据直接衍生的数据相关核 (data-dependent kernel),要点如下:
- Isolation set-kernel:完全依赖于数据分布,且不需要类别信息 (class information)和外显示学习 (explicit learning)。
- 出发点:已有set-similarities大都不依赖于数据分布。
- Set-kernel特征图 (feature map)有限:证明了这一特点能显著加速set-kernel的计算。
- Set-kernel与SVM共同运用于多示例问题。
1 引入
要点如下:
- 多示例类型:如果包中的实例至少有一个具有某类标签,则该包归属该类;对于二分类,如果该包包含至少一个正实例,则包为正包反之为负。
- 方法类型:将多示例问题转化为单实例问题。
- 基于核的方法 (kernel-based):基于已有的例如Gaussian kernel设计新的核;使用已有的核例如Fisher kernel调整后使用。
- 本文方法与Gaussian set-kernel的不同之处:
名称 |
Isolation set-kernel |
Gaussian set-kernel |
数据相关性 |
基于数据相关核:Isolation kernel |
基于数据不相关核:Gaussian kernel |
特征图特点 |
固定长度;稀疏表示 |
长度不固定 |
- 本文方法与Fisher set-kernel的不同之处:
名称 |
Isolation set-kernel |
Fisher set-kernel |
似然估计 (likelihood estimation)或其他外显示学习 |
× |
√ |
稀疏表示 |
√ |
× |
- 主要贡献:
7.1) 设计了一种新的数据相关核,即Isolation set-kernel,其能适应给定数据集的相关结构;
7.2) 对所提出核的特性进行理论分析;
7.3) Isolation set-kernel的特征图是将任意大小的集合转换为固定长度的实例,这种特性将显著降低算法运行时间;
7.4) 运用加权类型的set-kernel来处理多示例问题。
2 Isolation kernel
Isolation kernel最开始用于度量两个实例之间的相似性,周老师将其扩展为用于度量两个集合之间的相似性,首先给出相关符号表:
符号 |
意义 |
D |
给定的数据集 |
D, where
D⊂D |
随机子集 |
ψ= |
D| |
随机子集的大小 |
H(D) |
D下可容许的所有分区 (partition)
H的集合 |
H, where
H∈Hψ(D) |
分区 |
θ, where
θ∈H |
Isolation 分区,其作用为:在给定的一个
D中将一个实例
x与其余实例隔开 |
Si={x1,…,xwi}, where
xk∈Rd |
一个采样于未知概率密度函数
F的数据集 (
Si∼F) |
定义2.1. 对于给定的两个实例
x,y∈Rd,其之间关于
D的Isolation kernel被定义为在所有的
H上,
x和
y同属于一个
θ的密度分布期望 (probability distribution expectation):
K(x,y∣D)=EHψ(D)[I(x,y∈θ∣θ∈H)](1)其中
I(B)是指示函数,
B为真则输出1;反之为0。
实际上,Isolation kernel可以通过有限数量的
Hi∈Hψ(D),
i∈1,…,t来估算:
K(x,y∣D)=t1i=1∑tθ∈Hi∑I(x∈θ)I(y∈θ)(2)因此,
K(x,y)∈[0,1]。
3 Isolation set-kernel
3.1 ISK的定义
定义3.1. ISK (Isolation set-kernel). 对于任意给定的两个集合
T和
S,其之间关于
D的ISK定义为在所有的
H上,
x∈T和
y∈S同属于一个
θ的密度分布期望:
Kψ(S,T∣D)=EHψ(D)[I(x,y∈θ∣θ∈H;x∈T,y∈S)](3)
实际上,
Kψ可以通过有限数量的
Hi∈Hψ(D),
i∈1,…,t来估算:
Kψ(x,S∣D)=t∣S∣1y∈S∑i=1∑tI(x,y∈θ∣θ∈Hi)=∣S∣1y∈S∑K(x,y∣D)(4)
Kψ(S,T∣D)=∣T∣1x∈T∑Kψ(x,S∣D)(5) 简单说来就是给定的两个集合之间的每一对实例均需要计算一次
K(x,y∣D),要注意的是什么时候取平均。
目前要解决的问题是:如何确定分区
Hi以及Isolation分区
θ?
3.2 ISK特征图
ISK特征图具有如下特点:
1)用户可定义数量的特征的稀疏表示;
2)数据相关性。
具体描述如下:
令
v(S∣H)为长度为
ψ的向量,表示
S中实例所占比例下降的所有分区
θj∈H,j=1,…,ψ。此向量的第
j个部分定义如下:
vj(S∣H)=∣S∣1y∈S∑I(y∈θj∣θj∈H)(6)
定义3.2. Feature map of ISK. 对于任意的集合
S⊂Rd,其特征映射
Φ为:
Kψ的
S→Rt×ψ是一个向量,表示
x∈S所占比例下降的所有分区
Hi∈Hψ(D),i=1,…,t:
Φ(S)=[v(S∣H1),v(S∣H2),…,v(S∣Ht)](7)
Φ(S)是一个固定长度的向量,通过级联
Φi(S),i=1,…,t得到。运用特征图,可以将任意大小的集合
S⊂Rd映射为
Rt×ψ实例。注意此特征图是数据相关且稀疏的表示。
引理3.3.
Kψ是一个合理的核,即
Kψ(S,T)≡<Φ(S),Φ(T)>,证明如下:
公式(5)可以重新表示为:
Kψ(S,T)=∣T∣1x∈T∑[t∣S∣1y∈S∑i=1∑tθ∈Hi∑I(x∈θ)I(y∈θ)]=t∣T∣∣S∣1i=1∑t[x∈T∑y∈S∑θ∈Hi∑I(x∈θ)I(y∈θ)]=t∣T∣∣S∣1i=1∑tΦi(S)TΦi(T)=t1Φ(S)TΦ(T)=const×<Φ(S),Φ(T)>(8)
这个证明_(¦3」∠)_。。。先记住结论丷,总之它有如下特征和优势:
1)是固定长度的表示,能够将不同大小的单个集合转换为具有相同大小的单个映射实例;
2)适应了给定数据集的密度结构,不像已有的类似Gaussian kernel这样的数据不相关核;
3)是一种稀疏表示,能够提高核的计算效率。
到这里之前的问题依然没有解决。。。先不方。。。
4 Voronoi图实现ISK
Isolation kernel目前有两种成功的划分机制,包括Isolation Forest和Voronoi diagram。周老师这篇文章使用的是Voronoi图来实现ISK。
关于voronoi图的介绍可以大致浏览百度百科或者(#^.^#)博客。
使用随机选择的大小为
ψ的样本
D构造Voronoi图,其单元 (cell)中心
z∈D为:
θ[z]={x∈R∣z=z∈Dargmind(x,z)}(9)其中
d(x,z)是欧式距离。简单说来中心
z就是给定样本中离其他实例的距离之和最小的那个。
定义 4.1. 给定任意两个集合
S,T⊂Rd,关于
D的
S和
T之间的ISK Voronoi图定义为在所有的Voronoi图
H∈Hψ(D)上,
x∈S和
y∈T同时属于一个Voronoi单元
θ∈H的概率分布期望。很熟悉对吧~现在之前的问题有了些许眉目(\╹▽╹):
Kψ(S,T∣D)=EHψ(D)[I(x,y∈θ[z]∣θ[z]∈H;x∈S,y∈T)]=ED∈D[I(x,y∈θ[z]∣z∈H;x∈S,y∈S)]=P(x,y∈θ[z]∣z∈D∈D;x∈S,y∈S)(10)其中
P代表概率。
公式 (10)和公式 (3)很像。。把
θ换成了
θ[z],也就是说这里将
θ更加明确。这里需要注意的是
θ[z]和
z的区别:前者代表中心,是一个具体的实例,后者则是索引?因为
argmin得到的就是索引;还是也是一个实例?毕竟
x∈R,又要计算
d(x,z)。疑惑…
对于Voronoi实现的ISK,给出以下示例:
给定一个二维均匀分布的集合
S0:{(0,0.1),(0,−0.1),(0.1,0),(−0.1,0)},以此为基准,度量其与另一个集合
Sμ:{(0+a,0.1+b),(0+a,−0.1+b),(0.1+a,0+b),(−0.1+a,0+b)},其中
a∈[−1,1],b∈[−1,1]。其分布如下图,有点跳跃啊。。直接上图了(ಥ﹏ಥ):
图确实模糊,原论文上截图下来的,让窝缓缓他怎么画出来的。。
先战术性撤退,等俺提升个段位再来挑战 (2020 0423 1344)。