【CVPR2019】C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection
MIL回顾
介绍
MIL将图片视为“包”, 为第 个包(图片), 为所有包, 表示 是否包含某个类别的物体。比如 表示一个正的“包”(至少有一个正的实例), 表示一个负的“包”(没有一个正的类实例), 表示 的proposal和该proposal的类别, 为实例的个数。
MIL可以分为两个交替的步骤,实例选择和检测器估计。其中实例选择为一个实例选择器
可以计算出每一个proposal的类别得分。
为得分最高的proposal。而检测器估计器
对于上述被选择的proposal进行训练。
凸性分析
当第三个式子, 时永远是凸函数,但 时是非凸的(有种说法是当1减去一个可能大于1或者小于1的数,最终的值等于0,也可能大于0。但是一般我们计算得分基本上是0~1的范围,而且hinge loss在SVM中也有应用是凸函数但是不可微,论文后续也没有说为什么改进后就是凸的。)这里个人理解是因为公式1仅仅是取最大值,不具有代表性,得分高不一定就是“最优解”,可能是“局部最优解”,而后续的改进都是主打的是“平滑”,使实例选择出来的proposal更具代表性。
Continuation MIL
在模型训练的过程中,定义了一系列的
,也就是epoch,在0~1范围内,每个epoch式子都有所不同。
这里的
是实例的子集,
就是子集的index,也就是说训练实例选择器的时候,一个bag按照被分为多个的实例子集,这些子集里面的proposal空间上关联(互相有重叠)或者类别相关(类别分数相同)。那么是如何分的呢?迭代执行以下步骤:
- 选择分数最高但是还未属于任何一个实例子集的proposal建立一个新的实例子集
- 将那些与这个分数最高的proposal重叠大于等于 的proposal归入该新的实例子集
时,每个实例子集是整张图片的所有proposal的集合;
时,每个实例子集是整张图片的每个proposal。
于是实例选择器的损失函数为:
至于检测器估计,因为实例选择出来的子集可能包括了背景或是只有物体的一部分,所以融入了参数
,于是式5)变成了下式:
随着
从0变到1,
从1变到0.5,损失函数如下所示: