【论文阅读】Scalable Algorithms for Multi-Instance Learning

文章目录

    • 1、基本信息
    • 2、摘要
    • 3、相关工作
    • 4、算法
      • 4.1、miVLAD(MIL based on the VLAD representation)

1、基本信息

@article{XiuShenWei2017ScalableAF,
  title={Scalable Algorithms for Multi-Instance Learning},
  author={Xiu-Shen Wei and Jianxin Wu and Zhi-Hua Zhou},
  journal={IEEE Transactions on Neural Networks},
  year={2017}
}

2、摘要

当前大多数的多示例学习算法只能处理小型或中型规模的数据,为了能够处理大规模数据的多示例学习问题,本文提出了基于局部聚合描述符向量表示的多示例学习算法miVLAD以及基于Fisher向量表示的多示例学习算法miFV。这两个算法通过相应的映射函数将包映射为新的向量,并且保留了重要的包级信息。

实验表明,miVLAD与miFV不仅实现了高准确率,而且提高了执行速度。

3、相关工作

现有的多示例学习算法:
(1)基于密度的算法,如:Diverse Density与EM-DD;

(2)基于KNN的算法:如citation-kNN与Bayesian-kNN;

(3)基于SVM的算法:如miSVM与MISVM;

(4)基于集成的算法:如MIBoosting;

(5)将多示例转换为单实例的算法:如MIWrapper与MILES;

(6)基于距离的算法:如MIMEL;

(7)基于核函数的算法:如miGraph。

这些算法有着不错的准确率,但大多数算法只能处理小型或中等规模的数据。现有的算法无法处理大规模的多示例数据。

4、算法

VLAD与FV都是计算机视觉中的方法。从给定图像数据中提取一系列的描述符(向量),VLAD与FV能够将这些向量编码为高维度向量。然后,将包级的向量利用SVM来训练分类器。

在VLAD与FV中,图片被表示为一组局部块,每一块都是图片的一小部分。这种表示方式与MIL中包的表示方式有一定的关联,但又不同。

不同之处在于:MIL中每个实例是包中的一小部分,且带有标签;但在VLAD与FV的表示方式中,每一个图片局部块并没有其意义。如:一张标记为建筑物的图片中,从中提取的局部块并不会被视为建筑物。

4.1、miVLAD(MIL based on the VLAD representation)

首先,从所有的训练包集中提取出所有实例 x ⋅ j x_{·j} xj。然后,将所有实例通过k-means算法分成 K K K个中心 C = { c 1 , . . . , c k , . . . , c K } C=\left \{ c_{1},...,c_{k},...,c_{K} \right \} C={c1,...,ck,...,cK}以及 K K K个簇。每一个实例 x i j x_{ij} xij都隶属于其距离最近的中心 c k = N N ( x i j ) c_{k}=NN(x_{ij}) ck=NN(xij)

聚类完成后,就基于这 K K K个簇,利用差值计算和拼接的方法将每个包 X i X_{i} Xi映射为特征向量 v i v_{i} vi,映射方法是将包中每个实例与每个中心的差异累加起来 x i − c k x_{i}-c_{k} xick,其中实例 x i x_{i} xi属于包 X i X_{i} Xi且隶属于 c k c_{k} ck簇。

这种映射函数将 K K K维差异体现在特征向量 v i v_{i} vi来表示一个包 X i X_{i} Xi
v i k l = ∑ x i j ∈ Ω x i j l − c k l (1) v_{ikl}=\sum_{x_{ij}∈Ω}x_{ijl}-c_{kl}\tag{1} vikl=xijΩxijlckl(1)
其中, Ω = { x i j ∣ N N ( x i j ) = c k } Ω=\left \{ x_{ij}|NN(x_{ij})=c_{k} \right \} Ω={xijNN(xij)=ck} v i k l v_{ikl} vikl表示第 i i i个包的第 j j j个实例的第 l l l维属性值。

得到 v i v_{i} vi后,我们再用下面这个公式对 v i v_{i} vi中的每一个值进行处理:
v i ⋅ l = s i g n ( v i ⋅ l ) ∣ v i ⋅ l ∣ (2) v_{i·l}=sign(v_{i·l})\sqrt{|v_{i·l}|}\tag{2} vil=sign(vil)vil (2)

再对 v i v_{i} vi进行二范式处理:
v i = v i ∥ v i ∥ 2 (3) v_{i}=\frac{v_{i}}{\|v_{i}\|_{2}}\tag{3} vi=vi2vi(3)

最后,我们将 ( v i , y i ) (v_{i},y_{i}) (vi,yi)放入标准监督学习模型(如:SVM)中进行学习并进行包级别的预测。

伪代码:
【论文阅读】Scalable Algorithms for Multi-Instance Learning_第1张图片

【论文阅读】Scalable Algorithms for Multi-Instance Learning_第2张图片

你可能感兴趣的:(机器学习,多示例学习,算法)