探索主动学习,这是一种经济高效的机器学习方法,可以通过更少的标签提高准确性。了解它如何改变 AI 训练!
主动学习是机器学习(ML)中的一种动态方法 主动学习是机器学习 (ML)中的一种动态方法,旨在通过有选择地选择信息量最大的数据点进行标注来优化训练过程。 主动学习是机器学习(ML)中的一种动态方法,旨在通过有选择性地选择信息量最大的数据点进行标注来优化训练过程。在标准监督 学习中,模型被动地输入一个预先标注的大型数据集。 如果数据中包含冗余或无信息的示例,则效率会很低,成本也会很高。主动学习改变了这种模式,它允许模型 交互式地查询信息源--通常是人类专家或 "甲骨文"--为特定的、模棱两可的实例请求标签、 模糊实例的标签。这种有针对性的策略大大减少了 这种有针对性的策略大大减少了实现高准确度所需的训练数据量 因此非常适合预算有限或时间紧迫的项目。 预算或严格时间限制的项目的理想选择。
主动学习过程是一个迭代循环,通常被描述为 人在回路中的工作流程。这种 这种循环可确保人力只专注于对改进模型贡献最大的数据。典型的工作流程包括 典型的工作流程包括
这种方法的有效性在很大程度上取决于取样策略。不确定性采样是 不确定性抽样是最常见的技术,算法会选择最接近其决策边界的实例。关于这些策略的 关于这些策略的 主动学习文献调查中都有关于这些策略的详细介绍。
下面的代码片段演示了如何实现基本的不确定性采样循环。它加载一个模型,预测 对图像进行预测,并识别低置信度检测的图像,将其标记为需要人工审核的图像。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on a list or directory of unlabeled images
results = model.predict(["image1.jpg", "image2.jpg"])
# Identify images where the model is uncertain
uncertain_samples = []
for result in results:
# Check if detections exist and if the maximum confidence is below a threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.max() < 0.6:
uncertain_samples.append(result.path)
print(f"Flagging {result.path} for manual labeling.")
print(f"Total uncertain images found: {len(uncertain_samples)}")
主动学习在以下领域尤为重要 数据标注成本高昂或需要专 专业知识。
虽然主动学习涉及使用无标记数据,但它与其他机器学习范式不同:
实施主动学习需要强大的 机器学习操作 (MLOps) 管道来管理模型、数据集和注释接口之间的数据流。支持数据 版本和管理的工具对于跟踪哪些样本已被查询至关重要。虽然通用库 如 scikit-learn 等通用库提供了一些实用工具,但计算机视觉工作流程通常需要与图像数据集进行定制集成,以便对所选样本进行可视化和注释。 图像数据集进行自定义集成,以便有效地对所选图像进行可视化和注释。 有效。高级用户可以访问 Ultralytics GitHub 存储库,了解如何将预测结果 的结构,以便为这些数据整理循环提供数据。

