数据的设计、完善、评估三大步骤是关键。
作者 | 李梅、王玥
编辑 | 陈彩娴
在当前 AI 模型的开发以模型为中心转向以数据为中心的趋势下,数据的质量变得尤为重要。
在以往的 AI 开发流程中,数据集通常是固定的,开发工作的重点是迭代模型架构或训练过程来提高基准性能。而现在,数据迭代成为重心,因此我们需要更系统的方法来评估、筛选、清洗和注释用于训练和测试 AI 模型的数据。
最近,斯坦福大学计算机科学系的Weixin Liang、李飞飞等人在《自然-机器智能》上共同发表了一篇题为“Advances, challenges and opportunities in creating data for trustworthy AI”的文章,在 AI 数据全流程的各个环节上讨论了保证数据质量的关键因素和方法。
论文地址:https://www.nature.com/articles/s42256-022-00516-1.epdf?sharing_token=VPzI-KWAm8tLG_BiXJnV9tRgN0jAjWel9jnR3ZoTv0MRS1pu9dXg73FQ0NTrwhu7Hi_VBEr6peszIAFc6XO1tdlvV1lLJQtOvUFnSXpvW6_nu0Knc_dRekx6lyZNc6PcM1nslocIcut_qNW9OUg1IsbCfuL058R4MsYFqyzlb2E%3D
AI 数据流程中的主要步骤包括:数据设计(数据的采集和记录)、数据改善(数据筛选、清洗、标注、增强)以及用于评估和监控 AI 模型的数据策略,其中的每一个环节都会影响最终 AI 模型的可信度。
图1:从数据设计到评估的以数据为中心的方法开发路线图。
1
AI 的数据设计
确定了一个人工智能应用程序后,开发 AI 模型第一步就是设计数据(即识别和记录数据来源)。
设计应当是一个迭代过程——用试验数据来开发初始的 AI 模型,然后再收集额外数据来修补模型的局限性。设计的关键标准是确保数据适用于任务,并覆盖足够的范围来代表模型可能遇到的不同用户和场景。
而目前用于开发 AI 的数据集通常覆盖范围有限或者具有偏差。例如在医疗 AI 中,用于开发算法的患者数据的收集在地区分布上不成比例,这会限制 AI 模型对不同人群的适用性。
提高数据覆盖率的一种方法,是让更广泛的社区参与数据的创建。目前最大的公共数据集 Common Voice 项目就是一个例证,该数据集包含了来自 166000 多名参与者的 76 种语言的 11192 小时语音转录。
而当代表性数据难以获得时,可以用合成数据来填补覆盖空白。比如真实人脸的收集通常涉及隐私问题和抽样偏差,而由深度生成模型创建的合成人脸现在已经被用于减轻数据不平衡和偏差。在医疗保健领域,可以共享合成医疗记录来促进知识发现,而无需披露实际的患者信息。在机器人技术中,真实世界的挑战是终极的测试平台,也可以用高保真模拟环境来让智能体在复杂和长期任务中实现更快、更安全的学习。
但合成数据也存在一些问题。合成数据与现实数据之间总是存在差距,所以在将基于合成数据训练的 AI 模型转移到现实世界时,通常会出现性能下降。如果模拟器的设计不考虑少数群体,那么合成数据也会加剧数据差异,而 AI 模型的性能高度依赖其训练和评估数据的上下文,因此在标准化和透明的报告中记录数据设计地上下文就非常重要。
现在,研究人员已经创建了各种「数据营养标签」(data nutrition labels)来捕获有关数据设计和注释过程的元数据(metadata)。有用的元数据包括数据集中参与者的性别、性别、种族和地理位置的统计数据,这有助于发现是否有代表性不足的亚群未被覆盖。数据来源也是一种元数据,它跟踪数据的来源和时间以及产生数据的过程和方法。
元数据可以保存在一个专门的数据设计文档里,数据文档对于观察数据的生命周期和社会技术背景来说非常重要。文档可以上传到稳定且集中的数据存储库(例如 Zenodo)中。
2
完善数据:筛选、清洗、标注、增强
初始数据集收集完成后,我们就需要进一步完善数据,为 AI 的开发提供更有效的数据。这是 AI 以模型为中心的方法与以数据为中心的方法的关键不同之处,如图 2a ,以模型为中心的研究通常是基于给定的数据,专注于改进模型架构或优化此数据。而以数据为中心的研究则侧重于可扩展的方法,通过数据清洗、筛选、标注、增强等过程来系统地改进数据,并且可以使用一站式的模型开发平台。
图2a:AI 以模型为中心与以数据为中心的方法比较。MNIST、COCO 和 ImageNet 是 AI 研究中常用的数据集。
如果数据集的噪声很大,我们就得仔细对数据进行筛选之后再做训练,这样可以显著提高模型的可靠性和泛化性。图 2a 中的飞机图像就是鸟类数据集中应删除的噪声数据点。
在 图 2b 中,由于训练数据的偏差,在以前使用的大型皮肤病学数据上训练的四种最先进的模型都表现不佳,在深色皮肤图像上的诊断效果尤其不好,而在较小的高质量数据上训练的模型 1 在深浅肤色上都相对更可靠一些。
图 2b:浅色皮肤和深色皮肤图像上的皮肤病诊断测试性能。
图 2c 显示,ResNet、DenseNet 和 VGG 这三种用于图像分类的流行深度学习架构,如果是在噪声大的图像数据集上进行训练,其性能都欠佳。而经过数据Shapley 值过滤后,质量较差的数据被删除,此时在更干净的数据子集上训练的ResNet模型性能显著更优。
图 2c:数据过滤前后不同模型的对象识别测试性能比较。括号中的数字表示过滤掉噪声数据后剩下的训练数据点的数量,结果汇总在五个随机种子上,阴影区域代表 95% 置信区间。
这就是数据评估的意义所在,它旨在量化不同数据的重要程度,并过滤掉可能由于质量差或偏差而损害模型性能的数据。
在本文中,作者介绍了两种数据评估方法来帮助清洗数据:
一种方法是测量在训练过程中删除不同数据时 AI 模型表现的变化,这可以采用数据的 Shapley 值或影响近似值来获得,如下图 3a。这种方法能够有效计算大型 AI 模型的评估。
图3a:数据评估。当在训练中删除特定点(图中被划掉的褪色五角星)时,数据的 Shapley 值测量在不同数据子集上训练的模型的性能变化,从而来量化每个数据点(五角星符号)的值。颜色表示类别标签。
另一种方法则是预测不确定性来检测质量差的数据点。数据点的人类注释可能会系统地偏离 AI 模型预测,置信学习算法可以检测出这些偏差,在 ImageNet 等常见基准测试中发现超过 3% 的测试数据被错误标注。过滤掉这些错误可以大大提升模型的性能。
数据标注也是数据偏差的一个主要来源。尽管 AI 模型可以容忍一定程度的随机标签噪声,但有偏差的错误会产生有偏差的模型。目前,我们主要依赖于人工标注,成本很昂贵,比如标注单个 LIDAR 扫描的成本可能超过 30 美元,因为它是三维数据,标注者需要绘制出三维边界框,比一般的标注任务要求更高。
因此作者认为,我们需要仔细校准 MTurk 等众包平台上的标注工具,提供一致的标注规则。在医疗环领域,还要考虑到标注人员可能需要专业知识或者可能有无法众包的敏感数据。
降低注释成本的一种方法是数据编程。在数据编程中,AI 开发人员不再需要手动标记数据点,而是编写程序标签函数来自动标注训练集。如图 3b,使用用户定义的标签函数为每个输入自动生成多个可能有噪声的标签后,我们可以设计额外的算法,来聚合多个标签功能以减少噪声。
图 3b:数据编程。
另一种降低标注成本的「人在回路」(human-in-the-loop)方法是优先考虑最有价值的数据,以便我们通过主动学习(active learning)来进行标注。主动学习从最佳实验设计中汲取思想,在主动学习中,算法从一组未标注的数据点中选择信息量最大的点,比如具有高信息增益的点或模型在其上具有不确定性的点吗,然后再进行人工标注。这种方法的好处是,所需的数据数量比标准的监督学习所需的数据量要少得多。
最后,当现有数据仍十分有限时,数据增强就是一种扩充数据集和提高模型可靠性的有效方法。
计算机视觉数据可以通过图像旋转、翻转和其他数字转换来增强,文本数据可以通过变换自动书写风格来增强。还有最近的 Mixup,是一种更复杂的增强技术,它通过对训练样本对进行插值来创建新的训练数据,如图 3c。
除了人工数据增强之外,目前的 AI 的自动化数据增强流程也是一种流行方案。此外,当未标注的数据可用时,还可以通过使用初始模型进行预测(这些预测称为伪标签)来实现标签增强,然后在具有真实和高置信度伪标签的组合数据上训练一个更大的模型。
图 3c:Mixup 通过创建对现有数据进行插值的合成数据来扩充数据集。蓝点表示训练集中的现有数据点,红点表示通过插值两个现有数据点创建的合成数据点。
3
用于评估和监控 AI 模型的数据
在模型经过训练后,AI 评估的目标是模型的通用性和可信性。
为了实现这一目标,我们应该仔细设计评估数据,从而去找到模型的现实世界设置(real-world settings),同时评估数据也需要与模型的训练数据有足够大的差异。
举个例子,在医学研究中,AI 模型通常是基于少数医院的数据训练的。这样的模型在新的医院部署时,由于数据收集和处理方面的差异,其准确性就会降低。为了评价模型的泛化性,就需要从不同的医院、不同的数据处理管道收集评价数据。在其他应用程序中,评估数据应该从不同的来源收集,最好由不同的注释器标记为训练数据。同时,高质量的人类标签仍然是最重要的评价。
AI 评估的一个重要作用是,判断 AI 模型是否在不能很好形成概念的训练数据中将虚假相关性作为「捷径」。例如,在医学成像中,数据的处理方式(例如裁剪或图像压缩)可能产生模型拾取的虚假相关性(即捷径)。这些捷径表面上可能很有帮助,但当模型部署在稍有不同的环境中时,就可能会出现灾难性的失败。
系统的数据消融是检查潜在的模型「捷径」的好方法。在数据消融(data ablation)中,AI 模型在虚假相关表面信号的消融输入上进行训练和测试。
图 4:数据消融
使用数据消融探测出模型捷径的一个例子是,一项关于常见自然语言推理数据集的研究发现,仅对文本输入的前一半进行训练的人工智能模型在推断文本的前一半和后一半之间的逻辑关系方面取得了很高的准确性,而人类在相同的输入上的推断水平和随机猜测差不多。这就表明人工智能模型利用虚假相关性作为完成这项任务的捷径。研究团队发现,特定的语言现象会被人工智能模型利用,如文本中的否定与标签高度相关。
数据消融被广泛适用于各个领域。例如,在医学领域,可以屏蔽图像中与生物相关的部分,用这种方式来评估人工智能是从虚假背景中学习,还是从图像质量的人工制品中学习。
AI 评估通常局限于比较整个测试数据集的总体性能指标。但即使 AI 模型在总体数据层面工作良好,它仍然可能在特定的数据子组上显示出系统性错误,而对这些错误集群的特征描述可以让我们更加了解模型的局限性。
当元数据可用时,细粒度的评估方法应该尽可能地按数据集中参与者的性别、性别、种族和地理位置对评估数据进行切片——例如,“亚洲老年男性”或“美国土著女性”——并量化模型在每个数据子组上的表现。多精度审计(Multi-accuracy auditing)是一种自动搜索 AI 模型表现不佳的数据子组的算法。在此处,审计算法被训练来使用元数据预测和聚类原始模型的错误,然后提供 AI 模型犯了什么错,为什么会犯错等问题的可解释答案。
当元数据不可用时,Domino 等方法会自动识别评估模型容易出错的数据集群,并使用文本生成来创建这些模型错误的自然语言解释。
4
数据的未来
目前大多数 AI 研究项目只开发一次数据集,但现实世界的 AI 用户通常需要不断更新数据集和模型。持续的数据开发将带来以下挑战:
首先,数据和 AI 任务都可以随着时间的推移而变化:例如,可能道路上出现了一种新的车辆模型(即领域转移),或者可能 AI 开发人员想要识别一种新的对象类别(例如,不同于普通公交车的校车类型),这就会改变标签的分类。而将扔掉数百万小时的旧标签数据十分浪费,所以更新势在必行。此外,培训和评估指标应该经过精心设计后用来权衡新数据,并为每个子任务使用适当的数据。
其次,为了持续获取和使用数据,用户将需要自动化大部分以数据为中心的 AI 过程。这种自动化包括使用算法来选择将哪些数据发送给标注器,以及如何使用它来重新训练模型,并且只在过程出现错误时(例如,准确度指标下降时)才向模型开发人员发出警报。作为“MLOps(Machine Learning Operations,机器学习操作)”趋势的一部分,业界公司开始使用工具来实现机器学习生命周期的自动化。
更多内容,点击下方关注:
扫码添加 AI 科技评论 微信号,投稿&进群: