首页> 中国专利> 用于清洗数据以训练人工智能(AI)模型的AI方法

用于清洗数据以训练人工智能(AI)模型的AI方法

摘要

描述了用于清洗AI训练数据的计算方法和系统,其通过将训练数据集划分为多个训练子集来清洗数据集。对于每个训练子集,在剩余的多个训练子集中的两个或多个训练子集上训练多个人工智能(AI)模型,并使用这些训练过的AI模型获得训练子集中的每个样本对于每个AI模型的估计标签。然后,将训练数据集中的被多个AI模型一致地不正确预测的样本移除或重新标记,然后通过使用清洗后的训练数据集训练一个或多个AI模型,继续生成和部署最终的AI模型。该方法的一种变体还可用于对新数据集进行标记,其中新数据集被插入到训练数据集中,然后训练过程本身用于使用对估计标签的投票策略,确定新数据集的分类。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-02-03

    公开

    国际专利申请公布

说明书

优先权文件

本申请要求2020年4月3日提交的发明名称为“用于清洗数据以训练人工智能(AI)模型的AI方法(Artificial Intelligence(AI)Method for Cleaning Data for TrainingAI Models)”的澳大利亚临时专利申请第2020901043号的优先权,其全部内容通过引用合并于此。

技术领域

本公开涉及人工智能。在特定形式中,本公开涉及用于训练AI模型和将数据分类的方法。

背景技术

人工智能(AI)领域的进步推动了新产品的开发,这些新产品正在重构商业,并改变包括医疗保健(healthcare)在内的许多重要行业的未来。这些变化源于机器学习和深度学习(DL)技术的快速发展。在本说明书的上下文中,AI将用于指代机器学习和深度学习方法这二者。

机器学习和深度学习是人工智能(AI)的两个子集。机器学习是一种技术或算法,它使机器能够自我学习任务(例如创建预测模型),而无需人工干预或被明确编程。监督机器学习(或监督学习)是一种分类技术,它学习已标记的(训练)数据中的模式,其中每个数据点的标签或注释与一组类相关,以便创建可用于对新的没见过的数据进行分类的(预测)AI模型。

以IVF(体外受精)中胚胎存活率的鉴定为例,如果胚胎导致怀孕(有活力类),则可以将胚胎图像标记为“有活力”;如果胚胎没有导致怀孕(无活力类),则标记为“无活力”。监督学习可用于在已标记的胚胎图像的大数据集上进行训练,以学习与有活力和无活力胚胎相关的模式。这些模式被包含在AI模型中。然后,该AI模型可用于对新的没见过的图像进行分类,以(通过对胚胎图像的推断)确定胚胎是否可能有活力(而在IVF治疗中应被移植给患者)或没有活力(而不应移植给患者)。

虽然深度学习在学习目标方面类似于机器学习,但它超越了统计机器学习模型,以更好地模拟人类神经系统的功能。深度学习模型通常由人工“神经网络”组成,其包含输入和输出之间的许多中间层,其中每个层都被视为一个子模型,每个层都提供不同的数据解释。虽然机器学习通常只接受结构化数据作为其输入,但深度学习并不一定需要结构化数据作为输入。例如,为了识别狗和猫的图像,传统的机器学习模型需要由用户从这些图像中预先定义的特征。这样的机器学习模型将从某些数字特征作为输入进行学习,然后可以用于从其他未知的图像中识别特征或物体。原始图像通过深度学习网络逐层发送,每个层将学习对输入图像的特定(数字)特征进行定义。

为了训练机器学习模型(也包括深度学习模型),通常执行以下步骤:

a)在问题域和所需AI解决方案或应用的背景中探索数据。这可能涉及识别正在解决的问题类型,例如分类问题或分割问题,然后精确定义要解决的问题,例如,具体是哪个数据子集要用于训练模型,以及模型将结果输出到哪个类别中;

b)清洗数据,包括数据质量技术,以消除任何标签噪声或不良数据(本专利的重点),并准备数据,以便为用于AI训练和验证做好准备;

c)如果模型需要,提取特征;

d)选择模型配置,包括模型结构和机器学习超参数;

e)将数据拆分成训练数据集、验证数据集和/或测试数据集;

f)通过使用机器学习和/或深度学习算法在训练数据集上训练模型。通常,在训练过程中,许多模型都是通过调整和微调机器学习配置以优化模型的性能(例如,提高准确度指标)和泛化能力(鲁棒性)来生成的。每次训练迭代被称为一个历元(epoch),在每个历元结束时估计准确度并更新模型;

g)基于模型在验证数据集上的性能,选择最佳的“最终”模型或系综模型。然后将该模型应用于“没见过的”测试数据集,以验证最终AI模型的性能。

为了有效地训练模型,训练数据必须包含正确的标签或注释(就分类问题而言,是正确的类标签/目标)。机器学习或深度学习算法在训练数据中找到模式,并将其映射到目标。然后,通过这个过程得到的训练后的模型能够捕获这些模式。

随着AI辅助技术越来越流行,对高质量的(例如,准确的)AI预测模型的要求也越来越明确。然而,AI模型的性能高度依赖于数据质量,低质量数据对模型训练的影响可能很大,导致AI模型或AI产品质量低下,从而导致在实践中使用(即,对新数据进行分类)时决策结果不佳。

质量差的数据可能以多种方式出现。在某些情况下,例如由于信息不可用或人为错误,数据丢失了或不完整。在另一些情况下,例如,当训练数据的分布不能反映机器学习模型运行的实际环境时,数据可能有偏差。例如,在二元分类中,当一个类(“类0”)的样本数远远大于另一个类(“类1”)的样本数时,就会出现这种情况。基于该数据集训练的模型会偏向于类“0”预测,仅仅因为它是用更多的类0的示例训练的。

数据质量差的另一个原因是数据不准确,即,存在标签噪声,导致某些类标签不正确。这可能是由于数据标记过程中的数据输入错误、不确定性或主观性,或是由于超出所收集数据理解范围的因素,如测量、临床实践或科学实践。在某些情况下或某些问题域中,有噪声的数据可能只出现在类的子集中。例如,一些类可以被可靠地标记(正确类),而其他类(有噪声类)由于标记过程中的不确定性或主观因素而包含更高水平的噪声。在特殊情况下,可能会故意添加不准确或错误的数据,这被称为“对抗性攻击”,目的是对训练后的AI的质量造成负面影响。

在医疗保健领域,收集高质量数据可能有些困难。例如:

a)在评估胚胎图像在IVF中的存活率时,如果一个胚胎导致怀孕,则可以认为它是有活力的;如果它没有导致怀孕,那么它是无活力的。在这种情况下,有活力类被认为是某种属于真相(ground truth)的结果,因为结果是怀孕。然而,无活力类的真相是不确定的,可能会被错误分类或标记,因为即使是具有完美活力的胚胎也有可能由于与固有胚胎存活率无关但与患者或IVF过程有关的其他因素而导致没有怀孕。

b)在评估肺炎的胸部X光片时,放射科医生将目视寻找肺部的白斑(称为浸润),这些白斑可以识别感染。评估可能是主观的,容易出错。图像还可能缺少AI或放射科专家做出适当推断所需的信息(或特征),可以看到更多种检测而不是仅仅从单个图像进行评估的医生们可能会也可能不会以其他方式获得这些信息。因此,这些图像将缺少AI训练所需的关键特征,并会影响训练后的AI的质量。

c)在评估放射图像中的癌症或视网膜图像中的早期青光眼时,癌症或青光眼的存在可能是确定的,因为它是通过相关的医学检测(例如活检)识别和确认的。然而,由于癌症或青光眼可能存在但尚未被识别或检测到,因此癌症或青光眼的不存在可能是不确定的。

如果没有真相(ground truth)或事实(fact),由于与上述相同的原因,标记过程会导致在所有类中产生有噪声的数据。

因此,数据清洗,即,识别和应对低质量数据(如被错误标记的或“有噪声的”数据)以提高数据质量的过程,是生成具有高分类准确度和泛化能力的预测模型的重要组成部分。AI公司已尝试从其训练数据集中移除质量较差的数据,或训练更鲁棒(抗噪声)的模型。然而,在许多领域这仍然是一个有待解决的问题,许多公司正在大力投资研发,以找到解决或减轻低质量数据风险的技术。

许多方法都假设数据标签可以被专家正确识别/注释,且大型数据集可能包含可识别的噪声标签。这些方法被视为置信学习方法。因此,置信学习方法包括:

a)估计联合概率分布以表征以类为条件的标签噪声;

b)过滤掉有噪声的示例或更改其类标签;以及

c)使用“清洗后”的数据集训练模型。

当有一小组具有干净标签的数据可用时,这些数据可以用来使用知识蒸馏提高神经网络的置信度。鲁棒(抗噪声)模型的另一个策略是将合成噪声引入给定的数据集,通过更新(学生)模型来提高抗噪声参数,从而给出与不受合成标签噪声影响的教师模型一致的预测。另一种置信学习方法需要使用导师模型过滤腐败的真相标签。然而,只有当能够获得确切的真相时,这才是可能的。换言之,这种方法需要一定程度的监督才能发挥作用。另一种基于自学习(SL)的置信学习方法在初始迭代(第一历元)中在噪声标签上训练初始分类器。后续的迭代(或历元)使用被排名的“原型”来纠正标签,并在纠正后的标签上重新训练模型。这个过程会反复进行,直到实现收敛。

然而,在很多情况下,不可能准确或可靠地确定真相,特别是在现实世界的应用中,因此,置信学习方法在应用于现实世界的问题时往往会失效。

例如,可能有多个数据所有者,每个数据所有者提供可用于模型训练、验证和测试的一组数据样本/图像。然而,数据所有者可能在数据收集程序、数据标记过程、采用的数据标记约定(例如,测量进行的时间)以及地理位置方面有所不同,每个数据所有者可能会出现不同的收集错误和标记错误。而且,对于每个数据所有者,标签错误可能发生在所有类中,或仅发生在类的子集中,而类的其余子集包含非常小的标签噪声。

此外,准确确定真相或准确评估所有类的真相并不总是可能的。例如,胚胎师在评估胚胎的生存能力时并不总是正确的。自信案例(具有某些真相结果的亚类)是指那些与图像被选为有活力、胚胎被移植给患者以及患者在6周后怀孕之后相关的案例。在所有其他情况下,对于与图像相关联的胚胎是否真的会导致成功怀孕,没有太多信心(或不确定性很高)。

因此,需要提供一种清洗数据的方法,或者至少为现有方法提供一种有用的替代方法。

发明内容

根据第一方面,提供一种用于清洗数据集以生成人工智能(AI)模型的计算方法,该方法包括:

生成清洗后的训练数据集,该步骤包括:

将训练数据集划分为多个(k个)训练子集;

对于每个训练子集,在剩余的多个训练子集中的两个或多个训练子集上训练多个(n个)人工智能(AI)模型,并使用所述多个训练过的AI模型获得所述训练子集中的每个样本对于每个AI模型的估计标签;

将所述训练数据集中的被所述多个AI模型一致地不正确预测的样本移除或重新标记;

通过使用所述清洗后的训练数据集训练一个或多个AI模型,生成最终AI模型;

部署所述最终AI模型。

在一种形式中,所述多个人工智能(AI)模型包括多个模型架构。

在一种形式中,对于每个训练子集,在剩余的多个训练子集中的两个或多个训练子集上训练多个人工智能(AI)模型的步骤包括:

对于每个训练子集,在所述剩余的多个训练子集中的全部训练子集上训练多个人工智能(AI)模型。

在一种形式中,移除或重新标记所述训练数据集中的样本的步骤包括:

获得所述训练数据集中的每个样本被所述多个AI模型正确预测、不正确预测或超过阈值置信度水平的次数的计数;

通过将预测结果与一致性阈值进行比较,移除或重新标记所述训练数据集中的一致地错误预测的样本。

在一种形式中,所述一致性阈值是根据计数的分布估算出来的。

在一种形式中,所述一致性阈值是通过使用优化方法识别将计数的累积分布最小化的阈值计数而确定的。

在一种形式中,确定一致性阈值的步骤包括:

生成所述计数的直方图,其中所述直方图的每个直条包含所述训练数据集中的具有相同计数的样本数,其中直条数是训练子集数乘以AI模型数;

从所述直方图生成累积直方图;

计算所述累积直方图中的每对相邻直条之间的加权差值;

将所述一致性阈值设置为将所述加权差值最小化的直条。

在一种形式中,该方法还包括:

在生成清洗后的训练集之后,且在生成最终AI模型之前:

使用所述清洗后的数据集对所述多个训练后的AI模型进行迭代再训练;

生成更新后的清洗训练集,直到达到预定的性能水平或者直到再也没有计数低于所述一致性阈值的样本。

在一种形式中,在生成所述清洗后的数据集之前,测试所述训练数据集的阳性预测能力,且仅当所述阳性预测能力在预定义范围内时才清洗所述训练数据集,其中,估计所述阳性预测能力包括:

将训练数据集划分为多个验证子集;

针对每个验证子集,在剩余的验证子集中的两个或多个验证子集上训练多个人工智能(AI)模型;

获得所述验证数据集中的每个样本被所述多个AI模型正确预测、不正确预测或超过阈值置信度水平的次数的第一计数;

为每个样本随机分配一个标签或结果;

针对每个验证子集,在剩余的验证子集中的两个或多个验证子集上训练多个人工智能(AI)模型;

获取当使用随机分配的标签时,所述验证数据集中的每个样本被所述多个AI模型正确预测、不正确预测或超过阈值置信度水平的次数的第二计数;

通过比较所述第一计数和所述第二计数,估计所述阳性预测能力。

在一种形式中,对多个数据集中的每个数据集重复该方法,且通过使用所述清洗后的训练数据集训练一个或多个AI模型来生成最终AI模型的步骤包括:

使用所述多个清洗后的数据集生成聚合数据集;

通过使用所述聚合数据集训练一个或多个AI模型,生成最终AI模型。

在一种形式中,在生成所述聚合数据集后,该方法还包括:根据第一方面的方法清洗所述聚合数据集;

在一种形式中,在清洗所述聚合数据集后,该方法还包括:

对于所述阳性预测能力超出所述预定义范围的每个数据集,将无法训练的数据集添加到所述聚合数据集上,并根据第一方面的方法清洗更新后的聚合数据集。

在一种形式中,该方法还包括:

识别一个或多个有噪声类和一个或多个正确类;

在训练多个人工智能(AI)模型之后,该方法还包括选择一组模型,其中如果每个正确类的指标超过第一阈值,且每个有噪声类的指标小于第二阈值,则选择一个模型;

针对每个所选模型,执行所述获得所述训练数据集中的每个样本被正确预测或超过阈值置信度水平的次数的计数的步骤;且

针对每个有噪声类和每个正确类,分别地执行所述将所述训练数据集中的计数低于一致性阈值的样本移除或重新标记的步骤,且所述一致性阈值是针对每个类的一致性阈值。

在一种形式中,该方法还包括评估数据集中的标签噪声,该步骤包括:

将所述数据集拆分成训练集、验证集和测试集;

将所述训练集中的类标签随机化;

在具有随机化了的类标签的所述训练集上训练AI模型,并使用所述验证集和测试集测试所述AI模型;

为所述验证集估计第一指标,为所述测试集估计第二指标;

如果所述第一指标和所述第二指标不在预定义范围内,则排除所述数据集。

在一种形式中,该方法还包括评估数据集的可迁移性,该步骤包括:

将所述数据集拆分成训练集、验证集和测试集;

在所述训练集上训练AI模型,并使用所述验证集和所述测试集测试所述AI模型;

对于多个历元中的每个历元,为所述验证集估计第一指标,为所述测试集估计第二指标;以及

估计所述多个历元上的所述第一指标和所述第二指标的相关性。

根据第二方面,提供了一种用于标记数据集以生成人工智能(AI)模型的计算方法,该方法包括:

将已标记的训练数据集划分为多个(k个)训练子集,其中有C个标签;

对于每个训练子集,在剩余的多个训练子集中的两个或多个训练子集上训练多个(n个)人工智能(AI)模型;

使用所述多个训练过的AI模型获得未标记的数据集中的每个样本的多个标签估计结果;

将划分步骤、训练步骤和获得步骤重复C次;

通过使用投票策略将所述样本的多个估计标签组合,为未标记的数据集中的每个样本分配标签。

在一种形式中,所述多个人工智能(AI)模型包括多个模型架构。

在一种形式中,对于每个训练子集,在剩余的多个训练子集中的两个或多个训练子集上训练多个人工智能(AI)模型的步骤包括:

对于每个训练子集,在所述剩余的多个训练子集中的全部训练子集上训练多个人工智能(AI)模型。

在一种形式中,该方法还包括根据第一方面的方法清洗所述已标记的训练数据集。

在一种形式中,划分、训练、获得以及将所述划分步骤和训练步骤重复C次包括:

从所述未标记的数据集生成C个临时数据集,其中所述临时数据集中的每个样本都被分配一个来自C个标签的临时标签,以使得多个临时数据集中的每个临时数据集都是独特的数据集,且

将所述划分步骤、训练步骤和获得步骤重复C次包括:对每个所述临时数据集执行所述划分步骤、训练步骤和获得步骤,以使得对于每个临时数据集,所述划分步骤包括将所述临时数据集与所述已标记的训练数据集组合起来,然后划分成多个(k个)训练子集,且

所述训练和获得步骤包括:对于每个训练子集,在剩余的多个训练子集中的两个或多个训练子集上训练多个人工智能(AI)模型,并使用所述多个训练过的AI模型获得所述训练子集中的每个样本对于每个AI模型的估计标签。

在一种形式中,分配一个来自C个标签的临时标签是随机分配的。

在一种形式中,分配一个来自C个标签的临时标签是由在所述训练数据上训练的AI模型估计的。

在一种形式中,分配一个来自C个标签的临时标签是从C个标签的集合中以随机顺序分配的,以使得在C个临时数据集中每个标签出现一次。

在一种形式中,将所述临时数据集与所述已标记的训练数据集组合起来的步骤还包括:将所述临时数据集拆分成多个子集,将每个子集与所述已标记的训练数据集组合起来,划分为多个(k个)训练子集,以及执行所述训练步骤。

在一种形式中,每个子集的大小小于所述训练集的大小的20%。

在一种形式中,C为1,所述投票策略为多数推断策略。

在一种形式中,C为1,所述投票策略为最大置信度策略。

在一种形式中,C大于1,所述投票策略是基于每个标签被多个模型估计的次数的基于共识的策略。

在一种形式中,C大于1,所述投票策略对样本的每个标签被估计的次数进行计数,并分配具有最高计数的所述标签,该最高计数高于第二高计数的阈值数量。

在一种形式中,C大于1,且所述投票策略用来估计由多个模型可靠估计的标签。

在一种形式中,所述数据集是医疗保健数据集。在再一种形式中,所述医疗保健数据集包括多个医疗保健图像。

根据第三方面,提供了一种计算系统,包括一个或多个处理器、一个或多个存储器和通信接口,其中,所述一个或多个存储器保存以下指令:这些指令用于将所述一个或多个处理器配置成实现第一或第二方面的方法。根据第四方面,提供了一种计算系统,包括一个或多个处理器、一个或多个存储器和通信接口,其中,所述一个或多个存储器被配置为保存使用如权利要求1至30中任一项所述的方法训练的AI模型,且所述一个或多个处理器被配置为经由所述通信接口接收输入数据,使用所述被保存的AI模型处理所述输入数据以生成模型结果,且所述通信接口被配置为将所述模型结果发送到用户接口或数据存储设备。

附图说明

参考附图讨论本发明的实施例,其中:

图1A是根据一个实施例的示意图,示出二元分类模型的预测结果(P)、真相(T)和测量结果(M)的可能组合,其中,二元结果是有活力(V)和无活力(NV),而且按照预测结果、真相和测量结果的阳性或阴性结果将噪声源分类;

图1B是根据一个实施例的用于清洗数据集的方法的示意流程图;

图1C是根据一个实施例的清洗多个数据集的示意图;

图1D是根据一个实施例的用于标记数据集的方法的示意流程图;

图1E是根据一个实施例的用于生成和使用AI模型的基于云的计算系统的架构示意图;

图1F是根据一个实施例的训练服务器上的模型训练过程的示意流程图;

图2是狗的图像的示例,其很容易被其他非常精确的模型误认为是猫;

图3A是根据一个实施例的、针对仅在训练数据中(■)、仅在测试集中(▲)、在两个数据集中都(●)具有均一标签噪声的测试集

图3B是根据一个实施例的、对于猫类(实线)和狗类(虚线),针对仅在训练数据中(■)、仅在测试集中(▲)、在两个数据集中都(●)具有单类噪声的测试集

图4A是根据一个实施例的、对于30/30情形的均一噪声水平,不同严格性水平l下的累积直方图

图4B是根据一个实施例、对于35/05%情形的非对称噪声水平,不同严格性水平l下的累积直方图

图4C是根据一个实施例的、对于50/50情形的均一噪声水平,不同严格性水平l下的累积直方图

图4D是根据一个实施例、对于50/05%情形的非对称噪声水平,不同严格性水平l下的累积直方图

图5是根据一个实施例的一组直方图,示出UDC之前的各种模型架构(左侧)的平衡准确度(顶部)和交叉熵或对数损失(底部);以及UDC之后的ResNet-50架构的对于变化的严格性阈值l(右侧)的平衡准确度(顶部)和交叉熵或对数损失(底部);

图6是根据一个实施例的一组直方图,示出UDC之前的各种模型架构(左侧)的平衡准确度(顶部)和交叉熵或对数损失(底部);以及UDC之后的对于变化的严格性阈值l(右侧)的平衡准确度(顶部)和交叉熵或对数损失(底部);

图7是根据一个实施例的、对于正常图像和标记为肺炎的图像中的测试集和训练集,每个严格性阈值的图像数量的直方图;

图8是根据一个实施例的一些图像的图,这些图像分成具有干净标签的图像和具有噪声标签的图像,并进一步细分成来自训练集的图像和来自测试集的图像,再细分成正常类和肺炎类,显示干净标签和噪声标签的相符和不相符;

图9是根据一个实施例的计算噪声标签和干净标签的Cohen的kappa的图;

图10是根据一个实施例的干净标签图像和噪声标签图像这二者的相符和不相符程度的直方图;

图11A是根据一个实施例的对于变化的严格性阈值l,UDC之前和之后(清洗后的数据)的平衡准确度的直方图。

图11B是根据一个实施例的一组直方图,示出UDC之前的各种模型架构的平衡准确度(左侧)、和UDC之后的对于变化的严格性阈值l的平衡准确度(右侧);

图12是AI模型的一个实施例在未清洗的数据上训练时的测试曲线图,分别以虚线和实线表示无活力类和有活力类,以点划线表示两者的均值曲线;

图13是AI模型的一个实施例在清洗后的数据上训练时的测试曲线图,分别以虚线和实线表示无活力类和有活力类,以点划线表示两者的均值曲线;

图14是当根据一个实施例将UDL应用于200张胸部X光图像的集合上时,不正确预测的频率与数量的关系图,这些图像被插入到一个超过5000张图像的更大的训练集中,其中显示干净标签对正确标记高度敏感,而噪声标签则不太敏感。

在下面的描述中,相同的附图标记在整个附图中表示相同或相应的部分。

具体实施方式

现在描述清洗数据集以解决标签噪声问题的方法的实施例,其被统称为“无法训练的数据的清洗”(UDC)。这些实施例可以通过识别类的子集或所有类中的被错误分类的或有噪声的数据来清洗数据集。在分类问题的情况下,UDC方法的实施例可以识别被错误标记的数据,以便在AI模型的训练开始之前或期间将这些数据移除、重新标记或以其他方式处理。UDC方法的实施例也可以应用于非分类问题(即,非分类数据或结果),例如回归、对象检测/分割模型,其中模型可以给出结果的置信度估计值。例如,在模型估计图像中的边界框的情况下,该方法将估计该框是不可接受的、比较良好的、良好的、非常好的、还是具有其他一些置信度水平(而不是正确/不正确)。一旦识别出被错误分类的或有噪声的数据,就可以决定如何清洗数据(例如,更改标签或删除数据)。然后,清洗后的数据可用于训练AI模型,然后该模型可用于接收和分析新数据,并生成模型结果(例如分类、回归、对象边界框、分割等)。该方法的实施例可用于单个数据集或来自同一来源或多个来源的多个数据集。

如下文所述,UDC方法的实施例可用于以较高的准确度和置信度,识别被错误标记或难以/不可能标记(不连贯或无信息)的数据,即使对于“硬”分类问题(例如从儿科X光片中检测肺炎)。同一AI训练方法的进一步的变体可用于AI推断,以自信地确定(或“推断”)以前没见过的数据的未知标签。这种基于训练的推断方法,我们称之为“无法训练的数据的标记(UDL)”,可以产生更精确和更可靠的推断,特别是对于那些准确度是关键但时间或成本不是关键的应用(例如,在图像中检测癌症)。医疗保健/医学数据集的情况尤其如此,但应该意识到,该方法的应用范围远不止医疗保健领域。这种基于训练的推断与传统的基于模型的AI推断形成鲜明对比。

在关注处理有噪声的数据的具体方法之前,可以考虑一个特定领域的例子,以进一步解释标签噪声如何与可能的模型预测结果(P)、实际(真相)结果(T)和测量结果(M)相匹配,测量结果作为真相的代表(proxy)被记录(且可以包含噪声)。图1A是示意图130,总结了AI模型110在第5天胚胎存活率的二分类问题(例如,作为IVF程序的一部分,帮助选择是否植入胚胎)中这三种类型的可能组合。在这种场景下,通过AI模型评估胚胎图像以估计可能的存活率,并由此估计胚胎是否应该植入。植入后约六周,尝试测量胎儿的心跳,以检测到心跳作为有活力胚胎的标志,未检测到心跳作为无活力胚胎的标志。其是真相的代表(proxy),因为有可能植入了一个有活力的胚胎,但随后由于其他原因(如母体或外部因素)流产了。对于这三个类别,二元树有2

图1A中还示出对应于真阳性(TP)、假阳性(FP)、假阴性(FN)和真阴性(TN)的预测结果、真相和测量结果的组合。在这种情况下,标签噪声的最高风险与预测结果和真相为正相关,与测量结果为负相关(被标记为不利于训练,有可能发生:“BL”)。本文将概述将这些例子与假阳性区分开来的方法的实施例,因为在缺乏绝对的真相结果的情况下,假阳性通常很难区分。图1中的箭头表明,在机器学习过程中,如果所标记的噪声示例的量占优势,则可能导致假阴性数量增加,因为模型会由此被错误地训练。同样,也有一些预测结果和测量结果为阴性而真相为阳性(标记为“BL”)的例子,这可能会导致在训练期间假阳性数量增加。

图1B是根据一个实施例的、用于清洗数据集以生成人工智能(AI)模型的计算方法100的流程图。通过将一个训练数据集划分为多个训练子集(步骤102),生成清洗后的训练数据集(步骤101)。然后,对于每个训练子集,我们在剩余的多个训练子集中的两个或多个(通常,但不一定,为全部)上训练多个人工智能(AI)模型(步骤104)(即,基于K折交叉验证的方法)。每个AI模型可以使用不同的模型架构以创建不同的AI模型(即,独特的模型构架),或者可以使用相同的架构但具有不同的超参数。多个模型架构可以包括多种通用架构如随机森林、支持向量机、聚类;包括ResNet、DenseNet或InceptionNet的深度学习/卷积神经网络;以及相同的通用架构,但具有不同的内部配置,如不同数量的层以及层间连接,例如ResNet-18、ResNet-50、ResNet-101。

然后,我们将训练数据集中的被多个AI模型一致地不正确预测的样本移除或重新标记(步骤104)。在一些实施例中,这可以包括:获取训练数据集中的每个样本被多个模型正确预测的次数,或者被多个模型不正确预测的次数。或者,我们可以获得训练数据集中的每个样本超过多个AI模型的阈值置信度水平的次数的计数。然后,我们通过将计数与一致性阈值进行比较(例如,在对正确预测结果进行计数时低于一致性阈值,在对不正确预测结果进行计数时高于一致性阈值),将训练数据集中的被一致地不正确预测的样本移除或重新标记(步骤105)。一致性阈值可根据计数的分布估算出来,并采用优化方法识别阈值计数,以将计数的累积分布最小化(例如,通过使用累积直方图并计算累积直方图中每对相邻直条之间的加权差值)。是否选择移除低置信度案例或执行标签交换可以取决于手头的问题。

在一些实施例中,可以通过使用清洗后的数据集迭代地重新训练多个训练后的AI模型并生成更新后的清洗数据集,重复此清洗过程(步骤106)。可以执行迭代,直到达到预定的性能水平。其可以是一个预先确定的历元数,假定在该历元数之后已实现收敛(因此在最后一个历元后选择模型)。在另一个实施例中,预先确定的性能水平可以基于一个或多个指标(例如,基于准确度的评估指标和/或基于置信度的评估指标)中的阈值变化。在多个指标的情况下,其可以是每个指标中的阈值变化,或者可以定义一个主指标,并将第二个指标用作平局打破者(tiebreaker),或者定义两个(或更多个)主指标,并且将第三个(或下一个)指标用作平局打破者。在一些实施例中,在清洗数据集(步骤101)之前,可以估计数据集的阳性预测能力(步骤107),以估计标签噪声的存在量(即,数据质量)。正如将要讨论的,这可能会影响是否或如何执行数据清洗。

获得清洗后的数据集之后,通过使用清洗后的训练数据集训练一个或多个AI模型,生成最终AI模型(步骤108),然后部署最终AI模型(步骤110)以用于实际数据集。

该方法的实施例可用于单个数据集或多个数据集。可能有单个或多个数据所有者、数据源和子数据集。多个数据所有者中的每一个都提供一组数据样本/图像,可用于模型训练、验证和测试。数据所有者可能在数据收集程序、数据标记过程和地理位置上有所不同,每个数据所有者可能会出现不同的收集错误和标记错误。此外,对于每个数据所有者,标记错误可能发生在所有类中,或仅发生在类的子集中,而且类的剩余子集可能包含最小的标记噪声。

图1C示出一个用于清洗多个数据集的方法120的实施例,该方法基于图1B所示的用于清洗单个数据集的方法100。在本实施例中,我们有4个数据集121、122、123、124。这些数据集可能来自同一来源或多个数据源。首先测试每个数据集的预测能力(步骤107)。然后将预测能力低的数据集(如数据集3 123)放在一边。然后,使用图1B所示的方法对具有足够(即,正)的预测能力(如超过某个阈值)的数据集进行逐个清洗(步骤101)。然后,使用图1B所示的方法,对清洗后的数据集进行聚合(步骤125),并对聚合后的数据集进行清洗(步骤126)。该清洗后的聚合数据集可用于生成AI模型(步骤108),然后部署(步骤110)。在另一个实施例中,使具有低预测能力的数据集(例如,数据集3 123)与清洗(步骤126)后的聚合数据集聚合(步骤127),并将该更新后和清洗后的聚合数据集清洗(步骤128)。然后,可以生成最终AI模型(步骤108)并部署(步骤110)。

如上所简述的,可以改变UDC方法,为以前没见过的数据推断未知标签。图1D是根据一个实施例的用于对数据集进行标记的方法130(UDL方法)的流程图。图1D示出该UDL方法的两种变体:标准UDL方法和快速UDL方法,快速UDL方法的计算强度低于标准UDL(图1D中用虚线表示变体)。我们首先解释标准UDL,然后解释快速UDL的变化。

UDL是一种全新的AI推断方法。当前的AI推断方法使用基于模型的方法,其中训练数据用于训练AI模型,AI模型用于推断以前没见过的数据以对其进行分类(即,确定其标签或注释)。AI模型基于从训练数据中学习到的一般模式或统计平均分布。如果以前没见过的数据具有不同的分布或边缘情况,则错误分类/标记的可能性更大,对准确度和概括性(可扩展性/鲁棒性)产生负面影响。与此不同,UDL是一种基于训练的推断方法。AI训练过程本身不是训练AI模型,而是用来确定以前没见过的数据的分类。

对于标准UDL和快速UDL,我们都获得一个已标记的训练数据集,其中有C个标签(步骤131),并获得一个未标记的数据集(步骤133)。在一些实施例中,可以使用图1B和1C中描述和说明的UDC方法的实施例,清洗已标记的训练数据集。

然后,我们从未标记的数据集生成C个临时数据集,其中临时数据集中的每个样本都被分配了一个来自C个标签的临时标签,使得多个临时数据集中的每一个都是独特的数据集(步骤134)。也就是说,每个未标记的样本被分配一个来自类的列表c∈{1..C}的标签。这些临时标签可以是随机标签,也可以是基于训练后的AI模型的标签(根据基于标准的AI模型的推断方法)。也就是说,我们使用训练数据训练一个AI模型或系综AI模型,使用该AI模型进行第一步推断,并为没见过的数据设置一个初步标签。在另一个实施例中,从C个标签的集合中随机分配临时标签,使得在C个临时数据集的集合中每个标签出现一次。也就是说,我们对没见过的数据集中的所有/多个标签重复下面的UDL方法,以便以随机顺序为每个样本/数据点(例如图像)分配一个来自类的列表c∈{1..C}的标签,以在每个样本/数据库点上测试每个类标签。

对于每个临时数据集,我们将临时数据集与已标记的训练数据集相结合(步骤135)。也就是说,我们将没见过的数据插入训练数据中。然后,我们运行图1B所示的UDC方法的一个实施例,为没见过的数据确定/推断一个实际/最终标签。其包括:将已标记的训练数据集划分为多个(k个)训练子集,其中有C个标签(步骤137),然后针对每个训练子集,在剩余的多个训练子集中的两个或多个(通常,但不一定,为全部)训练子集上训练多个(n个)人工智能(AI)模型(即,基于k折交叉验证的方法)。每个AI模型都可以使用不同的模型架构。然后,我们使用多个(例如n×k个)训练后的AI模型,为未标记的数据集中的每个样本获得多个(例如n×k个)标签估计结果(步骤139)。对每个临时数据集重复此过程(即,C次)(步骤140)。

然后,我们通过使用投票策略来组合样本的多个估计标签,为未标记的数据集中的每个样本分配一个标签(步骤142)。例如,如果我们使用二元分类方案,则C

然后,在单类别情况下(C

对于多类别多标签(C

上述方法将未标记的数据插入训练数据,使用UDC技术最多C次以确定哪些临时标签(如果有)肯定正确(未被错误标记)或肯定不正确(被错误标记)。最终,如果新图像的实际标签是已知的(图像中的数据没有太多噪声或没有太不连贯/缺乏信息,从而不包含可识别的特征),则UDC可用于可靠地确定(或预测/推断)该标签或分类。然后可以使用已标记的数据,例如,作出决策,识别有噪声的数据,并生成更准确和泛化能力更高的AI模型,然后可以部署该AI模型(步骤143)。

通过将没见过的数据插入训练数据,训练过程本身试图找到与(干净的)训练数据相关的没见过的数据中的特定模式、相关性和/或统计分布。因此,该过程对没见过的数据更具针对性和个性化,因为作为训练过程的一部分,特定的没见过的数据在具有已知结果的其他数据的上下文中进行分析和关联,而且基于重复训练的UDC过程本身最终会确定特定数据的最可能标签,这可能会提高准确度和泛化能力。即使没见过的数据的统计分布不同,或者与训练数据相比是边缘情况,将数据嵌入训练会提取模式或与训练数据的相关性,从而对没见过的数据进行最佳分类。如果无法训练AI模型以用临时标签对没见过的数据进行分类,特别是考虑到没见过的数据包含在训练集本身之中,那么很有可能标签是不正确的,要么备选标签是正确的预测/推断,要么图像有太多噪声而不包含用于AI学习的可识别特征。因此,与传统的基于模型的AI推断相比,使用UDL进行推断(其使用UDC)可能会产生更准确、泛化能力(鲁棒性和可扩展性)更高的AI推断。然而,实施基于UDL训练的推断的时间和计算成本会增加。

在一些实施例中,临时数据集被拆分成多个子集,然后每个子集与已标记的训练数据集相结合。这是为了确保新数据集的大小足够小,以免在更大的训练数据集中的引入显著噪声,即,如果临时标签不正确。避免训练过程中毒的最佳数据集大小为1个样本,但这可能会更昂贵,因为数据集中的每个数据点都需要执行一次昂贵且耗时的UDC过程来推断其标签。在一些实施例中,临时数据集被拆分成,使得每个子集的大小小于训练集大小的10%或20%。

图1D还说明了称为快速UDL的替代实施例,它是UDL的计算效率更高的近似物。它使用标准的基于模型的方法而不是基于训练的方法进行推断,但与UDC和UDL一样,它考虑了许多AI模型的推断,以确定未知数据集的标签。因此,在本实施例中,我们跳过了临时数据集的创建(步骤134)和与训练数据集相结合(步骤135),而是直接前进(虚线136)到通过仅对训练数据执行划分步骤(步骤137)和训练步骤(步骤138),使用干净的训练数据集创建n×k×C

该方法的实施例可以在云计算环境或类似的服务器场或高性能计算环境中实现。图1E是根据一个实施例的用于生成和使用AI模型的基于云的计算系统1的架构示意图。它是在医疗保健数据上训练AI的背景中展示的,该医疗保健数据包括医学/医疗保健图像和相关的患者医学记录(包括医疗机构数据和/或诊断测试结果)。图1F是根据一个实施例的训练服务器上的模型训练过程的示意流程图。

AI模型生成方法由工具模型监视器21处理。监视器21需要用户40向包含数据存储库的数据管理平台提供数据(包括数据项和/或图像)和元数据(14)。执行数据准备步骤,以例如将数据项或图像移动到特定文件夹、重命名并对任何图像执行预处理(如,对象检测、分割、阿尔法通道移除、填充、裁剪/定位、归一化、缩放等)。还可以计算特征描述符,并提前生成增强图像。然而,在训练期间(即,即时),也可以进行包括增强的额外的预处理。还可以对图像进行质量评估,以允许拒绝明显较差的图像,并允许捕获替换图像。对患者记录或其他医疗机构数据进行处理(准备)以提取分类结果,如二元分类中的有活力或无活力、多元分类中的输出类、或非分类案例中的其他结果度量,该分类结果与每个图像或数据项链接或关联,以能够在AI模型训练和/或评估中使用。使用最新版本的训练算法将准备好的数据加载到云提供商(例如AWS)模板服务器28上(16)。保存模板服务器,并在一系列训练服务器集群37上制作多个副本,训练服务器集群37可以基于CPU、GPU、ASIC、FPGA或TPU(张量处理单元),它们形成训练服务器35。

然后,针对用户40提交的每个作业,从多个基于云的训练服务器35对模型监视器Web服务器31应用训练服务器37。每个训练服务器35使用诸如Pytorch、Tensorflow或等效的库来运行用于训练AI模型的预先准备的代码(来自模板服务器28),并且可以使用诸如OpenCV的计算机视觉库。PyTorch和OpenCV是开源库,具有用于构建CV机器学习模型的低级命令。AI模型可以是深度学习模型或机器学习模型,包括基于CV的机器学习模型。

训练服务器37管理训练过程。其可包括例如使用随机分配过程将图像划分为训练集、验证集和盲验证集。而且,在训练和验证周期中,训练服务器37还可以在周期开始时将图像集随机化,以使得在每个周期分析不同的图像子集,或者以不同的顺序分析不同的图像子集。如果之前未执行预处理或预处理不完整(例如,在数据管理期间),则可执行额外的预处理,包括对象检测、分割和生成遮罩数据集、计算/估计CV特征描述符,以及生成数据增强。预处理还可根据需要包括填充、归一化等。也就是说,预处理步骤102可以在训练之前、训练期间或某种组合(即分布式预处理)期间执行。可以从浏览器界面管理正在运行的训练服务器35的数量。随着训练的进行,有关训练状态的日志记录信息被记录到分布式日志记录服务,如云监控(CloudWatch)60上(62)。指标被计算,信息也从日志中解析出来,并保存到关系数据库36中。模型还被定期保存到数据存储器(例如,AWS简单存储服务(S3)或类似的云存储服务)50中(51),以使得在以后检索和加载(例如,在发生错误或其他停止时重新启动)。如果训练服务器的作业完成或遇到错误,则可以向用户40发送关于训练服务器的状态的电子邮件更新(44)。

在每个训练集群37中都会发生很多个过程。一旦集群经由Web服务器31启动,脚本将自动运行,读取准备好的图像和患者记录,并开始所请求的特定Pytorch/OpenCV训练代码(71)。模型训练28的输入参数由用户40经由浏览器界面42或经由配置脚本提供。然后针对所请求的模型参数启动训练过程72,训练过程72可以是一项漫长而高强度的任务。因此,为了在训练过程中不丢失进度,日志会被定期保存到日志记录(例如AWS Cloudwatch)服务60(62),模型的当前版本(训练时的)会被保存到数据(例如S3)存储服务51(51),以供以后检索和使用。图3B示出了训练服务器上的模型训练过程的示意流程图的一个实施例。通过访问数据存储服务上的一系列经过训练的AI模型,可以例如使用系综、蒸馏或类似方法将多个模型组合在一起,以合并一系列深度学习模型(如Pytorch)和/或目标计算机视觉模型(如OpenCV),以生成鲁棒的AI模式108,然后将AI模式108部署到交付平台80。交付平台可以是基于云的计算系统、基于服务器的计算系统或其他计算系统,用于训练AI模型的相同计算系统可以用于部署AI模型。

模型可以由其网络权重定义,部署可以包括导出这些网络权重并将其加载到交付平台80上,以在新数据上执行最终训练的AI模型108。在一些实施例中,这可能涉及使用机器学习代码/API的适当功能来导出或保存检查点文件或模型文件。检查点文件可以是由机器学习代码/库生成的具有所定义格式的文件,该文件可以被导出然后使用作为机器学习代码/API的一部分提供的标准函数(例如ModelCheckpoint()和load_weights())读回(重新加载)。文件格式可以直接发送或复制(例如ftp或类似一致),也可以使用JSON、YAML或类似数据传输一致进行序列化和发送。在一些实施例中,可以导出/保存附加的模型元数据(如模型准确度、历元数等)并与网络权重一起发送,其可以进一步表征模型,或者以其他方式帮助在另一个计算设备(例如云平台、服务器或用户计算设备)上构建模型。在一些实施例中,用于训练AI模型的相同计算系统可用于部署AI模型,因此部署包括将训练好的AI模型存储在Web服务器31的内存中,或导出模型权重以加载到传送服务器上。

交付平台80是一个计算系统,包括一个或多个处理器82、一个或多个存储器84和通信接口86。存储器84配置为存储训练后的AI模型,该模型可以通过通信接口86从模型监视器web服务器31接收,也可以从存储在电子存储设备上的模型导出加载。处理器82配置为通过通信接口接收输入数据(例如,来自用户40的用于分类的图像),并使用存储的AI模型处理输入数据以生成模型结果(例如分类),通信接口84配置为将模型结果发送到用户接口88或导出到数据存储设备或电子报告。处理器配置为接收输入数据,并使用存储的训练AI模型处理输入数据,以生成模型结果。通信模块86配置为接收输入数据并发送或存储模型结果。通信模块可以与用户界面88进行通信,例如web应用程序,以接收输入数据并显示模型结果。例如分类、对象边界框、分割边界等。用户界面88可以在用户计算设备上执行,并且配置为允许用户40将数据或图像直接拖放到用户界面(或其他本地应用程序)88上,它触发系统执行数据或图像的任何预处理(如果需要),并将数据或图像传递给经过训练/验证的AI模型108,以获得分类或模型结果(例如,对象边界框、分割边界等),该结果可以立即在报告中返回给用户和/或显示在用户界面88中。用户界面(或本地应用程序)88还允许用户在数据库等数据存储设备中存储图像和患者信息等数据,创建关于数据的各种报告,为其组织、集团或特定用户创建关于工具使用情况的审计报告,以及收费和用户帐户(例如,创建用户、删除用户、重置密码、更改访问水平等)。交付平台80可以基于云,还可以允许产品管理员访问系统以创建新的客户帐户和用户、重置密码,以及访问客户/用户帐户(包括数据和屏幕),以利于技术支持。

在多个数据所有者的情况下,可以训练AI/机器学习模型,将整个训练集用作单个子数据集的组合。在这些实施例中,训练后的预测模型能够在特定的单个子数据集和整体测试集上产生准确的结果,该整体测试集是来自不同数据所有者的数据/图像的组合。实际上,数据所有者可能在不同的地理位置。不同所有者的子数据集可以集中存储在中央位置/服务器上,也可以分布并本地保存在每个所有者的位置/服务器,以满足数据隐私法规。无论数据位置或隐私限制如何,都可以使用该方法的实施例。

该方法的实施例可用于一系列数据类型,包括输入数据类型(数字、图形、文本、视觉和时间数据)和输出数据类型(例如二元分类问题和多类别(多标签)分类问题)。特别是,数字、图形和文本结构化数据是通用机器学习模型的流行数据类型,而深度学习更常见于图形、视觉和时间(音频、视频)数据。输出数据类型可以包括二元和多类别数据,并且该方法的实施例可以用于二元分类问题以及多类别(多标签)分类问题。

该方法的实施例可以使用一系列模型类型(例如分类、回归、对象检测等),每种类型通常使用不同的架构,并且在每种类型中通常有一系列可以使用的架构。AI模型类型的选择可能基于输入类型和想要预测的目标(例如结果)。该方法的实施例特别适用于(但不限于)监督/分类模型和医疗数据集,例如医疗图像和/或诊断测试数据的分类(尽管,同样地,用途也不限于医疗保健数据集)。根据上述的数据位置和数据隐私问题,可以使用集中式(其中训练数据存储在一个地理位置)或分散式(其中,训练数据分别存储在多个地理位置上)数据源对模型进行训练。在分散训练的情况下,模型架构和模型超参数的选择与集中训练相同,但训练机制必须确保私人数据被以隐私且本地的方式保存在每个数据所有者所在地。

对于分类模型,模型输出可以是分类别的(例如类/标签),对于回归、对象检测/分割模型,模型输出可以是非分类别的。该方法的实施例可用于任一分类问题,该方法可识别不正确的标签,也可用于更一般的回归、对象检测和分割问题,其中该方法可给出结果的置信度估计。例如,在模型估计边界框的情况下,该方法将估计该框是否不可接受、较好、良好、非常好或具有其他置信度水平(不是正确/不正确)。然后可以使用这些数据来决定如何清洗数据。取决于要训练的模型的使用案例,不同类型的标签可能对图像的不同噪声敏感。

AI模型类型(例如,二元分类、多元分类、回归、对象检测等)的选择通常取决于为了什么具体问题而训练/使用AI。被训练的多个AI模型可以使用多个模型架构来提供多种模型。多个模型架构可以包括多种通用架构,如随机森林、支持向量机、集群;深度学习/卷积神经网络(包括ResNet、DenseNet或InceptionNet),以及相同的通用架构,例如ResNet,但具有不同的内部配置,例如不同数量的层间连接,例如ResNet-18、ResNet-50、ResNet-101。通过使用相同的模型类型/配置(但具有模型超参数的不同组合),可以产生更丰富的多样性。

AI模型可以包括机器学习模型,例如计算机视觉模型以及深度学习和神经网络。计算机视觉模型依赖于识别图像的关键特征并用描述符表述它们。这些描述符可以对诸如像素变化、灰度、纹理粗糙度、固定角点或图像梯度方向等的质量进行编码,它们在OpenCV或类似库中实现。通过选择要在每个图像中搜索的特征,可以通过发现特征的哪种排列方式是理想类别(例如胚胎存活率)的良好指标来建立模型。这一过程最好通过机器学习过程(例如随机森林或支持向量机)来实现,它们能够根据图像的描述将图像从计算机视觉分析中分离出来。

深度学习和神经网络对特征进行“学习”,而不是像机器学习模型那样依赖手工设计的特征描述符。这使他们能够学习根据所需任务定制的“特征表示”。这些方法适用于图像分析,因为它们能够提取小细节和整体形态,以实现整体分类。可以使用各种深度学习模型,每种模型具有不同的架构(即不同的层数和层间连接),例如剩余网络(例如ResNet-18、ResNet-50和ResNet-101),密集连接的网络(例如DenseNet-121和DenseNet-161)和其他变体(例如Inception V4和Inception-ResNetV2)。训练包括尝试模型参数和超参数的不同组合,包括输入图像分辨率、优化器选择、学习率值和调度、动量值、辍学和权重初始化(预训练)。可以定义损失函数来评估模型的执行情况,且在训练期间,通过改变学习率来优化深度学习模型,以驱动网络权重参数的更新机制,从而将目标/损失函数最小化。多个AI模型可以包括多个模型架构,包括具有不同超参数的类似架构。

通常,机器学习算法需要一个目标/损失函数,可以使用多个评估指标来评估正在训练的模型的准确度(在每个历元结束时评估)。二元分类问题的常见损失函数是二元交叉熵(尽管也可以使用其他损失函数)。损失函数从根本上衡量目标(实际输出标签)和模型结果(预测输出标签)之间的差异。可用于对模型历元进行排序的其他指标包括:

A=N

A

平衡准确度(或F1分数)A

一般来说,经过几个历元的训练(以确保模型探索解决方案空间),交叉熵被用作决定因素,因为它自然地表达了与真相p相比的模型预测q的置信度。准确度指标也被用作决定平局打破者的次要因素。

基于准确度的指标包括准确度、平均类准确度、灵敏度、特异性、混淆矩阵、灵敏度对特异性的比率、精确度、阴性预测值和平衡准确度(通常用于分类模型类型),以及均方误差(MSE)、均方根误差、平均误差均值、平均准确度均值(mAP)(通常用于回归和对象检测模型类型)。基于置信度的指标包括对数损失、组合的类对数损失、组合的数据源对数损失、组合的类和数据源对数损失。其他指标包括历元数、曲线下面积(AUC)阈值、接收机工作特性(ROC)曲线阈值、以及表示稳定性和可迁移性的精确率-召回率曲线曲线。

评价指标可以根据问题的类型而变化。对于二元分类问题,其可以包括总体准确度、平衡准确度、对数损失、灵敏度、特异性、F1评分、曲线下面积(AUC)(包括接收器操作特性(ROC)曲线)和精确率-召回率(PR)曲线。对于回归和目标检测模型,其可以包括均方误差(MSE)、均方根误差、平均误差均值、平均准确度均值(mAP)、置信度和召回率。

现在进一步详细描述这些方法的实施例,并举几个例子说明。

在一些实施例中,首先利用数据集107的预测能力,以探索数据集中的每个数据源的标签噪声水平,从而评估数据质量,尤其是标签噪声。如果存在高标签噪声(即,低预测能力,因此意味着低质量数据),则UDC的实施例可用于解决/最小化标签噪声,并提高数据集的数据质量。或者,如果数据集是来自多个来源的更大集合数据集的一部分,则可以将其全部移除(如果可行的话)。

在一个实施例中,我们通过将数据集拆分成训练集-验证集-测试集,然后将训练数据集中的类标签随机化,执行基本测试以确认模型是否正常工作。然后在训练集上训练模型,并在验证集和测试集上测试模型。验证集和测试集的平衡准确度应为约50%,即无预测能力,因为训练数据集中的标签是随机的。在这种情况下,数据和模型都处于正确的顺序,如果需要,可以实现进一步的清洗方法。否则,可能存在模型配置、训练算法或训练数据严重偏置(skewed)的问题。在本实施例中,使用平衡准确度指标而不是总体准确度,因为在某些情况下,数据集上的偏置的类分布可以与非常高的总体准确度相关联,即使平衡准确度仅为50%左右(参见下面实验结果部分中的示例)。然而,也可以使用其他指标,包括置信度指标如对数损失。

然后,我们继续测试模型的阳性预测能力:对于每个数据源,使用具有原始(非随机)标签的原始数据集,我们将数据分成训练集和测试集。模型在训练集上训练并在测试集上测试。考虑测试集上的平衡准确度(尽管可以使用其他指标,如对数损失)。准确度越接近100%(或特定问题域的某个最大基准准确度,它是预测能力高的标志),那么数据中的标签噪声越低,数据质量越高。准确度越接近50%(或在被随机标记的数据集上训练时计算的准确度,它是无预测能力的标志),那么数据中的标签噪声越高,数据质量越低。在一个实施例中,通过对训练集应用k折交叉验证方法来测试阳性预测能力。也就是说,我们将训练集分成k个折叠,每个折叠训练多个AI模型。然后,我们获得验证数据集中的每个样本被多个AI模型正确预测、不正确预测或超过阈值置信度水平的次数的第一个计数。然后,我们随机地为每个样本分配一个标签或结果,并重复k折交叉验证方法。即,将随机化的训练集分成k个折叠,对每个折叠训练多个AI模型。然后,我们获得验证数据集中的每个样本被多个AI模型正确预测、不正确预测或超过阈值置信度水平的次数的第二计数。然后,我们可以通过比较第一计数和第二计数来估计阳性预测能力。如果两个计数相似,则数据集的预测能力较差。如果差值较大(即大于阈值计数差值),且根据计数结果,表明非随机数据正确地预测了标签,则阳性预测能力较高(或足够)。

此外,我们还可以测试模型可迁移性:调查模型对验证数据集(非必需的)和测试数据集的可迁移性。模型训练中的常见行为可能会打折扣,因为训练数据质量差,标签噪声高。将数据拆分成训练数据集-验证数据集(非必需的)-测试数据集。使用训练数据集训练模型,计算平衡准确度或对数损失等指标,并考虑验证数据集和测试数据集的结果。在同一训练历元获取测试和验证的准确度结果。高质量的数据在验证数据集和测试数据集之间具有很高的相关性(或准确度一致性)。

具有合理的或高的标签噪声的数据集是本文所述的用于减少标签噪声和降低劣质数据并最终改善所得到的训练AI模型的UDC的实施例的理想对象(candidate)。在这种情况下,将执行以下步骤。

UDC方法的实施例可用于处理出现在数据集中的类的一个子集中或所有类中的有噪声的数据(我们称这些类为有噪声类)。我们假设数据集中的剩余类没有噪声或噪声最小(我们称这些类为正确类)。如果噪声标签出现在所有类中,则正确类的数量为零,如果任何类中的标签噪声水平低于50%,则仍可使用该技术。为了简单起见,我们将要从训练数据中移除(或重新标记)的样本(或数据集中的数据/数据点)的预测结果称为“不正确”。

在一个实施例中,我们从训练数据集中移除或重新标记被在同一训练数据集上用k折交叉验证训练的多个模型一致地不正确预测(即“无法训练”)的输入样本(参见下面的算法1),如果存在至少一个正确类,则对于每个模型,验证数据集和/或测试数据集上的准确度等的指标优先偏向于正确类(如果所有类都是有噪声类,则不存在对特异于类的偏向)。有人提出,AI模型学习与每个样本的分类(或标签)相关的模式的最佳机会在于用于训练AI模型的训练数据集本身。在验证数据集和测试数据集中这一点无法保证,因为训练数据集中可能没有代表性样本。被错误标记的样本在训练数据集中无法训练的原因在于,它们属于一个替代类,我们知道(或确信)该替代类是正确类。

如果AI模型正确地训练和分类正确类中的样本(如果我们使验证数据集/测试数据集的准确度偏向于正确类,则会出现这种情况),那么,该模型不太可能对有噪声类中被错误标记的样本正确地分类(因为它看起来像是来自正确类的样本,从而导致不正确的预测或分类)。在有一种情况下这个论点可能不成立,即,AI模型被过度训练或与数据集过度拟合。然而,这种情况很容易通过验证数据集和/或测试数据集的准确度下降被检测到,因此可以将这些模型排除在分析之外。本实施例中的步骤如下。

聚合数据集

对于

列出有噪声类中被多个所选模型一致预测为不正确的所有样本,使用启发式指南确定所谓一致性阈值((l

忽略来自正确类中的样本的重复的不正确预测,因为不清楚正确类中的样本是否被错误标记;或者AI模型是否经过持续训练,能够将被错误标记的数据正确分类,所述被错误标记的数据迫使被正确标记的数据持续地不正确。

移除或重新标记这些样本,并使用相同的网络架构和配置,使用“清洗后的数据集”重新训练这些模型。在相同的验证和测试数据集上检查重新训练的AI模型是否提高了其性能(例如准确度和泛化能力),结果表明数据质量和得到的训练后的AI模式都有所改善。

如果有来自多个数据源(或数据所有者)的多个数据集,则对每个子数据集执行上述(a)中的数据清洗,从而能够从每个子数据集中移除或重新标记被错误标记的样本。将多个子数据集聚合以用于机器学习训练。一个可选步骤是,再次对聚合后的数据集执行上面(a)中的数据清洗,以移除任何剩余的被错误标记的样本。最后,在聚合和清洗后的数据集上训练机器学习模型。

为了以更算法的方式表示上述方法,下面首先以集中的方式,然后再以非集中的方式,展示其工作原理。用户可以针对手头的问题选择合适的清洗功能。

可以使用下面概述的算法1测试数据集的预测能力(建议在应用算法2和3中描述的UDC方法之前)。首先在每个数据集

算法1可以以稍有不同的形式用于确定单个数据源中单个数据集

算法2和3中的伪代码示出单个数据源(含数据集

使用算法3,生成一个直方图,该直方图将成功预测数相同的图像

当模型的数量足够大时,这一量度可以很好地区分好的标签(其不太可能被错误识别,因此将聚集在l值较高的直条中)和不良标签(很可能被错误识别,因此将聚集在l值较低的直条中)。分母可以作为过滤器,使该量度偏向较大的直条,避免包含很少图像的直条。因此,一致性阈值的启发式量度

该一致性阈值用于识别所有

在算法4中,基于与单个数据源相同的算法(k折叠交叉验证),UDC算法扩展到多个数据源(UDC-M),其中必须首先考虑各种数据集的预测能力。此算法将由d个单独的数据集

算法1

算法2

算法3

算法4

算法5

现在描述一系列案例研究。用于以下实验的数据集是基于图像的数据集,并在二元分类的背景中使用。在这些案例中,平衡准确度被用作评估指标,但应该理解的是,其他指标也可以使用,包括基于置信度的指标,如对数损失。结果被拆分成三类数据集:

案例研究1:猫和狗

首先测试合成噪声对猫和狗图像数据集的影响并去除它的方法是出于一个非常重要的原因。这个“容易的问题”可以作为基线,因为可以人工确认每个图像的真相,而在更“困难的问题”中,例如通过医学成像对疾病进行分类,这通常是不可能的。这个想法是,利用从这个“容易的问题”中得出的结论,它可以有效地转化为更“困难的问题”。在后面的部分中,从这个“容易的问题”中发现的结论被用于提高难识别任务的性能,例如在胸部X光图像中检测肺炎,以及从(第5天)胚胎图像中对胚胎存活率进行分类。

预处理

为了确保实验的基线正确,通过两种方式对数据集进行预处理。首先,人工过滤图像以去除图像数据噪声(清除异常值,例如房屋图像等,即不包含猫或狗)。其次,用一个独特的哈希键(hash key)识别图像,并从整个数据集中的移除任何重复项,以避免产生有偏见的结果。经过这些预处理步骤后,数据集的大小为:训练集24916个图像和测试集12349个图像。

案例研究1A:合成标签噪声对模型性能的影响

为了表征标签噪声对模型性能的影响,有计划地添加合成噪声(翻转标签),如下所示:

(预处理)数据集分为三个子集:

·训练集

·测试集

引入了两种标签噪声:

·均一(标签在两个类中按相同比例翻转)

·不对称(标签只在一个类中翻转,当两个类之间的类分布相似时,其中任一个类都可被选择为有噪声类)

翻转水平,

·仅在训练集中

·仅在测试集中

·在训练集和测试集这二者中

为了比较结果,首先通过在清洗后的训练集(即,

图3A是根据一个实施例的、针对仅在训练数据中(■)302、仅在测试集中(▲)303、在两个数据集中都(●)304具有均一标签噪声的测试集

图3A和3B中的结果示出泛化误差是如何随

案例研究1B:使用UDC识别和消除标签噪声

为了测试UDC算法,我们将合成标签噪声添加到24916张图像的训练数据集中(本实验中未使用测试集),该数据集被按照80/20拆分成训练集和验证集,每个研究t使用以下参数,其中

表1

用于测试UDC(无法训练的数据的清洗)的参数(算法1和2)

使用算法2生成的代表性累积直方图如图4A至4D所示,结果如表2所示,其中明确示出翻转标签和非翻转标签。图4A至4D示出各种严格性水平l下,均一噪声水平和非对称噪声水平的累积直方图

表2

对各种噪声水平应用UDC得到的结果。

表2示出仅应用一轮UDC方法后,几个实验情形的改善百分比,所有情形的改善都超过20%。与均一噪声情形

案例研究2:胸部X光片

在这一部分中,UDC方法是针对儿科胸部X光片二元分类的相对“困难的问题”进行测试的。在接下来的结果中,“正常”类是标签为0的阴性类,“肺炎”类是标签为1的阳性类。该数据集被拆分成训练集和测试集,它们似乎具有变化的噪声水平。结果表明,UDC算法(算法1至3)可用于识别和移除不良样本,并提高模型在以前从未见过的数据集上的性能(同时使用置信度和准确度指标),该数据集可能具有显著水平的(不对称)标签噪声。

预处理

本案例研究中的数据集采用与案例研究1相同的方式进行人工筛选。未发现明显异常的图像,但发现了多个重复数据,将其移除以避免产生偏差结果。预处理后的数据集大小为5856张图像,测试中有5232张和624张图像。

案例研究2A:盲测试集上的模型性能的提升

在本研究中,标签噪声没有人为(synthetically)添加到数据集中,而是在盲测试集上比较UDC前后的训练后的模型的性能。用于定义性能的指标是交叉熵损失(CE)和平衡准确度(A

图5示出对于测试集,UDC之前的各种模型架构(左侧)的平衡准确度(顶部)和交叉熵或对数损失(底部);以及UDC之后的ResNet-50架构的对于变化的严格性阈值l(右侧)的平衡准确度(顶部)和交叉熵或对数损失(底部)。如果所选的历元(或模型)导致测试集(对角线)和验证(“val”)集(黑色)的对数损失最小,则直方图的阴影表示模型在测试集上的性能。这两个值之间的差值表征了模型的泛化能力;即,对一个表现良好而对另一个表现不好的模型可能泛化能力不好。结果表明这种差值可以通过UDC得到改善。

案例研究2B:被视为附加数据源的测试集

案例研究2A表明,即使在盲测试集上UDC也能提高模型性能,这是UDC方法威力的一个量度。在本部分中,对将测试集视为不同数据源的效果进行了研究。为此,将测试集纳入(或“注入”)训练集,并记录其对模型性能的影响。

图6是一组直方图,示出对于验证集,UDC之前的各种模型架构(左侧)的平衡准确度(顶部)和交叉熵或对数损失(底部);以及UDC之后的对于变化的严格性阈值l(右侧)的平衡准确度(顶部)和交叉熵或对数损失(底部)。条的颜色表示模型在验证集上的性能,其被选择为在验证集上具有最小对数损失的历元(或模型),对角线表示训练集中包含测试集,黑色表示训练集中未包含测试集。在包含测试集的情况下,性能明显下降,表明测试集中的标签噪声水平很严重。

图7是根据一个实施例的、对于正常图像和标记为肺炎的图像中的测试集和训练集,每个严格性阈值的图像数量的直方图。图7强调示出集合中的标签噪声的两个重要影响。1)尽管测试集仅占聚合数据集的12%,但与单独的训练集相比,测试集使识别出的噪声标签数量增加了100%,强调了标签噪声对模型性能的连锁影响。2)这显示了加入训练集的假阴性如何“迷惑”模型,从而导致与直觉相反的假阳性数量的增加。

图6示出,与训练集相比,在聚合数据集上的性能显著降低。图7揭示了测试集中可疑的不对称标签噪声,其中(测试集中的)“正常”类中的高标签噪声导致(训练集中的)相反的“肺炎”类中出现更多错误,类似于图1A和3B中强调示出的现象。

案例研究2C:放射科专家对干净标签与噪声标签的注释

一位放射科医生评估了200张X光图像,100张被UDC识别为“有噪声”,100张为”干净”,标签正确。放射科医生只得到了图像,而不是图像标签或UDC标签(有噪声或干净)。图像按随机顺序进行评估,并记录放射科医生对每个图像的标签和标签置信度的评估。

结果表明,与有噪声的图像相比,干净图像中的放射科医生的标签与原始标签之间的相符程度明显更高。同样,放射科医生对干净图像的标签的置信度也高于有噪声的图像。这表明,对于有噪声的图像,图像自身中可能没有足够的信息,无法由放射科医生或AI对肺炎做出确定的评估。

数据集和方法

从Kaggle获得了对公众开放的儿科胸部X光图像的数据集(具有相关的肺炎/正常标签),其中训练集中有5232个图像,测试集中有624个图像。在AI训练过程中,训练集用于训练或创建AI,测试集用作与之分开的数据集以测试AI在对新的“没见过”数据集(即,AI训练过程中未使用的数据)进行分类时的表现。UDC方法应用于数据集中的所有5856张图像,大约200张图像被识别为有噪声。

上述结果表明,通过UDC方法识别的具有噪声标签的图像可能存在不一致,从而使其注释(或标记)更加困难。因此,我们预计,对于具有噪声标签的图像,不同放射科医生之间的肺炎/正常评估的相符程度低于那些具有干净标签的图像,AI模型很容易识别具有干净标签的图像,而且我们预计对于具有干净标签的图像,放射科医师之间的相符程度相对更高。制定了以下两个假设,并可使用(Cohen的)kappa检验直接进行检验:

H

H

H

H

我们通过将数据如下所示地拆分成干净标签和噪声标签,准备了一个实验数据集,其中两个子集用于临床研究,以测试上述假设并验证UDC方法。

包含200个元素

·48张为正常

·52张为肺炎(39张为细菌性肺炎,13张为病毒性肺炎)

·51张为正常

·49张为肺炎(14张为细菌性肺炎,35张为病毒性肺炎)

该数据集

放射科专家和原始标签之间的相符程度通过Cohen的kappa检验进行计算,并在数据集

结果:相符程度

实验结果如图8所示,图8是一些图像的图,这些图像分成具有干净标签的图像和具有噪声标签的图像,并进一步细分成来自训练集的图像和来自测试集的图像,再细分成正常类和肺炎类。图像周围有实线和虚线,其分别示出原始标签与放射科专家评估之间的相符和不相符。关于相符的出现率,类之间或数据集来源之间没有显著差异,这表明标签类型(干净与有噪声)是差异的最重要因素。

对结果应用Cohen的kappa检验,得出噪声标签(κ≈0.05)和干净标签(κ≈0.65)的相符程度。图9是根据一个实施例的计算噪声标签和干净标签的Cohen的kappa的图,并提供了直观证据,表明以非常高的置信度(>99.9%)和效应量(>0.85)否定了两个零假设H

分析:置信度水平

关于上面展示的结果,我们有兴趣再看看另一个粒度水平:即放射科专家评估标签的置信度水平(低、中、高)。这些置信度水平是根据放射科医生给出的注释进行判断的;具有表示严重射线照相问题或其他混杂变量的评论的评估被标记为低置信度,具有“可能”、“也许”、“未排除”等评论的评估则被视为中等置信度,最后,那些相对确定的评估被标记为高置信度。

图10是根据一个实施例的干净标签图像和噪声标签图像的相符程度和不相符程度的直方图。图10示出,干净标签的所有18个不相符都是低置信度或中置信度,再次表明干净标签确实更容易或更一致地被分类,而且UDC和放射科专家都相信这些标签总体上反映了真相。此外,还示出,噪声标签的47个不相符中,有14个是高置信度的,这表明对噪声标签的不相符不仅更频繁,而且更肯定。图10示出放射科专家评估的置信度水平细分,示出对于干净标签,即使对于放射科医师与原始数据集中的提供的标签不相符的那少数图像,评估也被某些降低其置信度的变量所混淆。这与“噪声”标签形成了鲜明的对比,对于这种标签,相符和不相符都有相似的评估置信度分布。

重要的是,胸部X光片可能有许多混淆变量,通常有些X光片缺乏足够信息而使得放射科医生无法做出自信的评估。同样重要的是,要把噪声标签的数量放在上下文中。虽然为了进行这项研究,重要的是要在肺炎类和正常类以及干净类和有噪声类中保持标签数量的平衡,但干净标签(超过5700个)比噪声标签(低于200个)多出一个数量级,这表明整个数据集在很大程度上(除了噪声标签)很可能是自洽的。

最后,肺炎的类型(细菌性、病毒性或其他)没有按照这种详细程度进行调查,其不相关,超出了本研究的范围。值得注意的是,这表明UDC方法的一个实施例能够识别出那些可能难以评估而因此可能需要更多关注的图像标签对。这种方法作为放射科医生的筛查工具非常有用,可以帮助放射科医疗机构进行分类,并更关注可疑(噪声)图像(相对于那些可能容易评估的图像而言)。

使用UDC清洗后的数据集提高AI性能

在本研究中,我们比较了使用原始(未清洗的)X光片数据集(无UDC)训练的AI和使用UDC清洗后的X光片数据集(UDC后)训练的AI的性能。结果如图11A所示,图11A是根据一个实施例的对于变化的严格性阈值l,UDC之前和之后(清洗后的数据)的平衡准确度的直方图。图11A示出,在UDC清洗后的数据集上训练AI可以提高AI的准确度和AI的泛化能力(并由此提高可扩展性和鲁棒性)。

图11A示出测试数据集上的两个准确度结果。用对角线填充的直条表示在测试数据集上使用AI的理论最大准确度。它是通过在测试数据集上测试每个训练后的AI模型以找到可以达到的最大准确度来获得的。另一方面,实心黑色直条是通过训练和选择AI模型的标准实践获得的AI的实际准确度。标准做法包括使用训练数据集(使用不同的架构和参数)训练许多AI模型,并基于AI模型在验证数据集上的性能选择最佳AI。只有在该AI被选中时,才能将最终AI应用于测试数据集,以评估AI的性能。这一过程确保了AI并非被选择或“精心挑选”来最大限度地提高测试数据集的准确度,并代表了当AI需要盲目和独立地应用于其他没见过的数据时,在实践中会发生的情况。此外,对角线填充的直条(AI的理论最大准确度)和实心黑色直条(实际的AI准确度)之间的准确度差值是AI的泛化能力(即,AI在其他没见过的数据(X光图像)上可靠工作的能力)的标志。

图11A中强调显示的一个非常重要的特征是,在训练过程中选择在测试数据集上表现最好的AI模型(对角线填充的直条)与选择在验证集上表现最好的模型(实心黑色直条)之间存在的偏差,前者可以视为“精心挑选”的最佳结果,而后者是在实践中用来选择有望在新数据上更好地泛化的模型的方法。在训练集上应用不同水平UDC缩小了这种偏差,这表明不仅“最佳验证”AI模型的总体准确度得到了提高,而且UDC使AI训练过程更加鲁棒(即,泛化能力和可扩展性提高)。这证明,在干净数据上训练的模型在盲数据集上的表现比在未清洗数据集上训练的模型好很多(>10%)。

图11A还示出不同UDC阈值下的准确度。阈值与UDC将数据标记为“不良”(噪声或脏污)的程度有关。较高的阈值会导致从数据集中移除更多潜在的不良数据,并可能得到更干净的数据集。但是,将阈值设置得太高可能会导致干净数据被不正确地标识为不良数据而从清洗数据集中移除。图11A中的结果表明,将UDC阈值从8增加到9可以提高AI的准确度,表明从用于训练AI的干净数据集中移除了更多的不良数据。然而,图11A示出随着阈值进一步增加,收益递减。

使用不干净的测试数据集来报告AI性能的危险

本示例的最后一部分是使用UDC来调查测试数据集是否干净,或者是否包含不良数据。这一点至关重要,因为AI从业者使用测试数据集来评估和报告AI的性能(例如准确度),以便能够评估肺炎的X光图像。太多的不良数据意味着AI准确度结果不能真正代表AI性能。

UDC结果表明,测试数据集中的不良数据水平显著。为了验证这一点,我们将测试数据集注入用于训练AI的训练数据集,以确定在验证数据集上可以获得的最大准确度。

图11B是根据一个实施例的一组直方图,示出对于变化的严格性阈值l,UDC之前(左侧)和UDC之后(右侧)的各种模型架构的平衡准确度。直条的颜色表示模型在验证集中的性能,实心黑色直条表示训练集中包含测试集,对角线填充的直条表示训练集中不包含测试集。图11B示出与仅使用训练集训练的AI相比,使用聚合数据集(训练数据集+测试数据集)训练的人工神经的性能显著降低。这表明测试数据集中的不良数据水平很高。这也表明,即使是一个好的(可泛化的)模型也可以达到一个准确度上限。这是一个关键点,因为有文献报道该胸部X光片数据集的精确度高(约92%)。除非使用新的AI算法或使用医学领域知识的AI目标,否则高准确度的情形可能源于“精心挑选”最佳可能结果,而不是训练可泛化的模型。

换句话说,如果没有从有噪声的图像中提取这些信息的额外新技术,则很难(或不可能)使用标准AI训练方法同时获得在验证(或训练)数据集和测试数据集上表现良好的模型。我们的结果表明,只要从训练集中去除很少的不良数据,在测试数据集上泛化能力更好的性能就可以达到~87%(见图11A),而且通过从测试数据集中去除一些(<100)图像,在UDC清洗后的测试数据集上可以实现95%以上的准确度。

案例研究3:胚胎

在本案例研究中,在一个“难题”上测试了UDC-M算法,该难题也包括来自多个来源的数据。在光学显微镜上成像的体外受精后第5天的人类胚胎图像以及临床怀孕数据的匹配标签,很容易受到标签噪声的影响,如图1A所示。回想一下,合理的支持证据表明,与那些通过超声波扫描被测量为“有活力”(检测胎儿心跳)的胚胎相比,植入后6周通过超声波扫描测量为“无活力”(未检测到胎儿心跳)的胚胎更有可能包含标签噪声,例如,由于患者因素是主要影响因素,其不利于训练。

通过检查由胚胎师排名的以及盲集或双盲集上训练后的AI模型的结果中的假阳性(FP)计数,可以从多个临床来源汇编的数据集的人口统计学横截面中获得支持性证据。

以下的总结显示,与(ii)所有年龄的患者和(iii)35岁或以上的患者相比,年轻人口例如(i)35岁以下的患者中自然出现较高的FP计数。这一事实的解释是,与胚胎存活率低的情况相比,由于疾病或患者因素,年龄较小的患者更有可能需要体外受精。在之前的研究中胚胎师和AI的FP计数已经表明对存活率有信心,例如表现为模型的交叉熵损失较高。对有活力胚胎的信心自然可以用无活力类中噪声占优来解释,例如由于患者因素。

(i)35岁以下的患者

·38.7%的胚胎无活力。对于有患者记录的图像,63.6%的患者在医疗机构数据库中报告了各种患者因素。

·78.5%的无活力的盲/双盲胚胎被训练过的AI预测为假阳性。

·83.7%的无活力的盲/双盲胚胎被胚胎师预测为假阳性,这表明尽管临床怀孕6周测量的标签相反,但与AI一致,胚胎似乎是有活力的。

(ii)所有年龄段的患者

·42.2%的胚胎无活力。对于有患者记录的图像,57.4%的患者在医疗机构数据库中报告了各种患者因素。

·71.2%的无活力动盲/双盲胚胎被AI预测为假阳性。

·83.5%的无活力的盲/双盲胚胎被胚胎师预测为假阳性,这表明与AI一致,胚胎似乎是有活力的。

(iii)年龄等于或大于35岁的患者

·50.3%的胚胎无活力。对于有患者记录的图像,49.1%的患者在医疗机构数据库中报告了各种患者因素。

·58.6%的无活力的盲/双盲胚胎被AI预测为假阳性。

·83.0%的无活力的盲/双盲胚胎被胚胎师预测为假阳性,这表明与AI一致,胚胎似乎是有活力的。

这些结果表明,随着患者年龄的降低,使用假阳性总数的粗略替代测量法,患者因素的报告有稳定地增加。这对从在多个医疗机构的盲集/双盲集上训练得到的AI模型获得的分数具有显著影响,对胚胎师也有显著(程度较小)影响。AI和胚胎师之间的假阳性的一致性表明,AI和胚胎师都一致认为某些胚胎是有活力的,尽管标签为无活力标签,因此无活力的胚胎可能实际上是有活力的,但由于标签噪声而被错误记录。为了确认这一证据,对多个数据集执行了UDC-M算法,如下所示。

临床胚胎存活率数据

有7家独立医疗机构作为数据所有者提供数据集。来自每个所有者的数据称为医疗机构数据,而所有数据源的组合称为聚合数据集(或简称数据集)。每个医疗机构数据可划分为训练集、验证集和测试集,用于训练和评估目的,其中细分数据集被唯一地命名,以便与其余数据集区分开来。聚合数据集也可以划分为训练集、验证集和测试集,用于模型训练和评估。在这种情况下,可以称其为聚合数据的训练集,或者简单地称为训练集。

为简单起见,医疗机构数据集的名称表示为医疗机构数据1、医疗机构数据2等。表3总结了7个医疗机构数据集的类大小和总大小,可以看出,类分布在数据集之间存在显著差异。总共有3987张图像用于模型训练和评估。

表3

数据集描述

案例研究3A:单个医疗机构的预测能力和可迁移性测试

在本研究中,我们选择了最大的(最具代表性的)医疗机构数据,即医疗机构数据6,用于类标签随机化和可迁移性测试。执行了以下步骤:

·将医疗机构数据6数据集随机拆分成训练集、验证集和测试集。

·为训练集中的所有图像随机分配类标签,而验证集和测试集保持不变。

·在医疗机构数据6的原始训练集上训练深度学习模型,探索验证结果,并探索最佳验证结果如何转化为测试结果。

·以4种不同的指标报告结果:总体准确度、平衡准确度、“无活力”类准确度和“有活力”类准确度。

表4给出了在医疗机构数据6上训练和评价(使用医疗机构数据6的随机类标签训练集或原始训练集训练)的深度学习模型的预测结果。值得注意的是,医疗机构数据6具有偏置的类分布,其中“无活力”类的大小是“有活力”类大小的两倍以上。此表的前两行示出最好的验证结果(第二行视为具有随机化的训练类标签的情形),而最后两行示出最好的测试结果。一些观察结果包括:

如果训练图像标签是随机化的,验证数据集和测试数据集的平衡准确度约为53%,接近随机化的数据集的预期的50%准确度(即,数据集中的每个样本为正确的概率为50:50或掷硬币)。然而,总准确度略高,验证数据集和测试数据集的总准确度约为60%。理由是,“无活力”类的图像比“有活力”类的图像多,因此,模型在“无活力”类图像上训练得更好。因此,对于验证集和测试集而言,“无活力”类的准确度远高于“有活力”类,因此总体准确度更高。这里可以得出一点,即预测模型工作正常,训练集、验证集和测试集的分布相似。

确认了该医疗机构数据6的预测能力,验证集和测试集的平衡准确度分别为~76%和~70%。然而,通过清洗数据集并移除任何被错误标记的数据或有噪声的数据,有可能提高准确度。可迁移性测试如表4所示,中间有两行是从最佳验证结果转换而来的相应测试结果(即,训练模型在验证集和测试集上都运行相同的历元数量)。测试集上的转换结果(平衡准确度为~68%)与最佳测试结果相似。这意味着该医疗机构数据可以观察到迁移性。在案例研究3A之后,可以确认训练模型处于工作状态,且医疗机构数据是使用无法训练的数据的清洗技术进一步清洗数据的理想对象。在下面的案例研究3B中,我们对原始数据集中的剩余的医疗机构进行了预测能力测试。

表4

医疗机构数据6的预测结果

案例研究3B:剩余的医疗机构的预测能力测试。

在本实验中,对每个剩余的医疗机构(医疗机构数据)重复进行预测能力测试。为了简单起见,每个医疗机构数据被随机分为训练集和验证集。没有必要创建测试集,因为我们不进行可迁移性测试。通过验证集上的平衡准确度表示预测能力。多个深度学习配置用于在每个训练集上学习,并在每个测试集上分别测试。报告的评估指标包括总体准确度、平衡准确度、“无活力”类准确度和“有活力”类准确度,平衡准确度被视为对每个数据集的预测能力进行排名的最重要(主要)指标。在这种情况下,基于类的准确度用于检测不同类之间的准确度是否平衡。然而,可以使用其他指标,如基于置信度的指标。

表5给出了评估7个医疗机构数据集的预测能力的结果。医疗机构数据3和4的预测能力最低,而医疗机构数据1和7的自预测能力最好。如前一部分所述,接近50%的准确度被认为具有非常低的预测能力,这可能是由于数据集中的标签噪声较高。这些数据集是数据清洗的理想对象。单个预测能力报告(表5)可能表明应从每个医疗机构数据中移除多少数据,即预测能力越低,可能需要从数据集中移除的被错误标记的数据越多。

表5

自洽性(self-consistency)测试结果以评估预测能力

案例研究3C:应用到聚合数据集上的UDC

在本实验中,将所有医疗机构数据集合并,然后随机划分为训练集、验证集和测试集。使用不同的深度学习配置对每个训练集进行训练。执行了以下步骤:

-根据有活力类的准确度和在验证数据集上的平衡准确度选择最佳模型。从使用不同配置(各种网络架构和超参数设置)的多个训练模型中选择了最好的5个模型。然而,也可以使用其他指标,如基于置信度的指标(如对数损失)。

-在聚合后的训练集上运行5个选定的模型,以生成5个输出文件,其中包含每幅图像(或每个样本)的准确度结果。输出包括训练集中的每个图像的预测的分数、预测的类标签和实际的类标签。

-累加5个输出文件,只包括来自有噪声类的图像(因为它们是唯一被认为可能被错误标记的图像),以生成单个输出文件,其中对于数据集中的每个(无活力的)图像包含:(1)产生不正确结果的模型数(最多5个);(2)这些模型的平均不正确预测分数。平均预测分数表示这些模型得到错误预测结果的程度。

-创建了简短的图像列表,其中包括被多个模型(例如4个或5个模型,这些模型的不正确预测分数很高)错误分类的(无活力的)图像。这些图像被视为被错误标记的数据,是移除或重新标记的理想对象。

-为了清洗数据集,将列表中的“被错误标记的”图像从聚合训练集中移除。

以下实验用于比较在原始训练集和清洗后的训练集(如上所述,被错误标记的图像列表被移除)上训练的模型的验证和测试结果。用于评估结果的指标是平衡准确度,但也可以使用其他指标,如基于置信度的指标(如对数损失)。为了使结果更具代表性,使用了多种模型类型和超参数设置。深度学习架构有多种选择。流行的方法包括DenseNet、ResNet和Inception(-ResNet)net。在表6中,我们使用了几个设置:设置1使用相同的种子值、DenseNet-121架构和基于训练集的归一化方法,其他超参数在每次模型运行时都会更改;类似地,设置2使用均匀归一化方法而不是基于训练集的归一化;设置3将网络架构固定为ResNet。

从表6可以看出,与包含有噪声的数据的基线相比,清洗后的训练集的准确度有所提高。总体而言,验证集和测试集的性能分别提高了1%-2%。应该指出,这只是初步结果。如果仔细完成失败图像选择过程,可以预期会显著提高准确度。

表6

将多个模型一致地产生不正确预测结果的图像移除

案例研究3C:应用于各个医疗机构数据的训练集的UDC

如果数据所有者希望保持其数据的私密性和安全性,并且不允许数据移动(离开其本地存储系统)和在集中位置聚合,则可以在每个数据所有者的数据集(即,在它们的本地服务器上)上在本地部署无法训练的数据的清洗技术。应该指出,这种方法也可以应用于没有数据限制或隐私问题的情况。

在本实验中,各医疗机构数据集是逐个处理的。每个医疗机构数据集都被随机划分为训练集、验证集和测试集。使用不同的深度学习配置,并在每个医疗机构的训练数据集上训练。执行了以下操作:

-训练多个模型,并使用验证集上的准确度结果为每个医疗机构数据选择最佳模型。针对这一胚胎预测问题,选择了在无活力胚胎图像上具有高平衡准确度和高误分类率的模型。原因是我们希望从无活力类中捕获尽可能多的噪声标签图像。

-在这些模型的关联的训练数据集上运行这些模型,以生成包含预测的分数、预测的类标签和目标的每个图像的结果文件。

-创建在每个文件中被错误分类的图像的简短列表(仅在有噪声类即无活力类中)。预测的分数可用于阈值滤波器的目的。

-从训练数据集中移除这些图像,然后将所有数据集聚合起来,并在新的清洗后的聚合数据集上重新训练最佳模型。

表7

比较分别在原始训练数据和清洗后的训练数据上训练模型时,在原始测试集和清洗后的测试集上的结果。

从表7可以看出,当我们在清洗后的数据集上训练和测试模型时,在4个不同的指标上都有显著的提高。

在跨多个历元的单个深度学习训练的训练图中,可以观察到数据质量的提高和使用无法训练的数据的清洗技术的重要性。

图12是AI模型的一个实施例在未清洗的数据上训练时的测试曲线图,分别以虚线1201和实线1202表示无活力类和有活力类,以点划线1203表示两者的均值曲线。图13是AI模型的一个实施例在清洗后的数据上训练时的测试曲线图,分别以虚线1301和实线1302表示无活力类和有活力类,以点划线1303表示两者的均值曲线。

图12和图13分别示出对于原始数据集和清洗数据集在跨多个历元的单个训练轮次中,无活力类和有活力类的测试数据集的准确度及其平均值。当我们考虑使用有噪声(低质量)的数据集对原始数据集进行训练时(图12),可以观察到训练是不稳定的,准确度最高的类在有活力类和无活力类之间不断切换。这一点可以从两个类的准确度的强“锯齿”模式(从一个历元到另一个历元)中观察到。请注意,即使噪声主要发生在一个类中,在二元分类问题(如本例)的情况下,识别一个类中的正确示例的困难会影响模型识别另一个类中的正确示例的能力。因此,有许多数据点不容易分类,因为它们的标签与训练模型的大多数其他示例相冲突。因此,模型权重的微小变化会对这些边缘示例产生很大影响。

因此,有人认为,随着训练的进行,对于有噪声的数据集(对于无活力类),模型会在以下两种情况之间切换:(1)进行学习以将“被正确标记”的有活力类正确分类,导致有噪声的和被错误标记的无活力类的准确度下降;(2)进行学习以将被错误标记的无活力类正确分类,导致“被正确标记”的有活力类动准确度下降。鉴于正确的有活力图像和被错误标记的无活力图像实际上来自同一类,因此可能具有相同的分类模式/特征,可以理解的是,当模型决定将这些图像分类到不管哪个类时,训练变得不稳定,导致备选类中的所有图像变得不正确,并在类间切换准确度。

当我们考虑清洗后的数据集的训练时(图13),可以观察到训练更加稳定。在二元分类情况下,获得更高准确度的类不会从一个历元到另一个历元在两个类之间切换,而且总体平均准确度(在每个历元以及跨历元)更高。虽然在训练集、验证集和测试集中仍然存在一定数量的噪声示例,很难100%确定正确的图像已被移除,但改善后的清洗后数据集开始显示哪一类更容易分类,稳定性得到提高。在这种情况下,在执行单个清洗过程后,有活力类现在始终获得更高的准确度,因此,有活力类被认为可能是总体上更干净的类,进一步清洗可以集中在无活力类上。

这表明无法训练的数据的清洗技术实际上已经从数据集中的移除了被错误标记的和有噪声点数据,最终提高了数据质量,从而提高了AI模型的性能。

案例研究4:胸部X光片上的UDL

在进一步测试上述的UDL算法时,我们在这里展示了基于胸部X光片数据集的实验设计的结果,这里进一步考虑了选择用于专家注释的200幅图像。使用来自上述的实验结果的相同的200张图像,我们忽略其原始标签,执行多标签UDL算法,如下所示。这200张图像段数据集被插入到较大的(约5000张图像)训练集中,形成两个单独的数据集:

·一个数据集中,给每个图像分配随机标签(例如,对某特定图像分配“正常”),

·另一个数据集中,这些标签都翻转了(即,所述图像现在被标记为“肺炎”)。

注:本实验忽略了测试集的剩余部分,预计与原始UDC结果相比,其对结果的影响较小。

对两个数据集都进行了UDC,结果如图14所示,图14示出不正确预测的频率与数量的关系:

干净标签:

·正确(原始)标签1401被所有AI模型正确地预测,而

·不正确(翻转)标签1402被多个AI模型不正确地预测(没有一个具有翻转标签的干净标签被所有模型正确预测)。

噪声标签:

·正确(原始)标签1403被多个AI模型稍微更正确地预测,而

·不正确(翻转)标签1404被多个AI模型稍微更不正确地预测。

虽然所有AI模型都使用其原始标签“正确预测”了相当大一部分(50%)的噪声标签,但这可能并不意外,因为AI经过训练,可以甚至从有噪声的数据中学习。主要结论是,当其标签翻转时,对于“有噪声的”图像的错误预测数的差值并没有太大变化(“噪声”标签的平均差值为2.7,而“干净”标签为8.0),这表明这些图像只有在过度拟合的情况下才被正确预测,他们的原始标签不像那些被标识为“干净”标签的图像那样确定。此外,通过对即使“被正确预测”的噪声标签之间的相符程度进行分析,发现其与放射科专家或原始注释都没有显著的相符性,61幅图像中只有35幅与原始标签相符,61幅中有X幅与放射科专家相符。总之,这些结果表明,UDL技术可以用来自信地标记没见过的数据集,也可以用于识别具有噪声特征的图像。

已经描述了UDC方法的各种实施例。特别是,UDC方法的实施例已被证明可以解决数据集的类的子集或所有类中的被错误分类的或有噪声的数据的问题。在UDC方法中,我们使用基于k折交叉验证的方法,其中我们将数据集划分为多个训练子集(即k折),然后针对每个子集(k折)训练具有不同模型架构的多个AI模型(例如,生成n×k个AI模型)。可以将所估计的标签与已知标签进行比较,然后将被AI模型一致地不正确预测的样本识别为不良数据(或不良标签),然后可以将这些样本重新标记或排除。如果医疗数据被排除(例如,由于信息质量比较差),可以对此做标记以由专家进行详细分析,包括有可能重新收集数据(例如,再做一次X光检查)。该方法的实施例可用于来自单个源或多个源的数据集,并可用于二元分类、多元分类以及回归问题、对象检测问题。因此,该方法可用于医疗数据,尤其是包含从显微镜、照相机、X光、MRI等多种设备捕获的图像的医疗数据集。然而,可以理解,该方法也可用于医疗环境之外。

而且,UDL方法扩展了UDC方法,以执行基于训练的方法来推断,从而能够为以前没见过的数据推断未知标签。AI训练过程本身不是训练AI模型,而是用来确定以前没见过的数据的分类。在这些实施例中,形成了未标记数据的多个副本(所有类中的每个类都有一个副本),并为每个样本分配了一个临时标签。这些临时标签可以是随机的,也可以基于训练后的AI模型(按照标准的基于AI模型的推断方法)。然后将这些新数据插入一组(干净的)训练数据的集合中,并使用UDC技术总计C次,以确定哪些临时标签是确信正确的(未被错误标记的),哪些是确信不正确的(被错误标记的)。最终,如果新图像的实际标签是已知的(图像中的数据没有噪声,因此不包含可识别的特征),则UDC可用于可靠地确定(或预测/推断)该标签或分类。通过将没见过的数据插入到训练数据中,训练过程本身试图找到与(干净的)训练数据相关的没见过数据中的特定的模式、相关性和/或统计分布。因此,该过程对没见过的数据更具针对性和个性化,因为作为训练过程的一部分,对特定的没见过的数据在具有已知结果的其他数据的上下文中进行分析和关联,基于重复训练的UDC过程本身最终将确定该特定数据的最可能标签,这可能会提高准确度和泛化能力。

还展示了一系列应用UDC方法的案例研究。第一个案例研究比较简单,其中训练AI识别猫和狗,通过随机翻转一定比例图像的标签将不良数据故意“注入”到数据集中。这项研究发现,具有翻转(不正确)的标签的图像很容易被识别为被错误标记的数据(脏污标签)。对于这个问题,噪声标签的情况相对较少,噪声标签指其中图像质量低且无法区分,例如,具有猫一样特征的狗的图像,或者猫的图像没有聚焦或分辨率不够高,无法识别为猫,或者在图像中只能看到猫的非特定部分。

第二个案例研究比较难,是从胸部X光片中识别肺炎的分类问题,第二个案例研究更容易受到微妙和隐藏的混杂变量的影响。在这项研究中,UDC能够识别不良数据,我们进一步发现,不良数据的主要来源是噪声标签,其中仅仅图像本身没有包含足够的信息来确切地识别标签。这意味着图像被错误标记的可能性更大,在极端情况下,图像不包含任何评估(AI或人类)能够确定标签的足够信息。

由放射科专家验证了结果。放射科医生评估了200张X光图像,100张被UDC识别为“噪声”,100张为“干净”,标签正确。放射科医生只得到了图像,而不是图像标签或UDC标签(噪声标签或干净标签)。图像按随机顺序进行评估,并记录放射科医生对每个图像的标签和标签可信度的评估。结果表明,与有噪声的图像相比,干净图像中放射科医生的标签与原始标签之间的相符程度明显更高。同样,放射科医生对干净图像标签的置信度也高于有噪声的图像。这表明,对于有噪声的图像,仅因为图像中的信息不足,放射科医生或AI都不能对肺炎进行确定的评估。

进一步表明,当从数据集中移除噪声标签以创建用于AI训练的“干净”数据集时,AI检测肺炎的性能在准确度和泛化能力方面有所提高。这表明,使用有噪声的数据训练AI可能会使AI困惑,并导致AI学习了与肺炎或正常X光片相关的错误特征,所述有噪声的数据要么不包含足够的信息来对数据进行分类(标记),要么更有可能被错误标记。这突显了AI医疗行业的挑战,在该行业中,使用的数据集被认为是完美或干净的,而不是由于一系列因素,包括质量差的数据,或由于主观性、不确定性、人为错误或故意(对抗性)攻击而导致的标签错误。包含“脏污”或“噪声”标签的医疗数据集可能会对AI的准确度和可扩展性(泛化能力)产生负面影响,并最终影响可能依赖于可靠AI评估的医疗机构或患者。因此,通过使用UDC的实施例,可以清洗数据集并排除有噪声的数据,以提高AI模型的性能。

还表明,UDC方法的实施例在X光图像的测试数据集中识别出高水平的噪声。测试数据集是一个单独的“没见过”的盲数据集,在测试最终训练的AI性能的AI训练过程中没有使用。AI从业者使用测试数据集报告其AI从X光图像检测肺炎的准确度。测试数据集中的噪声意味着所报告的对于该数据集的AI准确度可能不是AI准确度的真实体现。一些研究小组报告称,他们的AI在该数据集上具有非常高的准确度。因此,关于他们的AI是否真的能够从有噪声的图像中提取正确的信息以更好地标记它们(通过使用新的AI算法或通过结合额外的医学领域知识选定AI,这是可能的),或者更高的准确度是运气的结果还是能够为这个特定数据集获得更好准确度结果的“精心挑选”AI的结果,是一个有待商榷的问题。无论如何,使用不干净的测试数据集得出的准确度结果有可能在AI的真实性能和可靠性上误导研究人员或临床医生,如果在实践中使用AI,可能会给依赖AI的临床医生和患者带来实实在在的影响。

上述案例研究表明,UDC方法的实施例可用于有效识别不良数据(或不良标签),即使是“硬”分类问题,如从儿科X光片检测肺炎。去除不良数据用于创建AI训练的干净训练数据集,并导致AI在X光检查中识别肺炎的性能提高。此外,UDC在AI从业者用于测试和报告其分析肺炎X光图像的AI性能的测试数据集中发现了不良数据。这意味着所报告的AI性能可能不是AI的真实性能,可能是(无意地)误导的。最后,UDC针对这一特定问题识别的不良数据属于噪声类别,AI和放射科医生都很难使用可用的X光图像自信地标记这些数据。这表明,这些图像仅包含有限的信息,无法做出确切的结论性诊断,因此,被错误标记或误诊的可能性更大。

最后,第三个案例研究展示了UDC方法在一个难题上的应用,即,对IVF胚胎存活率的估计,其中包括来自多个来源(多个医疗机构)的数据。UDC方法能够从数据集中识别并去除被错误标记的和有噪声点数据,最终提高数据质量,从而提高AI模型性能。

本说明书中的结果表明,UDC方法的实施例有可能对AI的工业应用产生深远影响,以解决诸如AI医疗等难题。医疗数据通常天生“不干净”,UDC方法的实施例可用于有效清洗并用于训练具有更高性能的AI,进而确保准确、可扩展(可泛化),并为世界各地的临床医生和患者提供更可靠的使用。

UDC的进一步实施例还有一个进一步的好处,即,能够分析医疗数据并识别哪些图像可能(即,难以确切地评估)有噪声,在一定程度上,它可以作为潜在的鉴别分类工具,指导临床医生处理需要进一步深入临床评估的案例。

UDC方法的实施例可用于帮助清洗参考测试数据集,参考测试数据集是AI从业者用来测试和报告其AI效能的数据集。对不干净数据集的测试和报告可能会误导成AI的真正功效。UDC处理后的干净数据集能够真真切切地表示和报告AI的准确度、可扩展性和可靠性,并保护可能需要依赖AI的临床医生或患者。

本领域技术人员会理解,可以使用各种技术中的任何一种来表示信息和信号。例如,在整个以上描述中可能提及的数据、指令、命令、信息、信号、位、符号和芯片,可以用电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合来表示。

本领域技术人员将进一步理解,结合本文所公开的实施例描述的各种说明性的逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件或指令、中间件、平台或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经大体上根据其功能描述了各种说明性组件、块、模块、电路和步骤。将这种功能性实现为硬件还是软件取决于特定的应用程序和施加在整个系统上的设计约束。本领域技术人员可以针对每个特定应用以各种方式来实现所描述的功能,但是这些被决定的实现方式不应被解释为导致脱离本发明的范围。

结合本文所公开的实施例描述的方法或算法的步骤可直接体现在硬件、由处理器执行的软件模块或两者的组合中,包括基于云的系统。对于硬件实现,可以在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、设计为执行本文所述功能的其他电子单元、或其组合内实现处理。可以使用各种中间件和计算平台。

在一些实施例中,处理器模块包括一个或多个中央处理单元(CPU)或图形处理单元(GPU),用来执行方法的一些步骤。类似地,计算设备可以包括一个或多个CPU和/或GPU。CPU可以包括输入/输出接口、算术和逻辑单元(ALU)以及通过输入/输出接口与输入和输出设备通信的控制单元和程序计数器元件。输入/输出接口可包括网络接口和/或通信模块,用于使用预定义的通信协议(例如蓝牙、Zigbee、IEEE 802.15、IEEE 802.11、TCP/IP、UDP等)与另一设备中的等效通信模块通信。计算设备可以包括单个CPU(核心)或多个CPU(多个核心)或多个处理器。计算设备通常是使用GPU集群的基于云的计算设备,但可以是并行处理器、向量处理器或分布式计算设备。存储器可操作地连接到处理器,并且可以包括RAM和ROM组件,并且可以设置在设备或处理器模块内部或外部。存储器可用于存储操作系统和附加软件模块或指令。处理器可用来加载并执行存储在存储器中的软件模块或指令。

软件模块,也称为计算机程序、计算机代码或指令,可包含多个源代码或目标代码段或指令,并可位于在任何计算机可读介质中,如RAM存储器、闪存、ROM存储器、EPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM、DVD-ROM、蓝光光盘或任何其他形式的计算机可读介质。在一些方面中,计算机可读介质可包括非暂时性计算机可读介质(例如,有形介质)。此外,对于其他方面,计算机可读介质可包括暂时性计算机可读介质(例如,信号)。上述的组合也应包括在计算机可读介质的范围内。在另一方面中,计算机可读介质可集成到处理器。处理器和计算机可读介质可以驻留在ASIC或相关设备中。软件代码可以存储在存储器单元中,并且处理器可以用来执行它们。存储器单元可以在处理器内部或处理器外部实现,在这种情况下,可以通过本领域已知的各种手段将其通信地连接到处理器。

此外,应当理解,可以由计算设备下载和/或以其他方式获得用于执行本文所述的方法和技术的模块和/或其他合适的装置。例如,这样的设备可以连接到服务器以使得于用于执行本文描述的方法的装置的传输。可替代地,可以经由存储装置(例如,RAM、ROM、物理存储介质如光盘(CD)或软盘等)来提供本文描述的各种方法,使得在将存储装置连接或提供给计算设备时计算设备可以获得各种方法。而且,用于将本文描述的方法和技术提供给设备的任何其他合适的技术都可以使用。

本文公开的方法包括用于实现所描述的方法的一个或多个步骤或动作。方法步骤和/或动作可以在不脱离权利要求的范围的情况下彼此互换。换句话说,除非指定了步骤或动作的特定顺序,否则可以修改特定步骤和/或动作的顺序和/或使用,而不脱离权利要求的范围。

在整个说明书和所附权利要求中,除非上下文另有要求,术语“包括”、“包含”及其变化形式将被理解为暗示包括所明示的整数或一组整数,但并不排除任何其他整数或一组整数。

本说明书中对任何现有技术的引用不是,也不应被视为承认此类现有技术构成公共常识的一部分的任何形式的意思表示。

本领域技术人员会理解,本发明的用途不限于所描述的一个或多个特定应用。关于本文描述或描绘的特定元件和/或特征,本发明也不局限于其优选实施例。应当理解的是,本发明不限于所公开的一个或多个实施例,而是能够在不背离由所附权利要求阐述和限定的范围的情况下进行各种重新排列、修改和替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号