一句话定义:多示例学习(Multiple Instance Learning, MIL)是一种监督学习设定——训练数据被组织成一个个"包(bag)",只有包带标签,包里的示例(instance)没有标签。
一个包,一个标签
最常见的设定是二分类。"正包"里至少含一个正示例,"负包"里全是负示例。模型只需要把包判对,不要求(通常也做不到)指出是哪个示例导致了判断。
打个比方:一串钥匙,只要有一把能开门,这串钥匙就贴"能开"的标签,至于具体是哪把,没人告诉你。整串是包,单把钥匙是示例。
医学影像是经典场景:一张全切片图像(Whole Slide Image, WSI)要切成成千上万个几百像素的小图块(patch)。病理医生给的是"这张切片有癌/没癌"的切片级结论,几乎不可能逐块标注。切片是包,patch 是示例。文档分类同理:一份合同是包、句子是示例,"这份合同有风险"容易拿到,"哪一句有风险"要律师逐句看。
怎么训
常见三条路:训一个示例级分类器再用 max 或 mean 池化(pooling)把示例分数聚成包分数;先把示例编码成向量再聚合;或用注意力(attention)学每个示例的权重——权重顺带能告诉你"模型看了哪几块",在医疗场景里这个可解释性常和准确率一样重要。
两个实操坑:标准 MIL 假设示例彼此独立,但相邻 patch 高度重叠,这个假设并不成立;正包里正示例可能占比极小(证据稀疏),mean 池化容易被稀释,所以 max 池化和注意力更常用。
最容易混淆的邻居:数据增强
MIL 和数据增强(data augmentation)常被混为一谈,因为都涉及"一个东西里装着多个东西"。但两者根本不在同一层面。
| 多示例学习(MIL) | 数据增强(data augmentation) | |
|---|---|---|
| 本质 | 一种问题设定:标签贴在哪个粒度 | 一种数据手段:怎么造更多训练样本 |
| 变的是什么 | 监督信息的分配方式 | 像素或文本的变换(旋转、裁剪、加噪、同义替换) |
| 标签情况 | 包有,示例没有 | 变换后的副本与原样本标签完全一致 |
| 内部关系 | 逻辑包含:示例是包的一部分 | 平行复制:副本是原样本的变体 |
| 能否单独使用 | 不能,示例不能拿出来当带标签样本 | 可以,增强样本就是普通样本 |
一句话:MIL 回答"标签该贴在哪一层",数据增强回答"样本不够怎么办"。两者正交,可以一起用,但不能互相替代。
再分清两个近邻:多标签学习(multi-label learning)是一个样本带多个类别标签,变的是类别维度;MIL 变的是样本层级维度,二者可以叠加。弱监督(weak supervision)是更大的伞,泛指标签不精确、不完整的情况,MIL 是其中一种典型形态。
对实际工作意味着什么
对从业者:拿到数据先问一句"标签是在哪个粒度上给的"。如果只有粗粒度标签却硬按示例级监督训练,等于把未标注的示例当作负样本,引入大量假负例。识别出这是 MIL 问题,往往能省掉绝大部分标注成本。评估时也要留意:包级指标好看,不代表模型定位到了真正的关键示例。
对普通职场人:现实里能拿到的标签大多比想象中粗——这批货合不合格、这份工单是否成立,组织层面的事实容易记录,细节归因很难。MIL 的思路是先在粗粒度上把模型训起来,让它自己指认可疑细节,再交给人工复核,比"先标注几万条细粒度数据"现实得多。
