计算机实施方法、计算机系统及计算机编程产品

文档序号:1953923 发布日期:2021-12-10 浏览:8次 >En<

阅读说明:本技术 计算机实施方法、计算机系统及计算机编程产品 (Computer implementation method, computer system and computer program product ) 是由 陈士弘 于 2020-08-06 设计创作,主要内容包括:本发明公开了一种计算机实施方法、计算机系统及计算机编程产品,其中,该计算机实施方法使用脏训练数据(dirty training data)来清洗神经网络(neural network)的训练数据集(set)的技术通过存取标签(labeled)训练数据集而开始,标签训练数据集包括相对脏的标签数据元素(element)。标签训练数据集分为第一子集A与第二子集B。过程包括在第一子集A与B之间循环,该过程包括产生第一子集A与B的已优化模型过滤子集(refined model-filtered subset),以提供已清洗数据集。每个已优化模型过滤子集可提高清洁度(cleanliness)并增加元素数量。(A technique for cleaning a training data set (set) of a neural network (neural network) using dirty training data begins by accessing a label (labeled) training data set that includes relatively dirty label data elements (elements). The label training data set is divided into a first subset a and a second subset B. The process includes looping between the first subsets a and B, which includes generating an optimized model-filtered subset of the first subsets a and B to provide a cleaned data set. Each optimized model filter subset may improve cleanliness (clearness) and increase the number of elements.)

计算机实施方法、计算机系统及计算机编程产品

技术领域

本发明涉及一种计算机实施方法、计算机系统及计算机编程产品,用于训练神经网络以及使用已清洗数据来训练神经网络的清洗数据。

背景技术

本部分所讨论的主题不应仅因在本部分中提及而被认为是先前技术。类似地,本部分所提到的问题或与提供为发明背景的主题相关的问题不应被认为是先前技术中已认知的。本部分中的主题仅表示不同方法,而这些方法本身也可以对应于所要求保护的技术实施。

包括深度神经网络(deep neural network)的神经网络是一种人工神经网络(ANN,artificial neural network),其使用多个非线性(nonlinear)且复杂的转换层(transforming layer)以连续地对高阶特征(high-level feature)进行建模(model)。神经网络透过倒传递法(backpropagation)提供反馈(feedback),该反馈携带观察到的输出与预测输出之间的差异以调整参数。神经网络已经随着大型训练数据集(large trainingdataset)的可用性、并行且分布(parallel and distributed)计算的能力以及复杂训练算法(sophisticated training algorithm)而发展。神经网络促进了许多领域的重大进步,例如计算机视觉(computer vision)、语音识别(speech recognition)以及自然语言处理(natural language processing)。

卷积神经网络(CNN,convolutional neural network)与循环神经网络(RNN,recurrent neural network)可配置为深度神经网络(deep neural network)。尤其是卷积神经网络在图像识别方面取得了成功,卷积神经网络包含卷积层(convolution layer)、非线性层与池化层(pooling layer)的结构。循环神经网络被设计为利用输入数据的序列信息在像是感知器(perceptron)、长短期存储单元(long short-term memory unit)与栅控循环单元(gated recurrent unit)的区块之间建立循环连结。此外,在有限环境下提出了许多其他涌现出的深度神经网络,例如深度时空型神经网络(deep spatio-temporalneural network)、多维循环神经网络(multi-dimensional recurrent neural network)与卷积自动编码器(convolutional auto-encoder)。

训练深度神经网络的目标是优化每层的权重参数,其将较简单的特征逐步组合为复杂特征,以便可以从数据中学习到最合适的层次表示(hierarchical representation)。优化过程的单一循环安排如下。首先,给定训练数据集,正向传递(forward pass)依序地计算每层的输出,并透过网络向前传递功能信号。在最终输出层(output layer)中,目标损失函数(objective loss function)测量出已推论输出与特定标签之间的误差。为了使训练误差最小化,反向传递(backward pass)使用连锁律(chain rule)反向传播误差信号,并计算整个神经网络中所有权重的梯度(gradient)。最后,依据随机梯度下降法(stochasticgradient descent)使用优化算法来更新权重参数。而批次梯度下降法(batch gradientdescent)为每个完整数据集执行参数更新,随机梯度下降法通过为每个小型数据示例集(small set of data example)执行更新来提供随机近似值(stochasticapproximation)。一些优化算法源于随机梯度下降法。例如,Adagrad与Adam训练算法执行随机梯度下降法,同时分别依据每个参数的更新频率与梯度矩(moments of thegradients)自适应地修改学习率(learning rate)。

在机器学习中,使用训练集来训练包括ANN的归类引擎(classificationengine),训练集包括依据由归类引擎要识别的特征所标记的数据示例的数据库。通常,用作训练集的元素的一些数据示例被错误地标记。在一些训练集,大量元素被错误地标记。错误的标记会干扰用于产生模型的学习算法,从而导致性能不佳。

本发明期望提供一种技术,以使用具有错误标签元素的训练集来改善ANN的训练。

发明内容

本发明描述了一种用于清洗神经网络(neural network)的训练数据集(trainingdata set)的计算机实施的方法,以及计算机系统与计算机编程产品。该计算机系统与计算机编程产品包括执行该方法的计算机指令(instruction)。本发明提供了一种设置在推论引擎(inference engine)中的神经网络,该神经网络使用本文所述的技术来训练。

一种使用脏训练数据(dirty training data)来清洗神经网络的训练数据集的技术通过存取会脏的标签(labeled)训练数据集而开始。标签训练数据集分为第一子集A与第二子集B。过程包括在第一子集A与第二子集B之间循环,该过程包括产生第一子集A与第二子集B的已优化模型过滤子集(refined model-filtered subset),以提供已清洗数据集。每个已优化模型过滤子集可提高清洁度(cleanliness)并增加元素(element)数量。

一般来说,本文所述的过程包括存取标签训练数据集(S),其包括相对脏的标签数据元素。标签训练数据集分为第一子集A与第二子集B。该过程包括:在循环A中,使用第一子集A训练神经网络的模型MODEL_A;以及使用模型MODEL_A过滤标签训练数据集的第二子集B。提供子集B的第一已模型过滤子集B1F,其具有取决于MODEL_A的准确度(accuracy)的多个元素。然后,下一个循环(即循环AB)包括:使用第一已模型过滤子集B1F训练模型MODEL_B1F;以及使用模型MODEL_B1F过滤标签训练数据集的第一子集A。模型MODEL_B1F比模型MODEL_A可具有更好的准确度,并产生第一子集A的第一已优化模型过滤子集A1F,其具有取决于MODEL_B1F的准确度的多个元素。另一个循环(即循环ABA)的执行可包括:使用第一已优化模型过滤子集A1F训练模型MODEL_A1F;以及使用模型MODEL_A1F过滤标签训练数据集的第二子集B。模型MODEL_A1F比模型MODEL_A可具有更好的准确度。并产生第二子集B的第二已优化模型过滤子集B2F,其具有取决于MODEL_A1F的准确度的多个元素,并且第二已优化模型过滤子集B2F可比第一已模型过滤子集B1F具有更多的元素数量。

在本文所描述的实施例中,循环可继续,直到依据如数据质量(data quality)或最大循环数(maximum cycle number)的已优化模型过滤子集满足迭代标准(iterationcriterion)为止。

来自第一子集A与第二子集B的已优化模型过滤子集的组合可进行结合以提供已清洗训练数据集。已清洗训练数据集可用于训练目标神经网络的输出模型,其具有比使用原始训练数据集进行训练时更高的准确度。具有输出模型的目标神经网络可配置在推论引擎中。

如本文所使用的,集合的“子集”排除了空子集(null subset)以及包括该集合的所有成员的子集的退化案例(degenerate case)。

为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附附图详细说明如下:

附图说明

图1是配置人工神经网络进行缺陷归类的生产线的简化图。

图2A标出用于过滤训练数据集与使用已过滤的训练数据集训练ANN模型的方法流程图。

图2B标出用于过滤训练数据集与使用已过滤的训练数据集训练ANN模型的另一种方法流程图。

图3绘示用于以类似于图2A与图2B所示的方法来过滤中间数据子集的技术。

图4是绘制数据的清洁度与训练数据中元素数量的关系图,其用于说明清洁度、元素数量与所得到的训练模型性能之间的相关性。

图5是类似于图4的具有在整个图表中显示训练模型准确度的等高线的曲线图。

图6与图7是类似于图4的分别绘示具有图5的等高线的标签数据集的第一子集A与第二子集B的曲线图。

图8绘示具有80%干净数据情况的图6的第一子集A。

图9绘示如图2A与图2B描述的所产生的第一已模型过滤子集B1F。

图10绘示如图2A与图2B描述的所产生的第一已优化模型过滤子集A1F。

图11绘示如图2A与图2B描述的所产生的第二已优化模型过滤子集B2F。

图12绘示如图2A与图2B描述的所产生的已模型过滤子集A2F。

图13绘示用于训练输出模型的已模型过滤子集A2F与第二已优化模型过滤子集B2F的组合。

图14是如本文所述的计算机系统的简化图。

图15绘示如本文所述的配置在照相机、智能型手机与汽车的推论引擎的实施例。

【符号说明】

60,62,X,X+1:处理站

M:人工神经网络模型

61:图像传感器

63:推论引擎

100,101,102,102,104,105,106,107,108,109,150,151,152,153,

154,155,156,157,158,159,160,170,171:步骤200:最佳点

202,212:标签点

210,220,222,230,233:点

600:训练服务器

601:相机

602:智能型手机

603:汽车

A:第一子集

B:第二子集

AB,ABA,ABAB,ABABA:循环

A1F:第一已优化模型过滤子集

A2F:已模型过滤子集

B1F:第一已模型过滤子集

B2F:第二已优化模型过滤子集

M:ANN模型

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

本发明的实施例系参照图1-图15作详细说明。

图1是包括处理站(process station)60、图像传感器61与处理站62的生产线的简化图。在此生产线中,将集成电路的芯片(integrated circuit wafer)输入至处理站X(即处理站60),并进行如沉积(deposition)或刻蚀(etching)处理,且输出至图像传感器61。芯片从图像传感器输入至处理站X+1(即处理站62),在处理站X+1进行如沉积、刻蚀或封装(packaging)处理。然后,将芯片输出至下一阶段。来自于图像传感器的图像提供至推论引擎(inference engine)63,推论引擎63包括依据本文所述技术来训练的人工神经网络(ANN,artificial neural network)模型M,其识别并归类芯片中的缺陷(defect)。推论引擎也可以接收制造过程中其他阶段的图像。关于在图像传感器61所感测到的芯片缺陷的此信息可应用于改善制造过程(例如,通过调整处理站X或在其他站所执行的过程)。

如上所述,用于训练神经网络来对生产线中的缺陷进行归类的方法或用于其他归类功能的方法可包括通过去除标记错误的元素(element)来清洗训练数据集的计算机实施过程。

在生产线中所获取的集成电路元件上的缺陷图像可归类为许多类别,并用作训练数据集的元素。在特定制造过程的数量中,这些缺陷的变化很大,故训练数据会有不均匀分布(uneven distribution),且包含大数据大小(large data size)。此外,这类图像的标记过程可由会制造大量错误的人员来完成。例如,为了建立一个新的神经网络模型以对缺陷类别或类型进行归类,首先,我们需要提供一种标签图像数据库(labeled imagedatabase)来训练。图像数据库包括缺陷信息。其中一种在数据库中可具有50000张缺陷图像,并且每张图像都由人类归类标记。因此,集合中的一张图像会归类为类别9,而集合中的另一张图像会归类为类别15...,依此类推。然而,人为错误和模棱两可(ambiguous)的情况导致标记错误。例如,应归类为缺陷类别7的一张图像错误地归类为类别3。具有错误归类的元素的数据集可称为脏数据集(dirty data set)或噪声数据集(noisy data set)。

本文所述技术的实施例可用于清洗脏数据集,并使用已清洗数据集来训练ANN,以识别与归类缺陷,从而改善制造过程。这种已训练的ANN可用于监视在线过程(in-lineprocess)中的缺陷(例如,用于评估在线产品的稳定性与质量或制造工具的寿命。

图2A绘示从“脏”训练数据开始训练神经网络ANN的计算机实施过程的流程图。流程图从提供标签训练数据集S(步骤100)开始,标签训练数据集S可存储于数据库,其可由处理器或执行过程的处理器来存取。示例性标签训练数据集可包括如上述所标记的数千或数万(或更多)图像,或依据要实施的神经网络的任务功能所选择的任何其他类型的训练数据。

计算机实施过程进入数据库以获取(retrieve)训练数据集S的第一子集(firstsubset)A与第二子集B(second subset)(步骤101)。在一种方法中,选择第一子集A与第二子集B,以使子集中的脏数据元素的分布大约等于整个数据集S中的分布。此外,可选择第一子集A与第二子集B,以使每个子集中的数据元素的数量大致相同。由于期望将训练算法(training algorithm)中所使用的干净数据元素的数量最大化,故可通过均分训练数据集S选择第一子集A与第二子集B。随机选择第一子集A与第二子集B的元素,以使两个子集中的脏元素分布在统计上(statistically)至少保持相对均等(relatively equal)。

接下来,在流程图中(循环A),使用两个子集的其中之一(例如第一子集A)训练神经网络,以产生模型MODEL_A(步骤102)。使用模型MODEL_A过滤(filter)第二子集B,以产生第二子集B的第一已模型过滤子集B1F,并将第一已模型过滤子集B1F存储于存储器中(步骤103)(过滤第二子集B)。图3绘示使用模型过滤子集的技术范例。第一已模型过滤子集B1F包含第二子集B的元素,其标签匹配(match)来自于执行模型MODEL_A的神经网络的推论结果(inference result)。由于此过滤,相较于第二子集B,第一已模型过滤子集B1F应具有更少的总元素(overall element)以及较低百分比的标记错误的元素。

接下来(循环AB),使用第一已模型过滤子集B1F训练神经网络,以产生优化(refined)模型MODEL_B1F(步骤104)。如本文所使用的术语“优化”用于表示利用已模型过滤子集(或是如以下实例中的已优化模型过滤子集)产生的模型,并且不表示模型的任何相对质量(relative quality measure)。然后,采用如图3所述的技术(过滤第一子集A),使用优化模型MODEL_B1F过滤第一子集A,以产生第一子集A的第一已优化模型过滤子集A1F,并将第一已优化模型过滤子集A1F存储于存储器中(步骤105)。第一已优化模型过滤子集A1F包含第一子集A的元素,其标签匹配来自于执行优化模型MODEL_B1F的神经网络的推论结果。由于此过滤,相较于第一子集A,第一已优化模型过滤子集A1F可具有更少的总元素(overall element)以及较低百分比的标记错误的元素。

在下一迭代(iteration)(循环ABA)中,使用第一已优化模型过滤子集A1F训练神经网络,以产生优化模型MODEL_A1F,并将优化模型MODEL_A1F存储于存储器中(步骤106)。然后,采用如图3所述的技术(过滤第二子集B),使用优化子集MODEL_A1F过滤第二子集B,以产生第二子集B的第二已优化模型过滤子集B2F,并将第二已优化模型过滤子集B2F存储于存储器中(步骤107)。相较于第二子集B的第一已模型过滤子集B1F,第二已优化模型过滤子集B2F可具有更多数量的元素以及较低百分比的标记错误的元素。

在此示例中,可不需要额外的过滤循环(filtering cycle)提供已清洗训练数据集,以用于产生最终输出模型。例如,此阶段的已清洗训练数据集可包括第二子集B的第二已优化模型过滤子集B2F以及第一子集A的第一已优化模型过滤子集A1F的组合。

如果没有执行额外的过滤循环,则计算机实施算法(computer implementedalgorithm)可使用已优化模型过滤子集(例如,第一已优化模型过滤子集A1F与第二已优化模型过滤子集B2F的联集(union))的组合训练神经网络,以产生神经网络的输出模型(步骤108)。在此阶段使用已清洗数据集来训练的神经网络可相同于步骤102、104与106所使用的神经网络(或者在此阶段使用已清洗数据集来训练的神经网络可以是相异的神经网络),以产生已优化模型过滤子集。然后可将输出模型存储于推论引擎中,以用于领域或存储器(例如数据库)中(步骤109),进而供日后使用。

在一些实施例中,图2A的步骤102、104与106中,仅子集或已过滤子集的一部分可用作训练数据,以减少所需的处理资源。

图2B绘示从“脏”训练数据开始训练神经网络ANN的计算机实施过程的流程图,其将该过程迭代地扩展至其他循环AB、ABA、ABAB、ABABA。流程图从提供标签训练数据集S(步骤150)开始,标签训练数据集S可存储于数据库,其可由处理器或执行该过程的处理器来存取。示例性标签训练数据集可包括如上述所标记的数千或数万(或更多)图像,或依据要实施的神经网络的任务功能所选择的任何其他类型的训练数据。

计算机实施过程进入数据库以获取训练数据集S的第一子集(first subset)A与第二子集B(步骤151)。在一种方法中,选择第一子集A与第二子集B,以使子集中的脏数据元素的分布大约等于这整个数据集S中的分布。此外,可选择第一子集A与第二子集B,以使每个子集中的数据元素的数量相同或大致相同。由于期望将训练算法中所使用的干净数据元素的数量最大化,故可通过均分训练数据集S选择第一子集A与第二子集B。随机选择第一子集A与第二子集B的元素,以使两个子集中的脏元素分布在统计上(statistically)至少倾向于保持相对均等。选择第一子集A与第二子集B的元素的其他技术可用于考虑到每个类别中的元素数量以及其他数据内容感知选择技术。

接下来,在流程图中,使用两个子集的其中之一(例如第一子集A)训练神经网络,以产生模型MODEL_A(n-1)(其中n=1)与设置追踪循环的索引(index)(步骤152)。使用模型MODEL_A(n-1)过滤第二子集B,以产生第二子集B的第一已模型过滤子集BmF(其中m=1),并将第一已模型过滤子集BmF存储于存储器中(步骤153)。图3绘示使用模型过滤子集的技术范例。第一已模型过滤子集BmF包含第二子集B的元素,其标签匹配来自于执行模型MODEL_A(n-1)的神经网络的推论结果。由于此过滤,相较于第二子集B,第一已模型过滤子集BmF应具有更少总元素(overall element)以及较低百分比的标记错误的元素。

接下来,使用第一已模型过滤子集BmF训练神经网络,以产生优化模型MODEL_BmF(步骤154)。然后,采用如图3所述的技术,使用优化模型MODEL_BmF过滤第一子集A,以产生第一子集A的已优化模型过滤子集AnF,并将已优化模型过滤子集AnF存储于存储器中(步骤155)。已优化模型过滤子集AnF包含第一子集A的元素,其标签匹配来自于执行优化模型MODEL_BmF的神经网络的推论结果。由于此过滤,相较于第一子集A,已优化模型过滤子集AmF可具有更少的总元素以及较低百分比的标记错误的元素。

在此阶段,该过程确定是否满足迭代标准(iteration criterion)。例如,迭代标准可以是最大循环数(maximum number of cycles)(如索引n或索引m是否超过阈值(threshold)所表示)。替代地,迭代标准可以是已优化模型过滤子集AnF与BmF(即第一已模型过滤子集)的大小(即元素数量)是否各自收敛(converge)于已过滤子集A(n-1)F与B(m-1)F的大小(步骤156)。例如,如果大小差(difference in sizes)小于阈值,则可表示为收敛,其中阈值可依据特定应用与所使用的训练数据集来选择。例如,阈值可以在0.1%至5%的数量级(order)上。

如参照图2A所阐释的,循环可具有固定数量,而不需要迭代标准,从而提供至少一已优化模型过滤子集,并且更好地提供每个第一子集A与第二子集B的至少一已优化模型过滤子集。

在图2B的情况中,如果已优化模型过滤子集AnF与BmF(即第一已模型过滤子集)的大小未收敛或未满足其他迭代标准,则使用已优化模型过滤子集AnF训练神经网络,以产生优化模型MODEL_AnF,并将优化模型MODEL_AnF存储于存储器中(步骤157)。进行该过程以增加索引n与m(步骤158),并返回到步骤153,其中刚产生的优化模型MODEL_A(n-1)F用于过滤第二子集B。

持续该过程直到满足步骤156的迭代标准为止。若在步骤156处满足标准,则选择第一子集A与第二子集B的已优化模型过滤子集。例如,可选择具有最大元素数量的已优化模型过滤子集。结合第一子集A与第二子集B的已选定(selected)模型过滤子集以提供已清洗数据集,并且使用第一子集A与第二子集B的已选定模型过滤子集的组合训练目标神经网络(target neural network),以产生输出模型(步骤159)。在此阶段使用已清洗数据集训练的目标神经网络可相同于步骤152、154与157所使用的神经网络(或者在此阶段使用已清洗数据集训练的目标神经网络可以是相异的神经网络),以产生已优化模型过滤子集。

然后,可将输出模型存储于推论引擎中,以用于领域或存储器(例如数据库)中(步骤160),进而供日后使用。

在一些实施例中,图2B的步骤152、154、157中,仅子集或已过滤子集的一部分可用作训练数据,以减少所需的处理资源。

一般而言,图2B所示的过程包括以下的示例过程,其包括:

步骤S1:使用第一子集与第二子集的其中之一的预先提供的已优化模型过滤子集以训练神经网络的实时(instant)优化模型;

步骤S2:使用实时优化模型过滤第一子集与第二子集的另外一个,以提供第一子集与第二子集的另外一个的实时优化模型过滤子集;以及

步骤S3:确定是否满足迭代标准。若未满足迭代标准,则执行步骤S1至步骤S3;若满足迭代标准,则使用第一子集A的已选定模型过滤优化子集以及第二子集B的已选定模型过滤子集的组合,以产生神经网络的训练模型。

图3绘示一种使用神经网络模型过滤训练集的子集的技术,如图2A与图2B所执行的步骤103、105、107、153与155。

假设提供MODEL_X,则该过程在子集Y上使用MODEL_X(使用训练数据集的一个子集进行训练)且执行神经网络(步骤170)。MODEL_X可以是MODEL_A、MODEL_B1F、MODEL_A1F,或者通常还可以是MODEL_A(n)F或MODEL_B(m)F。子集Y是不用于训练MODEL_X的子集(另一个子集)。

然后,选择具有匹配于神经网络所输出的归类数据的标签的子集Y的元素以作为子集Y的已模型过滤子集的成员(步骤171)。

本技术可参照图4-图13图作进一步描述,图4-图13绘示训练数据集与子集的特性图表。

图4表示训练数据集S(例如,具有20%噪声(noise)的基准文件(benchmark file)CIFAR 10)的图表,其在y轴上显示了数据的清洁度(dara cleanliness),并且在X轴上显示了训练数据集S的元素数量。例如,图4可表示50000个元素的数据集,图4的数据的清洁度范围可以从0到100%。任何特定的数据点X、Y为集合的元素数量以及集合数据的清洁度的指针(indication)。一般而言,具有更多元素(即沿着X轴向外延伸)的训练数据集产生更准确的模型。同样地,具有更高清洁度(即沿着y轴向上延伸)的训练数据集可产生更准确的模型。训练数据集将具有一个最佳点(optimal point)200,其中具有最大数据的清洁度的最大数据元素数量包括100%的训练数据集S。理想情况下,如果训练数据集可由最佳点200来表示,则依据该训练集所使用该数据集来进行训练的神经网络的质量将是最好的。

图5是具有添加启发式等高线(heuristic contour line)的图4的复制图,其中这些等高线系依据沿着等高线所落下的训练数据而对应于已训练神经网络的准确度。当然,不同的模型具有不同的等高线。因此,对于具有准确度为25%的所得模型的等高线,其相交(intersect)于更靠近X轴起点的图表顶部,并且在相对较低的数据的清洁度相交于图表的右侧。标签点201表示图表中模型将具有约68%准确度的位置。标签点202表示图表中模型将具有小于约68%准确度的位置。标签点212表示图表中模型将具有范围在68%至77%之间的准确度的位置。在特定应用中,会希望使用训练集来训练模型,该模型具有在图表右上角的85%等高线以上的准确度。

图6绘示将训练数据集分为约等于50%元素的第一子集的效果。这可对应于图2A与图2B所示过程中所引用的第一子集A。这表示仅使用一半的数据集并无法达到大于85%的模型准确度。

图7绘示通过将训练集分成两半而产生的第二子集B。理想地,第一子集A将具有与第二子集B几乎相同的清洁度特性,故至少在概念上可应用相同的等高线。再者,第二子集B不能单独用于此概念性示例中,以达到如85%范围内的高模型准确度。

图8绘示数据的清洁度数值约为80%的效果。如图所示,对于此示例中具有25000个元素的第一子集A,可选择20000个元素以获得100%清洁度。理想地,用于过滤第一子集A的算法可辨识出这20000个被正确标记的元素。在此示例中,如点210所示,使用具有约80%清洁度以及25000个元素的训练数据集的模型准确度约为68%。

图9绘示如图2B的过程中针对m=1所产生的已模型过滤子集BIF。在这种情况下,第一子集A用于训练模型MODEL_A(0),而MODEL_A(0)用于过滤第二子集B以产生已模型过滤子集B(1)F。如图8所述的,模型MODEL_A(0)将具有约68%准确度。因此,准确度约为68%的第二子集B通过使用MODEL_A(0)过滤第二子集B而将辨识出将近99%的干净数据。此干净数据是第一已模型过滤子集B1F(来自循环AB的结果)。如图9中的等高线所示,包含具有接近99%准确度的68%数据的此第一已模型过滤子集B1F可预期地产生模型MODEL_B1F,在点220处所表示的模型MODEL_B1F具有约77%准确度。点222表示所需的准确度,以使用完整的第二子集B来产生77%准确度的模型。

图10绘示如图2B的过程中针对n=1使用模型MODEL_B1F所产生的第一已优化模型过滤子集A1F。由于MODEL_B1F具有约77%准确度,故第一已优化模型过滤子集A1F将具有约为77%的第一子集A的元素。如等高线所示,此第一已优化模型过滤子集A1F可预期地产生具有接近79%准确度的模型MODEL_A1F。

图11绘示如图2B的过程中针对m=2使用模型MODEL_A1F所产生的第二已优化模型过滤子集B2F。由于MODEL_A1F具有接近79%准确度,故第二已优化模型过滤子集B2F具有将近79%的第二子集B的元素。如等高线所示,此第二已优化模型过滤子集B2F可预期地产生具有接近79%准确度的改进模型MODEL_B2F。

图12绘示如图2B的过程中针对n=2使用模型MODEL_B2F所产生的已模型过滤子集A2F。由于MODEL_B2F具有约79%准确度,故已模型过滤子集A2F将具有约79%的第二子集B的元素。如等高线所示,此已模型过滤子集A2F可预期地产生具有约79%(接近80%)准确度的模型。

该循环可如上述而持续进行。然而,对于该训练数据集,可看出已模型过滤子集中的元素数量正收敛于最大值80%。因此,可停止循环,并可以选择最终训练。

图13绘示第一子集A的最大的已模型过滤子集A2F以及第二子集B的最大的第二已优化模型过滤子集B2F的组合,其包括接近80%的第一子集A与第二子集B的元素,并具有接近99%清洁度。结果是,使用该组合训练的输出模型可预期地具有约85%准确度(点233),其远高于使用未清洗(uncleaned)的训练集A(即第一子集)训练的模型所估计的68%至77%之间的准确度(点230)。

图14是计算机系统1200的简化区块图,一或多个的计算机系统可编程(programmed)为实现本发明所公开的技术。计算机系统1200包括一或多个中央处理单元(CPU,central processing unit)1272,其透过总线子系统(bus subsystem)1255与多个周边(peripheral)装置来进行通信。例如,这些周边装置可包括存储子系统1210,其包括存储装置与文件存储子系统1236、用户接口(user interface)输入设备1238、用户接口输出装置1276与网络接口子系统1274。输入与输出装置允许用户与计算机系统1200进行互动(interaction)。网络接口子系统1274提供到外部网络的接口,其包括到其他计算机系统中的相应接口装置的接口。

用户接口输入设备1238可包括:键盘(keyboard);定位装置(pointing device)(例如,鼠标(mouse)、轨迹球(trackball)、触摸板(touchpad)或数字绘图板(graphicstablet));扫描仪(scanner);触控屏幕(touch screen),其合并至显示器(display);音频(audio)输入设备(例如,语音识别系统(voice recognition system)与麦克风(microphone));以及其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括所有可能的装置类型以及将信息输入至计算机系统1200的方式。

用户接口输出装置1276可包括显示子系统、打印机(printer)、传真机(faxmachine)或诸如音频输出装置的非视觉(non-visual)显示器。显示子系统可包括LED显示器、阴极射线管(CRT,cathode ray tube)、诸如液晶显示器(LCD,liquid crystaldisplay)的平板装置(flat-panel device)、投影装置(projection device)或用于产生视觉影像的一些其他机械。显示子系统还可提供非视觉显示器,例如音频输出装置。一般而言,术语“输出装置”的使用旨在包括所有可能的装置类型以及用于将信息从计算机系统1200输出至用户、另一个机器或计算机系统的方式。

存储子系统1210存储编程与数据结构,其提供本文所述的一些或所有模块与方法的功能,以训练ANN的模型。这些模型通常应用于深度学习(deep learning)处理器1278所执行的ANN。

在一种实施方式中,使用深度学习处理器1278来实现神经网络,深度学习处理器1278可以是能配置与重组的处理器、现场可程序逻辑门阵列(FPGA,field-programmablegate array)、专用集成电路(ASIC,application-specific integrated circuit)和/或可重构计算架构(CGRA,coarse-grained reconfigurable architecture)与图形处理单元(GPU,graphics processing unit)以及其他已配置的设备。深度学习处理器1278可以由深度学习云端平台(cloud platform)(例如,Google云端平台(Google Cloud Platform)、赛灵思(Xilinx)云端平台与Cirrascale云端平台进行托管(host)。示例性的深度学习处理器1278包括Google的张量处理单元(TPU,Tensor Processing Unit)、像是GX4机架式服务器(Rack mount)系列的机架式解决方案、GX149机架式服务器系列、NVIDIA DGX-1、微软(Microsoft)的Stratix V FPGA、Graphcore的智能处理单元(IPU,Intelligent ProcessorUnit)TM、具有骁龙(Snapdragon)处理器的高通(Qualcomm)的Zeroth平台、辉达(NVIDIA)的伏打(Volta)、NVIDIA的DRIVE PX、NVIDIA的JETSON TX1/TX2模块、英特尔(Intel)的Nirvana、Movidius视觉处理单元(VPU)、富士通DPI、安谋控股(ARM)的DynamicIQ、IBMTrueNorth等。

用于存储子系统1210的存储子系统1222可包括多个存储器,其包括用于在编程执行期间指令(instruction)与数据所存储的主随机存取存储器(RAM,random accessmemory)1234以及存储固定指令的只读存储器(ROM,read only memory)1232。指令包括用于清洗训练数据集的过程以及用于使用如图2A、图2B、图3与图4-13图所述的已清洗数据集来训练神经网络的过程。

文件存储子系统1236可以为编程与数据文件(包括图2A、图2B、图3所述的编程与数据文件)提供持久(persistent)存储,并且可包括硬盘(hard disk drive)、伴随着相关抽换式媒体(removable media)的软盘(floppy disk drive)、CD-ROM驱动器(drive)、光盘(optical drive)或抽换式媒体磁带匣(cartridge)。透过文件存储子系统1236可将实现一些实施方式的功能的模块存储于存储子系统1210中或是由处理器所存取的其他机器中。

总线子系统1255提供了一种用于使计算机系统1200的各个元件与子系统如预期来互相通信的机制。尽管总线子系统1255被示意性地显示为单一总线,但总线子系统的替代实施方式可使用多个总线。

计算机系统1200本身可以是各种类型,包括个人计算机、携带式计算机(portablecomputer)、工作站(workstation)、终端(computer terminal)、网络计算机(networkcomputer)、电视机、大型计算机(mainframe)、服务器农场(server farm),广泛分布的松散网络计算机组(set of loosely networked computers)或者是任何其他的数据处理系统或用户装置。由于计算机与网络的不断变化的性质,出于说明本发明的首选实施方式的目的,图14中所绘示的计算机系统1200的描述仅旨在作为特定示例。相较于图14所绘示的计算机系统,计算机系统1200的许多其他的配置可能具有更多或更少元件。

本文所述技术的实施例包括存储在非瞬时计算机可读取媒体(non-transitorycomputer readable media)上的计算机编程(computer program),非瞬时计算机可读取媒体设置为可由计算机存取与读取的存储器,该计算机编程包括如图2A、图2B与图3所述的编程与数据文件。

在此部份所述方法的其他实施方式可包括非瞬时计算机可读取存储媒体(non-transitory computer readable storage medium),其存储由处理器所执行的指令,以执行上述任何方法。在此部份所述方法的的另一实施方式可包括一种系统,该系统包括存储器与一或多个处理器,其可操作地执行存储于存储器中的指令,以执行上述任何方法。

依据许多实施方式,以上所述或参考的任何数据结构与代码(code)存储在计算机可读取存储媒体上,该计算机可读取存储媒体可以是能存储代码和/或数据的任何装置或媒体,以供计算机系统使用。但这不限于包括易失性存储器(volatile memory)、非易失性存储器(non-volatile memory)、专用集成电路(ASIC,application-specific integratedcircuit)、现场可程序逻辑门阵列(FPGA,field-programmable gate array)、磁(magnetic)与光学存储装置(例如硬盘、磁带(magnetic tape)、CD(光盘))、DVD(数字多功能激光视盘(digital versatile disc)或数字激光视盘)或者是其他能够存储现在已知或日后发展的计算机可读取媒体的介质。相较于图14所绘示的计算机系统,计算机系统1200的许多其他的配置可能具有更多或更少元件。

瘦平台(thin platform)推论引擎可包括:处理器(例如像是微型计算机(microcomputer)的CPU 1272),其可选地与存储已训练输出模型的参数的深度学习处理器1278进行耦接;以及输入与输出端口(port),其用于接收输入且发送由执行模型所产生的输出。例如,处理器可包括LINUX核心(kernel)与ANN编程,其利用存储在处理器与深度学习处理器所存取的非瞬时存储器中的可执行(executable)指令来实施,并且在推论操作期间使用模型参数。

如本文所述,由推论引擎所使用或包括的装置包括:逻辑,其用于对输入数据与已训练模型实施ANN操作,其中该模型包括一组模型参数;以及存储器,其存储可操作地耦接至该逻辑的已训练模型,具有利用训练算法计算出的数值的已训练参数集(set ofparameters)补偿如本文所述的脏训练集。

图15绘示配置于推论引擎的本技术应用,该推论引擎适用于配置在像是物联网(internet-of-things)模型的“边缘装置”的领域中。例如,可配置于实施如图14所述的训练服务器600,以产生用于相机601、智能型手机(smart phone)602与汽车603的ANN的已训练存储模型集(trained sets of memory models)。此外,如图2A和图2B所述,已训练模型可应用于半导体制造(semiconductor manufacturing)中。

本文包括了多个流程图,其说明了用于清洗已训练数据集以及用于已训练神经网络的逻辑。该逻辑可使用处理器来实施,该处理器使用存储于处理器所存取的存储器与由处理器、包含现场可程序集成电路的专用逻辑硬件以及由专用逻辑硬件与计算机编程的组合所执行的存储器的计算机编程来进行编程。对于本文中的所有流程图,应当理解的是,在不影响所实现功能的情况下,可组合、并行执行或以不同顺序执行许多步骤。在一些情况下,正如读者会理解的那样,仅在进行某些其他更改的情况下,步骤的重新安排也可以获得相同的结果。在其他情况下,如读者所理解的,仅在还要进行一些其他改变时,步骤的重新安排才能达成相同结果。此外,应当理解,本文的流程图仅示出了与本发明理解有关的步骤;并且应当理解,用于完成其他功能的许多额外步骤可以在所示的那些步骤之前、之后和之间来执行。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于训练模型的方法、装置、设备以及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!