以数据为中心的人工智能的主动学习

在机器学习(ML)中,当要提高性能时,经常出现的一个主要问题是获取数据的设置成本。产生高质量的数据以提高预测的准确性通常是困难的、昂贵的或根本不可能的。此外,与人工智能模型本身不同,数据通常被认为不太重要。这是因为ML工程师倾向于改变一个模型的代码,而不是清理数据集。但特别是在人工智能应用中,检查数据是很重要的,因为系统是建立在代码和数据之上的,而不像传统软件那样只基于代码。虽然人们通常认为机器学习中的80 %活动与数据清理有关,但确保数据质量(以数据为中心)并不被认为与在模型上的工作(以模型为中心)一样重要。[1] 

但为什么没有人使用以数据为中心的方法呢?

有几个因素在这里起作用。一方面,以数据为中心的方法被认为是一项耗时而繁琐的工作;另一方面,也很难界定到底什么是好的数据集。然而,由于收集和存储数据的方式更加便宜,未标记的数据量普遍增加,因此,与良好的数据集合作的需求在未来将变得更加重要。要建立好的模型,你需要好的数据,这是有代价的。"(......)注释的数据很难获得,也很昂贵,特别是在专业领域,只有专家才能提供可靠的标签,而他们的时间是稀缺和宝贵的。"[2] 针对这种情况,研究人员已经开始提高对弥合数据采集和模型建立之间差距的认识。这正是 "主动学习 "这门学科的作用所在。 

主动学习如何帮助获得更好的数据?

主动学习将人类知识整合到机器学习中,从而大大减少了数据需求,提高了人工智能的预测能力。"它的目的是从未标记的数据集中选择最有用的例子,并将其传递给神谕(如人类注释者)进行标记,在不影响性能的情况下尽可能地减少标记的成本"。[3] 当数据量太大,无法进行标注,或者需要设置优先级的智能标注方式时,主动学习尤其有用。自然语言处理(NLP)是使用主动学习的最流行领域之一。主要是因为NLP应用需要大量的标记数据,标记的成本非常高。在NLP中使用主动学习,可以减少在模型训练过程中需要由专家准确标记的数据量。相反,该模型已经自己给数据贴上了标签,并在它不太确定是否是正确的标签时要求得到反馈。 

在不同的研究论文中提到了三种不同类型的主动学习。最常见的方法是基于池的学习(Pool-Based Learning),从整个数据池中选取信息量最大的实例,给其打分,并向人类查询标签。基于数据流的选择性抽样对每个无标签的数据点的信息量进行单独评估,并自行决定是查询人类还是自己分配一个标签。成员查询合成是一种方法,模型从基础的自然分布中生成自己的实例。但任何一种数据点的优先级都需要一些一般的步骤,以便在无标签的数据集上进行主动学习。首先,必须对一个非常小的数据子集进行人工标记,然后在此基础上训练模型。然后,模型预测未标记的数据点的类别,根据模型的预测选择一个分数,并将要标记的数据点分配给人类。训练过程的方法被称为半监督学习,这意味着只有少量的标记数据,但有大量的未标记的数据。在收到人类的反馈后,模型可以在增强的标记数据集上进行训练,通过每次循环来提高模型的性能。 

主动学习周期
主动学习周期

我们如何整合主动学习以实现更好的预测性能

在下面的部分,我们将解释我们如何在人工智能平台Konfuzio中实现主动学习方法。我们使用了基于流的选择性抽样方法,但针对我们的应用对其进行了扩展,我们更需要一种以数据为中心的方法,适合于连续学习行为。这变得很有必要,因为我们的目标不是训练一次大的数据集,然后在下面使用它,而是用一个小的数据集训练模型,并通过重新训练不断提高预测性能。可以参考的一种方法是增量学习,其目的是随着新的训练数据的出现,逐渐增加模型的知识[4]。因此,主动学习的方法在较长的时间内延伸,并定期进行。那么,在一个新的项目中,利用主动学习来提高我们的成果的步骤是什么?以下是该过程的视觉表现和每个步骤的描述。

主动学习圈
Konfuzio的主动学习过程

主动学习发生在 "反馈 "步骤中,与用户的互动对于改善模型的预测是必要的。在这里,我们可以说是 "人在回路 "的实施,它将我们的机器学习模型与人的互动相结合。这使得我们有可能频繁而快速地重新训练我们的模型,因为我们通过让人工智能转向人类而从持续的反馈中受益。这种方法在采取以数据为中心的观点的同时,定期和持续地提高预测性能。

主动学习在实践中是如何运作的?

从发票中提取数据

在实践中利用文件的例子进行主动学习

  1. 选择问题

    用户选择一个人工智能处理文件的用例。对要提取的标签的明确定义是人工智能主动学习过程的起点。用于数据提取的章节和标签

  2. 收集数据

    用户向Konfuzio平台上传文件,包括用于培训和验证的文件和用于测试的文件(例如按70/30比例)。训练数据现在必须由用户手动标记,或者可以使用开源的人工智能模型来预先标记数据。对文件进行分类和提取

  3. 检查数据

    对标记的训练数据的一致性进行检查,必要时进行纠正或扩展。在另一篇技术文章中,我们展示了我们如何通过自动总结的方式来控制训练数据的质量。 对这篇文章。AI识别发票项目

  4. 培训AI

    然后在标记的训练数据上开始自动训练。为各自的用例选择最佳的模型架构。开始AI模型再训练

  5. 测试AI

    训练结束后,在上传的测试数据集上对训练后的人工智能进行自动测试。检查要从发票中提取的数据

  6. 报告

    报告显示,当包括测试数据集时,"新 "人工智能模型是否比以前的模型更好。如果没有,下一步就使用以前的模型。对文件AI的评价

  7. 部署的人工智能

    如果 "新 "模型比以前的模型好,Konfuzio就会用最新训练的人工智能来更新API。在一个项目中对AI进行分类和提取AI

  8. 真实世界

    现在,新的 "真实世界 "数据/文件开始发挥作用,并通过所使用的人工智能进行处理。新标签的预测结果会被计算出来。文档可通过 API 或 Python SDK 直接访问已部署的人工智能。JSON

  9. 反馈信息

    文件中所有被识别的数据都通过标记智能视图中的标签显示给用户。这个用户界面允许用户通过在相应的文件上直观地显示预测结果来提供反馈。既可以通过点击绿色的勾来确认正确性,也可以通过点击红色的X来丢弃错误的标签。此外,用户还可以添加被错误遗漏的标签。对于那些用自动生成的规则无法识别的文件,最好给予人工反馈,见步骤3。
    检查要从发票中提取的数据

  10. 收集数据

    然后在重复的 "收集数据 "步骤中,用户的反馈被反馈到数据集中。一个被接受的标签只是确认了正确性,拒绝的反馈或增加的标签通过重新训练模型增加了预测的准确性。之前的 "真实世界 "数据现在被带入训练的循环中。学习曲线

总结

主动学习有助于不断提高新的人工智能和机器学习模型的预测能力。纳入主动学习方法的好处是降低成本,为人工智能的首次发布提供少量的数据,通过不断测试人工智能的准确性,提高可靠性和不断增强鲁棒性。向以数据为中心的开发的转变使得人工智能可以被更多的用户团队和更多的使用案例所接受。特别是对于具有较小数据集的模型,数据质量能显著提高人工智能的性能。


对于数据科学家,除了网络界面之外,我们还提供了一个Python SDK。

Python中的简单OCR实例

作为Colab Notebook的 "人在回路"。


 

资料来源:《世界日报》。 

[1] Sagar, R. (2021).大数据到好数据:Andrew Ng敦促ML社区更加以数据为中心,减少以模型为中心,检索自Analytics India Magazine PVT LTD。

[2] Konyushkova, K., Sznitman, R., & Fua, P. (2017).从数据中学习主动学习。arXiv预印本arXiv:1703.03365。

[3] Ren, P., Xiao, Y., Chang, X., Huang, P. Y., Li, Z., Chen, X., & Wang, X.(2020)。A Survey of Deep Active Learning. arXiv preprint arXiv:2009.00236.

[4] Castro, F. M., Marín-Jiménez, M. J., Guil, N., Schmid, C., & Alahari, K. (2018)。端到端增量学习。在欧洲计算机视觉会议(ECCV)的论文集(第233-248页)。

照片来自 Andrea Piacquadio 从 Pexels

"
"
Maximilian Schneider 的头像

最新文章