基本思想

主动学习算法可以由以下五个组件进行建模:

A=(C, L, S, Q, U)

各个组件表示的内容如下:

  • C: 一个或一组分类器
  • L: 一组已标注的训练样本集
  • Q: 为查询函数,用于在未标注的样本中查询信息量大的样本
  • U: 为整个未标注样本集
  • S: 为督导者,可以对未标注样本进行标注。

主动学习算法阶段:

  • 初始化阶段:随机从未标注样本中选取小部分,由督导者标注,作为训练集建立初始分类器模型
  • 循环查询阶段:S 从未标注样本集 U 中,按照某种查询标准 Q,选取一定的未标注样本进行标注,并加到训练样本集 L 中, 重新训练分类器,直至达到训练停止标准为止

与半监督学习的区别

主动学习的“主动”,指的是主动提出标注请求,也就是说,还是需要一个外在的能够对其请求进行标注的实体(通常就是相关领域人员),即主动学习是交互进行的。

而半监督学习,特指的是学习算法不需要人工的干预,基于自身对未标记数据加以利用。

介绍

Active Learning 是一种机器学习方法,其中模型能够主动选择最具信息量的数据点来进行标注,以提高模型的性能。这种方法特别适用于标注成本较高或资源有限的情况。通过主动选择最不确定或最有价值的样本,Active Learning 能够在较少的标注数据上达到较高的模型性能。

Active Learning 的基本原理

  1. 初始模型训练:首先,使用一小部分已标注的数据训练一个初始模型。
  2. 选择样本:模型根据某种策略选择未标注数据中最不确定或最有价值的样本。
  3. 获取标注:将选中的样本提交给专家或标注人员进行标注。
  4. 更新模型:将新标注的数据加入训练集,重新训练模型。
  5. 迭代优化:重复上述步骤,直到模型性能达到满意水平或标注预算用尽。

选择样本的策略

  1. 不确定性采样:选择模型预测最不确定的样本。常见的不确定性度量包括:
  2. 最小置信度:选择模型预测概率最低的样本。
  3. :选择预测概率分布熵最高的样本。
  4. 边际采样:选择模型预测第二高概率与最高概率之差最小的样本。

  5. 查询-by-委员会:使用多个模型(委员会)对未标注数据进行预测,选择委员会成员意见分歧最大的样本。

  6. 基于多样性的采样:选择能够增加训练集多样性的样本,以避免过度拟合。

  7. 基于梯度的采样:选择对模型参数影响最大的样本。

应用场景

  1. 图像分类:在医学影像分析中,标注一张高质量的医学影像可能需要专家花费大量时间。通过 Active Learning,可以选择最具代表性的图像进行标注,提高模型的性能。
  2. 文本分类:在情感分析、主题分类等任务中,标注文本数据的成本较高。Active Learning 可以帮助减少标注数据的数量,同时保持模型的性能。
  3. 语音识别:在语音数据的标注过程中,Active Learning 可以选择最具挑战性的音频片段进行标注,提高模型的鲁棒性。

优点

  • 减少标注成本:通过选择最具信息量的样本进行标注,减少了标注数据的数量和成本。
  • 提高模型性能:在有限的标注数据上,通过选择最有效的样本,可以更快地提高模型的性能。
  • 灵活性:适用于各种不同的数据类型和任务。

挑战

  • 初始模型性能:初始模型的性能对后续的样本选择有重要影响,如果初始模型性能较差,可能会导致选择的样本质量不高。
  • 标注延迟:在实际应用中,获取新标注数据可能需要一定的时间,这会影响模型的迭代速度。
  • 策略选择:不同的选择策略适用于不同的任务和数据集,需要根据具体情况进行选择和调整。

实现工具

  • modAL:一个基于 scikit-learn 的 Active Learning 库,提供了多种选择策略和示例。
  • Libact:另一个开源的 Active Learning 库,支持多种机器学习算法和选择策略。
  • Custom Implementations:根据具体需求,也可以自定义 Active Learning 管道,使用 TensorFlow、PyTorch 等框架实现。

结论

Active Learning 是一种有效的机器学习方法,特别适用于标注成本高或数据稀缺的场景。通过智能地选择最具信息量的样本进行标注,可以在较少的标注数据上达到较高的模型性能。随着技术的发展,Active Learning 在各个领域的应用将会越来越广泛。

参考