多示例学习 Multi-Instance Learning

多示例学习 Multi-Instance Learning

多示例学习(Multiple-instance Learning)已经过时了吗?我不禁发出这样的感叹,为什么从最开始的MIL研究就没有代码公开学习呢?这个领域的研究进展前景是什么样子的完全不清楚呀!

多示例学习举例:假如一段视频由很多张图组成,假如10000张,那么我们要判断视频里是否包含某一物体,比如气球。单张标注每一帧是否有气球太耗时,通常人们看一遍说这个视频里是否有气球,就得到了多示例学习的数据。10000帧的数据不是每一个都有气球出现,只要有一帧有气球,那么我们就认为这个数据包是有气球的。只有当所有的视频帧都没有气球,才是没有气球的。从这里面学习哪一段视频(10000张)是否有气球出现就是多实例学习的问题。

看了一篇《Multiple Instance Learning Convolutional Neural Networks for Object Recognition》论文[1],笔记中涉及对MIL层的损失函数和梯度的计算推导过程。

针对分类问题中需要大量数据的原因,人们提出了Date Augmentation的方法。但是,并不是所有的方法对分类数据集都行之有效,例如random crop。如图1所示,crop之后,存在一些将target domain 去掉的例子,导致标签不准确。存在一些noisy training pairs,此时就可以利用MIL的方法,将图像的random crop的图像作为多个示例组成一个包。crop的图像没有label,但是所有的示例组成的包共享之前的label。

Data Augmentation and Labels

B=\left \{ x^{1} ,x^{2},...,x^{m}\right \}

其中m是图像的第m个区域。

那么关于B包的损失函数为:

f_{loss} = -\sum_{i=1}^{C}y_{i}\log (p(c_{i}=1|B)).....(公式8)

p()函数代表的是包B被分类为第i类的概率。

根据MIL的定义,B是负包如果所有的示例都是negative的话,

p(c_{i}=0|B)=\prod_{j=1}^{m}(1-p(c_{i}=1|x^{j}))) .... (公式9)

并且定义

p(c_{i}=1|x_{j})=1-\exp (-\lambda h_{i}^{j}) .... (公式10)

这么定义就是为了求梯度的时候好求。。。

hij代表的是对第j个区域,在损失层之前的CNN模型的第i个输出。

公式8和下面的公式11是等同的,

f_{loss} = -\sum_{i=1}^{C}(1-y_{i})\log (1-p(c_{i}=1|B))....(公式11)

结合公式11和公式9,10可以得到,

f_{loss}= -\sum_{i=1}^{C}(1-y_{i})\log (1-p(c_{i}=1|B))\\ = -\sum_{i=1}^{C}(1-y_{i})\log (p(c_{i}=0|B)\\ = -\sum_{i=1}^{C}(1-y_{i})\log \prod_{j=1}^{m}(1-p(c_{i}=1|x^{j})))\\ = -\sum_{i=1}^{C}(1-y_{i})\sum_{j=1}^{m}\log (1-p(c_{i}=1|x^{j}))\\ = -\sum_{i=1}^{C}(1-y_{i})\sum_{j=1}^{m}\log(\exp (-\lambda h_{i}^{j}))\\ = -\sum_{i=1}^{C}(1-y_{i})\sum_{j=1}^{m}(-\lambda h_{i}^{j})

梯度为,

\frac{\partial f_{loss}}{\partial h_{i}^{j}}=\lambda (1-y_{i})

Algorithms


问题1:对于多标签的分类,如果用MIL来做的话,数据该如何处理?

问题2:在做弱监督目标定位的时候,遇到的一个问题是,如果一张图片上同时出现多个同类别的不同物体,在标签转换的时候,会导致标签信息的缺失。这种情况应该可以使用MIL减轻造成的影响。正在考虑如果解决这个问题。


参考资料:

[1] Sun M, Han T X, Liu M C, et al. Multiple Instance Learning Convolutional Neural Networks for object recognition[C]// International Conference on Pattern Recognition. IEEE, 2017:3270-3275.

编辑于 2019-04-10 21:00