使用主动学习自动化数据集标注

Automate Dataset Labeling with Active Learning

图片来源:作者 | Canva & Knime插图

几年前,训练人工智能模型需要海量的标注数据。手动收集和标注这些数据既耗时又昂贵。但幸运的是,我们从那时起已经取得了长足的进步,现在我们拥有了更强大的工具和技术来帮助我们自动化这个标注过程。其中最有效的方法之一是什么?**主动学习。**

在本文中,我们将介绍主动学习的概念、工作原理,并分享一个循序渐进的实现过程,介绍如何使用这种方法来自动化文本分类任务的数据集标注。

什么是主动学习及其工作原理?

在典型的监督学习设置中会发生什么?你有一个完全标注的数据集,你训练了一个模型,其中每个数据点都有一个已知的输出。对吗?但遗憾的是,在许多现实场景中,获取所有这些标签可能非常困难。这时主动学习就派上用场了。

它是一种半监督学习的形式,算法可以实际寻求帮助——通过查询人类标注者或“预言家”来标注特定的数据点。但这里的关键是:主动学习不是随机选择数据点,而是选择对改进模型最有用的数据点。这些通常是模型最不确定的样本。一旦这些不确定的数据点被标注(通常由人类完成),它们就会被反馈给模型以重新训练它。这个循环会不断重复——每次都以最少的人工输入来改进模型。

这是来自 KNIME Blog 的一张图,总结了它的工作原理

KNIME Blog - Active Learning Working

KNIME Blog – 主动学习工作原理

主动学习中的关键概念

让我们快速回顾一些关键概念和术语——这样在稍后的实现阶段使用它们时就不会感到困惑。

  • 未标注池: 模型尚未见过的数据点池
  • 已标注数据: 模型已从中学习的数据集,其中包含人类提供的标签
  • 标注预言家: 为选定的数据点提供标签的外部来源或人类专家。
  • 查询策略: 模型选择要标注的数据点的方法。常见策略包括
    • 不确定性采样: 选择模型最不确定的实例(即模型预测的熵值较高)
    • 随机采样: 随机选择数据点进行标注
    • 多样性采样: 选择与现有已标注数据不同的样本,以提高特征空间的覆盖率
    • 委员会查询: 使用多个模型对分歧最大的样本进行投票
    • 预期模型变化: 识别在标注后对当前模型参数影响最大的样本
    • 预期误差减少: 选择能最小化未标注池上预期误差的样本

文本分类任务的主动学习实践实现

为了更好地理解主动学习的实际应用,让我们通过一个例子来学习如何使用它来改进文本分类模型,该模型使用新闻文章数据集。该数据集包含两个类别的新闻:无神论和基督教,用于二元分类。我们的目标是训练一个分类器来预测这两个类别,但最初我们只标注一小部分数据,其余数据将根据不确定性或随机性进行查询标注。你可以根据数据集的性质和你的目标选择任何一种。

步骤 1:设置和初始数据准备

我们将首先安装必要的库并加载数据集。为此,我们将使用 20 newsgroups 数据集的一个子集,并将数据分成训练池和测试集。

步骤 2:实现主动学习函数

现在,我们定义主动学习循环中的关键函数。这些函数包括不确定性采样、随机采样和用于跟踪模型性能的评估函数。

步骤 3:实现主动学习循环

现在,我们为指定的迭代次数实现主动学习循环,模型在此过程中选择样本、获取标注,然后重新训练模型。我们将比较不确定性采样和随机采样,看看哪种策略在测试集上的表现更好。

步骤 4:运行实验并可视化结果

最后,我们将使用不确定性采样和随机采样策略运行我们的实验,并可视化准确性结果随时间的变化。

输出

Output - Screenshot

输出 - 屏幕截图

结论

我们刚刚了解了主动学习,并利用它改进了一个文本分类模型。这个想法很简单但很强大:与其标记所有内容,不如只关注模型最不确定的那些示例。这样,您就不会浪费时间去标记模型已经理解的数据——您正在针对它的盲点。在实际项目中,这可以为您节省大量的时间和精力,尤其是在处理大型数据集时。在下面的评论中告诉我您对这种方法的看法!

暂无评论。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。