Hard Negative Mining
了解困难负样本挖掘如何通过识别混淆的负样本并改进 YOLO 模型训练来减少计算机视觉中的误报。
困难负样本挖掘是一种训练数据策略,它能识别出模型觉得异乎寻常地有说服力的负样本,并在学习过程中给予它们更多关注。负样本不属于目标类别,而困难负样本与正样本非常相似,足以产生高分、错误检测或邻近的 embedding。通过专注于这些容易混淆的案例,而不是反复向模型展示简单的背景样本,困难负样本挖掘可以锐化决策边界并减少误报。
困难负样本挖掘是如何工作的#
这个过程通常从在具有代表性的训练数据上训练的基线模型开始。然后,模型评估更大的候选池,例如未标记的生产图像、纯负样本场景或每个训练批次中的样本。尽管是负样本但仍获得高正分数的候选者将被挑选出来进行审核和未来的训练。
什么符合“困难”的定义取决于具体任务:
- 在目标检测中,当检测器将背景区域误认为是目标物体时,它就是困难的。
- 在分类中,它是被赋予目标类别高置信度的错误类别样本。
- 在检索或度量学习中,它是嵌入空间中排在查询附近的无关项。谷歌关于推荐模型负采样的指南将困难负样本描述为对梯度有强烈影响的高得分负样本项。
- 在三元组学习中,与匹配的正样本相比,负样本显得距离锚点太近。PyTorch TripletMarginLoss 文档解释了用于学习相对相似性的锚点-正样本-负样本结构。
挖掘可以在离线状态下通过定期在大型数据集上运行模型来进行,也可以在在线状态下通过从当前小批量中选择困难负样本来进行。Keras 困难负样本挖掘层提供了一个基于候选对数几率进行每查询选择的示例。
为什么困难负样本很重要#
大多数负样本都很简单:空旷的天空不太可能混淆叉车检测器。一旦模型正确分类了这些样本,它们提供的有用学习信号就很少了。困难负样本暴露了模型误解的精确视觉或语义特征。
当误报率降低精确率时,它们尤其有价值。精确率-召回率分析有助于确定重新训练是否确实在没有导致召回率不可接受下降的情况下减少了误报,正如 scikit-learn 精确率-召回率指南所说明的那样。
困难负样本挖掘不同于相关技术:
- 负采样选择所有负样本的一个可管理的子集;困难负样本挖掘优先考虑最容易混淆的样本。
- **主动学习**通常为人工标注选择不确定的样本,包括可能的正样本。困难负样本挖掘专门针对挑战模型的已确认负样本。
- **Focal loss**改变了损失函数内部样本加权的方式,而挖掘改变了选择或强调哪些样本。
- 类别重平衡解决了不相等的类别频率问题。谷歌的类别不平衡数据集指南涵盖了下采样和加权,但频繁出现的负样本不一定是困难负样本。
- **数据增强**创建现有样本的变体;它无法可靠地引入未知的生产失败模式。
实际应用#
**仓库安全检测:**假设叉车检测器反复将手动托盘车、货架反光和剪叉式升降机识别为叉车。这些误报可能会触发不必要的警报并降低操作员的信任度。工程师可以将这些场景收集为没有叉车标注的负面图像,将它们添加到数据集中,并重新训练检测器以区分目标和类似设备。
**视觉产品搜索:**客户搜索特定的黑色跑步鞋,但检索系统将来自不同产品线的视觉相似鞋类排名过高。这些不匹配的产品变成了困难负样本。针对它们进行训练鼓励嵌入模型保留细微的差异,例如鞋底形状、标志位置和材质。Keras 孪生网络示例演示了锚点、正样本和负样本图像如何支持相似性学习。
实用的挖掘工作流程#
一个可靠的工作流程是迭代的:
- 对具有代表性的验证和生产数据运行预测。
- 使用 Ultralytics 验证模式和混淆矩阵审查高置信度的误报和类别混淆模式。
- 确认每个候选者确实是负样本;不正确的标签可能会教导模型抑制真实物体。
- 查找相关样本,删除重复项,并保留多样化的背景、视角和条件。
- 重新训练,然后使用计算机视觉模型测试工作流程比较完整测试集和专用困难负样本切片上的性能。
Ultralytics Explorer 相似性搜索可以帮助浮现出类似于已知误报的图像:
from ultralytics import Explorer
# Build an embedding index for the example dataset
explorer = Explorer(data="coco128.yaml", model="yolo26n.pt")
explorer.create_embeddings_table()
# Retrieve visually similar candidates for human review
candidates = explorer.get_similar(
img="https://ultralytics.com/images/bus.jpg",
limit=12,
)
print(candidates.head())仅凭相似性并不能证明候选者是困难负样本;审核员必须验证其真实标签。团队可以使用 Ultralytics Platform 来组织候选图像、对其进行标注或更正、训练更新的模型并监控部署。
避免只选择绝对最困难的例子。有些可能是标签错误、含糊不清或极端的异常值,从而破坏训练的稳定性。简单、中等难度和困难负样本的平衡混合通常在保持广泛覆盖的同时,教导模型其当前的边界在哪里失效。






