ntucllab/libact

Pool-based active learning in Python

解决的问题

libact 是一个简化池化主动学习实现的 Python 包。它通过从大量未标注数据中智能选择最具信息量的样本进行标注,帮助用户减少模型训练所需的标注数据量。

工作原理

该库为实现查询策略、模型和标注器提供了统一接口。它实现了多种流行的主动学习策略,按其方法分类如下:

  • 利用/不确定性: 选择模型最不确定的样本(例如 UncertaintySampling)。
  • 多样性/代表性: 选择与已标注集距离最远或能代表数据分布的样本(例如 CoreSetInformationDensity)。
  • 分歧: 使用一组模型(委员会)来寻找模型间分歧最大的样本(例如 QueryByCommitteeBALD)。
  • 元算法: ActiveLearningByLearning(ALBL)算法作为多臂老虎机,可实时自动选择最佳查询策略。

适用人群

希望将主动学习集成到项目中以优化标注成本并用更少的标注数据提升模型性能的数据科学家和机器学习实践者。

主要亮点

  • 丰富的策略库: 包含不确定性、多样性以及认知不确定性(BALD)等多种策略。
  • 元学习: 内置 ALBL 元算法,实现自动策略选择。
  • 可扩展接口: 提供统一接口和适配器(如 SklearnAdapter),可封装任意 scikit-learn 估计器。
  • C 扩展: 包含用于方差减少和 HintSVM 的高性能模块。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目