首页> 中国专利> 包括由分布式轻量级实时边缘引擎支持的主引擎的分层机器学习架构

包括由分布式轻量级实时边缘引擎支持的主引擎的分层机器学习架构

摘要

一种系统和方法涉及实现主人工智能(AI)引擎的处理装置,用于从一个或多个实时AI引擎中的每一个接收机器学习算法、与机器学习算法相关联的参数以及用于训练参数的特征,接收用于训练与机器学习算法相关联的参数的标记数据,并基于组合规则,使用从一个或多个实时AI引擎中的每一个接收到的特征、机器学习算法和与机器学习算法相关联的参数来构建主机器学习模型。

著录项

  • 公开/公告号CN113841168A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 美国元初智能公司;

    申请/专利号CN202080036311.7

  • 发明设计人 吴天昊;

    申请日2020-03-31

  • 分类号G06N20/10(20190101);G06F40/14(20200101);G06N3/08(20060101);G06N3/04(20060101);G06K9/62(20060101);G06K9/00(20060101);

  • 代理机构11280 北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 美国新泽西州

  • 入库时间 2023-06-19 13:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-12

    实质审查的生效 IPC(主分类):G06N20/10 专利申请号:2020800363117 申请日:20200331

    实质审查的生效

说明书

本申请要求2019年4月3日提交的美国临时申请No.62/828,733、2019年4月4日提交的美国临时申请No.62/829,567和2019年4月9日提交的美国临时申请No.62/831,539的权益,其内容整体并入本文中。

技术领域

本公开涉及机器学习,尤其涉及一种包括由分布式实时轻量级边缘机器学习引擎支持的主机器学习引擎的分层机器学习架构。

背景技术

机器学习模型可以包括用于从输入产生输出的参数化计算机单元。一类机器学习模型可以包括不同类型的神经网络。每个神经网络模型可以包括用于从输入数据计算输出结果的多个计算单元层。用于接收输入数据的层通常被称为输入层,以及用于产生输出结果的层通常被称为输出层。输入层和输出层之间的一个或多个层通常被称为隐藏层。隐藏层中的每一层可包括具有用于计算中间结果的参数的计算单元(线性或非线性计算单元),所述中间结果可确定前向传播中的最终结果(即,从输入层传播到输出层的计算)。

可以在模型训练步骤中确定与每个计算单元相关联的参数。在训练步骤中使用训练数据来确定这些参数。训练数据可以包括成对的测试输入数据及其相应的理想输出。在训练步骤中,处理装置可以被编程为在前向传播中执行神经网络以从第一测试输入数据计算第一输出,其中神经网络可以包括分配有初始参数的计算单元。处理装置可以进一步计算目标输出和第一输出之间的差,并且可以基于从输出层传播到输入层的反向传播的差来调整参数。训练步骤可以包括使用多个训练数据的前向传播和反向传播的多次迭代。因此,机器学习的训练可能需要很长时间,并且需要大的训练数据集才能得出可以在应用中使用的训练模型。

附图说明

将从下面给出的详细描述和从本公开的各种实施例的附图更全面地理解本公开。然而,不应认为附图将本公开内容限制于特定实施例,而仅用于解释和理解。

图1示出了根据本公开的实施方式的分层机器学习系统。

图2示出了根据本公开的实施方式的包括用于在实时AI引擎和主AI引擎之间协作的组件的分层机器学习系统。

图3示出了根据本公开的实施方式的实现实时AI引擎的系统。

图4示出了可以用作测试数据的文档。

图5示出了根据本公开的实施方式的包括机器标记的标识的文档。

图6示出了根据本公开的实施方式的用于在实时AI引擎中训练机器学习模型的方法的流程图。

图7示出了根据本公开的实施方式的用于实时机器学习模型的方法的流程图。

图8示出了根据本公开的实施方式的分层机器学习的方法的流程图。

图9描绘了根据本公开的一个或多个方面操作的计算机系统的框图。

具体实施方式

为了克服机器学习中的上述技术问题,本公开的实施方式提供了一种分层机器学习架构,其包括由一个或多个实时轻量级边缘机器学习引擎(称为“实时AI引擎”)支持的主机器学习引擎(称为“主AI引擎”)。实时AI引擎可以在以有限的计算资源与人类主题专家(称为“操作员”)交互的计算机硬件中实现。因此,每个实时AI引擎都可以使用一小的样本集来训练机器学习模型的各个方面,并将机器学习模型的这些方面提供给主AI引擎。提供给主AI引擎的方面可以包括一个或多个实时AI引擎所依赖的候选特征、一个或多个实时AI引擎采用的候选机器学习算法、以及与候选机器学习算法相关联并由一个或多个实时AI引擎学习的候选参数值。主AI引擎可以进一步将实时AI引擎提供的所有这些方面聚合到一个分层机器学习模型中。主AI引擎可以进一步优化分层机器学习模型,并向实时AI引擎中的每一个提供反馈,以进一步改进实时AI引擎的性能,以进一步提升实时AI引擎性能,使其更通用、更稳健以及更准确。

本公开的实施方式允许操作员和实时AI引擎彼此交互以训练实时AI引擎,然后将实时AI引擎的方面提供给主引擎以构建分层机器学习模型,以便可以在短时间内使用很少的标记样本并消耗更少的计算资源来构建高质量的机器学习模型。

本公开的实施方式可以部署在文档处理的实际应用中。文档处理软件应用当由处理装置执行时,可以接收文档(例如,表格)并训练一个或多个实时AI引擎以识别字段(例如,姓名、地址、发票编号、支付金额)以及在这些字段中指定的值。该文档可以用任何合适的语言(例如,英语、法语、中文、日语)和任何合适的格式(例如,财务表格、商业表格、政府表格、医疗表格、法律表格)准备,而字段和值取决于语言,可以是字母数字字符串(例如,英语)或字符(例如,中文)。文档处理软件应用可以从相应的字段中提取这些值,并用这些提取的值填充数据库。以这种方式,可以将文档准确且快速地输入到数据库中,而不会产生与人类操作员相关联的大量成本和错误。

用于文档处理的实时AI引擎可以是线性回归、逻辑回归、决策树、支持向量机(SVM)、贝叶斯、梯度提升机(例如,lightGBM)或神经网络模型。实时AI引擎的训练可以包括基于输入数据选择机器学习算法。实时AI引擎可以用起始参数值(例如,默认参数值)进行初始化,这些参数值可以在模型训练阶段迭代地调整为最佳参数值。可以使用经过适当训练的实时AI引擎来识别字段并在识别阶段提取与字段相关联的值。此外,经过适当训练的实时AI引擎可以为主AI引擎提供不同的方面。

本公开的实施方式涉及用于使用非常少的样本实时地训练实时AI引擎的系统和方法。在某些应用中,操作员(例如,充当专家)可能会在循环中确定在训练过程期间生成的输出是否对应于基于先前生成的标签或基于操作员的知识的测试数据。通过将实时AI引擎生成的输出与目标输出进行比较,操作员可以确定生成的输出是正结果(即生成的输出与目标输出匹配)还是负结果(即生成的输出与目标输出不匹配)。基于该确定,操作员可以使用用户接口将输出标记为对应于该测试输入数据或不对应于该测试输入数据。在一些实施方式中,操作员可以充当专家,从而消除了提前创建训练数据集的需要。相反,操作员可以在实时AI引擎的训练期间在循环中提供专家知识。

实时AI引擎的训练过程可以在多个步骤中执行。例如,在文档处理应用的训练阶段开始时,可以使用机器学习模型来生成关于测试数据集的初始结果。响应于操作员针对用户接口上的数据样本的每个标记动作,执行实时训练程序的处理器可以开始标记训练数据中的数据样本(例如,单词、句子)。该动作可以指示肯定标记(例如,选择文本词)或否定标记(例如,取消选择或移除文本词)。基于数据样本的标记,处理装置可以通过在最小化整体错误率的方向上调整底层机器学习算法的参数来训练实时AI引擎。在一个实施方式中,实时AI引擎的所有参数的每次更新所需的时间对于学习步骤中的每个引擎可以小于1秒或2秒。这允许处理装置在用户接口上呈现更新的中间结果,而不会给操作员带来明显的延迟。中间学习结果可以呈现在用户接口上,以便操作员可以实时观察模型的结果,并确定实时AI引擎在哪里是正确的,实时AI引擎在哪里导致更多错误。基于中间学习结果,操作员可以再次选择正确答案并取消选择错误以进行校正,并且处理装置可以基于实时训练过程中用户的反馈来继续改进实时AI引擎。

图1示出了根据本公开的实施方式的分层机器学习系统100。系统100可以在独立计算机系统或在计算云中实现的联网计算资源上实现。参考图1,系统100可以包括一个或多个实时AI引擎101和与一个或多个实时AI引擎101协同工作的主AI引擎102。每个实时AI引擎可以是可以实时训练和运行的轻量级机器学习模型。在实时AI引擎的训练期间,人类操作员103可以位于循环中以提供专家知识来确定由实时AI引擎生成的输出是否正确。除了操作员103的训练之外,实时AI引擎101可以向主AI引擎102提供候选特征、候选算法和与候选算法相关联的候选参数值。主AI引擎102可以聚合候选特征、候选算法、以及与候选算法相关联的候选参数值,以基于规则确定最佳特征、算法和参数。主AI引擎102可以基于最佳特征、算法和参数来引起实时AI引擎的更新。因此,除了操作员辅助训练之外,实时AI引擎101的性能还可以通过主AI引擎102来进一步改进。

在一个实施方式中,实时AI引擎101可以被实现为嵌入在web浏览器接口中的程序。主AI引擎102可以是在实时AI引擎101的同一个计算机上实现的服务器程序。可替代地,主AI引擎102可以在远程计算机或通过网络(未示出)连接到运行实时AI引擎101的计算机的云中实现。

实时AI引擎101和主AI引擎102可以协同工作以产生经过训练的机器学习模型。图2示出了根据本公开的实施方式的分层机器学习系统200,其包括用于在实时AI引擎101和主AI引擎102之间协作的组件。参考图2,除了一个或多个实时AI引擎101和主AI引擎102之外,系统200可以包括数据收集器204、模型聚合器206、特征收集器208、算法收集器210和模型调度器214。

实时AI引擎101是轻量级边缘机器学习引擎,其可以用于训练轻量级机器学习模型。每个实时AI引擎101可以涉及操作员103(或主题专家(SME)),该操作员可以协助训练底层机器学习算法。实时AI引擎的详细实施方式将在后面结合图3提供。与实时AI引擎101相关联的底层机器学习算法可以彼此相同或不同。因此,可以同时训练实时AI引擎101以识别常见类型的实例或不同类型的实例。实时AI引擎101可以使用训练数据202(例如,文档数据)来训练底层机器学习算法。训练数据可以首先被转换成与数据相关联的特征。机器学习算法的训练可以包括基于操作员对训练数据的标记动作来调整机器学习算法的参数。因此,在操作员协助下的训练过程可以产生候选特征、候选算法和与算法相关的参数、以及操作员标记的数据(称为黄金数据)。

系统200还可以包括数据收集器204,其可以从实时AI引擎101收集操作员标记的数据。此外,数据收集器204可以将标记的数据存储在数据存储装置212中,该数据存储装置212又可以将标记的数据提供给主AI引擎102。系统200还可以包括模型聚合器206,其可以从实时AI引擎101收集模型相关信息。模型相关信息可以包括机器学习算法和相关参数以及用于训练机器学习算法的特征。特征收集器208可以将模型聚合器206提取的特征提供给主AI引擎102;算法收集器210可以向主AI引擎102提供由模型聚合器206提取的算法和它们的相应参数。

关于特定的机器学习任务(例如,识别发票上的发票号码),不同的实时AI引擎101可以采用各自的底层机器学习算法来解决机器学习任务。因此,每个实时AI引擎101可以使用独特的机器学习算法来捕获操作员的专家知识。实时AI引擎101然后可以将由底层机器学习算法学习的任务的各个方面提供给主AI引擎102以进行进一步处理。基于包括特征和机器学习算法以及相应参数的这些方面,主AI引擎102可以确定全局机器学习模型。全局机器学习模型的确定可以基于某些预先确定的规则。规则可以包括实时AI引擎101的加权组合,考虑标记数据和未标记数据。可替代地,规则可以包括根据某一标准选择实时AI引擎101的子集。这些标准可以基于诸如错误率、召回率、执行任务的时间或这些因素的不同组合等因素。可替代地,规则可以包括基于考虑这些因素的规则来断开某些实时AI引擎101。主AI引擎102可以通过模型调度器214基于所确定的特征和机器学习算法更新实时AI引擎。该更新可以是对标记数据的校正。

在主AI引擎102为手头的机器学习任务确定一组实时AI引擎后,主AI引擎102可以基于诸如共识策略、多数规则策略、或学习率策略的某一组合策略来组合该组AI引擎。可以迭代地重复该过程,直到主AI引擎102到达迭代训练过程的收敛点,从而产生用于主AI引擎102的全局机器学习模型。

训练过程的每次迭代可以生成主AI引擎102的一个版本。在一个实施方式中,不同版本的主AI引擎可以被组装216以生成可以在实际应用中使用而没有进一步由操作员干扰的生产模型218。

这样,分层基础设施组合了主AI引擎102和轻量级AI引擎101的能力,以通过不同的方法学习多个操作员的专业知识,得到最佳结果。分层机器学习架构比传统机器学习过程更有效,因为传统机器学习模型训练需要训练样本集中的大量标记数据,这可能需要数周或数月才能在单个数据库中准备好。数据标记过程是耗时的,标记数据的质量通常得不到保证(不同的人可能对同一数据标记不同,甚至同一个人对同一数据在不同的时间标记不同)。为许多机器学习项目标记足够准确的数据是非常困难的。此外,标记数据的主题专家(SME)或用户操作员可能对机器模型知之甚少。因此,一些标记数据可能对机器学习学习一个好的模型没有用。实时AI引擎101可以与SME交互以从特定SME学习知识。然而,实时AI引擎101本身不能将所有SME知识聚合在一起。单个实时AI引擎101没有暴露于足够的数据变化来学习综合模型。分层机器学习架构允许主AI引擎102在后端工作,通过从在边缘运行的实时AI引擎收集所有SME的知识,将从所有前端实时AI引擎接收的信息聚合成一个机器学习模型。

图3示出了根据本公开的实施方式的实现实时AI引擎的系统1。参考图3,系统1可以包括处理装置2、存储装置3和用户接口装置4,其中存储装置3和用户接口装置4通信地耦合到处理装置2。

处理装置2可以是硬件处理器,例如中央处理单元(CPU)、图形处理单元(GPU)或加速器电路。用户接口装置4可以包括显示器,例如台式机、膝上型电脑或智能电话的触摸屏。用户接口装置4还可以提供图形用户接口,用户可以使用诸如鼠标或触摸屏之类的输入装置与图形用户接口上呈现的元素交互。图形用户接口可以使用web浏览器、Java UI、C#UI等实现。为了简洁描述,图形用户接口也称为用户接口4。存储装置3可以是存储器装置、硬盘、或通过网络接口卡(未示出)连接到处理装置2的云存储装置。

处理装置2可以是可编程装置,其可以被编程以在用户接口装置上呈现用户接口4。用户接口4可以是图形用户接口(“GUI”),其允许用户使用输入装置(例如,键盘、鼠标和/或触摸屏)与其上的图形表示(例如,图标)交互。在训练阶段,处理装置2可以在用户接口4上呈现训练文档5和标识记录器6。训练文档5可以是任何合适类型的文档,例如MicrosoftWord文档、Microsoft Excel电子表格、Microsoft PowerPoint幻灯片、Google文档、Google表格、Google幻灯片、PDF、HTML、XML、纯文本(.txt)、电子邮件、呼叫中心对话、聊天机器人对话和JSON。文档本身可以是财务表格、商业表格、政府表格、医疗表格或法律表格。

图4示出了可以用作测试数据的文档400。如图4所示的文档400是发票,包括开票人信息字段402(例如姓名或公司名称、地址、电话号码)、收票人信息字段404(例如姓名或公司名称、地址、电话号码、电子邮件地址)、发票信息字段406(例如,金融机构名称、发票标识、日期)、付款方式字段408(例如,付款方式、金额)和项目字段410(例如,项目、项目金额)。在该示例中,这些字段402-410可以包括被称为标识(token)的单词、数字和字母数字字符串。这些标识显示在方框内。在其他应用中,标识可以是不同语言的句子或段落。操作员可以在用户接口中创建他们自己的不同标签。他们可以从用户接口命名他们的标签以及与标签相关的热键。不同的标签可以用不同的颜色表示。不同标签中的内容以相关颜色加阴影。

参考图3,处理装置2还可以呈现标识记录器6,用于捕获应用于文档5中的标识的用户选择(标记为肯定)或取消选择(标记为否定)动作。响应于接收文档5,处理装置2可以预处理文档5。预处理可以包括生成与文档相关联的文档对象模型(DOM)树。DOM树是一种跨平台、与语言无关的树结构,其中树的每个节点都是代表文档5的一部分的对象。文档5的部分可以是文档5中的句子或段落。处理装置2然后可以执行标识化器以从DOM树中的句子或段落中分离出标识。每个标识都是文档中的一个基本单元,其可以被机器学习模型检测到。因此,标识可以是单词、数字或字母数字字符串。一旦标识被分离出,标识可以与文档一起呈现在用户接口上。例如,如图4所示,每个标识都与围绕标识的框一起呈现。

操作员可以在训练过程期间使用标识记录器6来标记标识。标识记录器6可以是运行在处理装置2上的程序,用于捕获操作员的选择/取消选择动作,并将这些动作记录在相应的DOM树中作为正标签或负标签。在训练过程之前,未标记的文档和关联的DOM树7可以存储在存储装置3中,并且标记的文档和关联的DOM树8也可以存储在存储装置3中。

操作员可以在循环中辅助机器学习模型的训练。在一个实施方式中,处理装置2可以执行实时AI引擎300。为此,处理装置2可以响应于接收到用于训练目的的文档,从与文档相关联的DOM树中识别标识(302);在用户接口上呈现包括标识的文档(304);基于在用户接口上的用户动作将DOM树中的标识标记为强正、强负、或弱正或弱负标识之一中的一者(306);并提供包括标记的标识的DOM树作为输入以训练机器学习模型(308)。

以下部分详细描述实时AI引擎300的操作。在302,响应于接收到文档,处理装置2可以从与文档相关联的DOM树中识别标识。如上所述,处理装置102可以接收用于训练目的的文档。在预处理步骤中,DOM树已经为文档生成了DOM树。DOM树可以包括节点,其包含包括标识的句子和/或段落。

在304,处理装置2可以在用户接口4上呈现包括标识的文档。如图4所示,处理装置2可以在用户接口4上呈现文档并且使用框架方框预先标记标识。将这些标记的标识呈现给操作员以采取进一步的训练动作。

在306,处理装置2可以基于用户接口4上的用户动作将DOM树中的标识标记为强正、强负、或弱正或弱负标识之一中的一者。为了改进机器学习模型训练的速度和准确度,本公开的实施方式可以为标识提供多级标签。与二进制标签相比,实施方式可以提供三个或四个级别的标签。多个级别可以包括强正、强负、弱正和弱负标识。例如,三级标签方案可以包括强正级别、强负级别以及弱正或弱负级别之一。四级标签方案可以包括强正级别、强负级别、弱正级别和弱负级别。

操作员可以使用用户接口4来标记其上呈现的训练文档中的标识。处理装置2可以执行记录器6以在与文档相关联的DOM树7中记录操作员的标签。响应于操作员选择(或确认)标识的动作,记录器6可以在DOM树7中将所选择的标识标记为强正。通常,操作员可以将标识、句子或段落标记为强正。处理装置2还可以基于强正标识来预测弱负标识。在一个实施方式中,处理装置2可以确定围绕标记的强正标识的未标记的N个标识(例如,N个最近邻居,其中N大于1)并且将这N个标识标记为弱负标识,因为操作员在标记过程中未选择它们。因此,弱负标识意味着基于操作员的不作为隐式确定的潜在负标识。在一个实施方式中,与正标识相同但未标记的标识也可以被视为弱负标识。训练过程可以在一次或多次迭代中逐步执行。在每次迭代中,前一次迭代期间生成的中间机器学习模型可用于标记文档中的标识。这些与标识相关联的机器生成的标签可能被操作员确定为错误(例如,基于操作员的知识)。响应于操作员对机器生成的标识标签的校正(例如,移除与标识相关联的标签),处理装置2可以将DOM树中的标识标记为强负标识。处理装置2可以将其机器生成的标签没有被操作员校正的那些标识标记为弱正标识(或潜在正标识)。应当注意的是,通过标记过程,只要操作员标记更多的标识并校正机器学习模型的错误,处理装置2就可以按照训练步骤动态更新DOM树中的强正、强负、弱正、以及弱负标识指定。

在308,处理装置2可以提供包括标记的标识的DOM树以训练机器学习模型。训练过程可以包括基于包括DOM树的训练数据集更新机器学习模型的参数。参数的更新可以基于最小化输出中的误差的梯度下降算法。在一个实施方式中,可以针对DOM树的每次更新来调用机器学习模型的参数的更新。DOM树的更新可能是由一个或多个用户标签动作引起的。这样,可以实时训练机器学习模型。

在一个实施方式中,强(正和负)和弱(正和负)可以与训练过程中的不同权重相关联。因此,不同级别的标识可能会不同地影响训练过程。

机器学习模型的输入可以是从不同级别(强正、强负、弱正、弱负)的标识中提取的特征。特征是从标识派生的属性值。本公开的实施方式可以提供两种类型的特征,包括格式特征和自然语言处理(NLP)特征。与标识相关联的格式特征可以包括DOM树中的标识位置、DOM树中的祖先(例如父代)、兄弟标识(例如,DOM树中具有相同父代的标识)、标识单元、标识线(token line)、标识行(token row)、标识列、标记标题行、标记标题列、包含标识的句子、包含标识的段落等。NLP特征可以包括与标识关联的n-gram(n-gram指的是来自给定标识的n个项的连续序列,其中项可以是音素、音节、字母或基对)、标识大写、标识字符可重复模式、标识正则表达式、标识名称实体识别(NER)(域字典)等。本公开的实施方式可以提供特征提取器(未示出),当由处理装置2执行时,该特征提取器可以提取与标识相关联的格式特征和NLP特征,并且在实时模型训练中将这些提取的特征作为输入特征向量提供到机器学习模型。基于标识级别,输入特征向量可以与不同的权重相关联。例如,强正标识的特征向量可能与较大的正权重相关联;弱正标识的特征向量可能与较小的正权重相关联;强负标识的特征向量可能与较大的负权重相关联;弱负标识的特征向量可能与较小的负权重相关联。这样,机器学习模型的训练可以更准确,并且收敛更快以实现实时性能。

除了正和负标识之外,还有很多标识在文档中没有被指定为正或负。这些未标记的标识从训练中被忽略,从而进一步降低模型训练的复杂性并加快训练(或学习)过程。可以从标记的标识生成超过10000个特征。可以使用特征选择过程来减少特征空间。在特征选择之后,特征的数量可能会减少到1000左右,而不会丢失有意义的特征。所有具有剩余特征的正和负标识将被转换为稀疏矩阵,其中每一行是一个实例,每一列是一个特征。表1示出了一个示例表,其中显示了标识及其相应的特征权重。

表1

其中,强正标识的权重为2,弱正标识的权重为1,强负标识的权重为-2,以及弱负标识的权重为-1。

本公开的实施方式可以采用线性模型来进一步减少模型训练的时间以实现操作员和系统之间的实时交互。实施方式可以基于训练数据和具有一组参数的训练模型自动选择合适的算法。之后,机器学习模型可以在很短的时间内(例如,不到一秒)进行训练。可以将经过训练的模型连同与文档相关联的DOM树中的所有正和负标识一起发送并存储在存储装置3中的数据记录中。实施方式还可以向存储在存储装置3中的机器学习模型提供检查点。检查点可用于恢复机器学习模型并在模型训练期间发生意外数据丢失的情况下继续训练。在训练期间,可以将中间机器学习模型应用于当前文档,以显示基于中间机器学习模型生成的中间结果。操作员可以使用用户接口4和记录器6来确认(强正)和/或校正(强负)中间结果。相邻的预测标识可以合并为一个实体,中间允许某些不可预测的标识。机器预测的实体可以以稍微不同的颜色突出显示,在实体下的每个标识附近(例如,在其右上角)带有“X”标记,以通知操作员进行确认或校正。

图5示出了根据本公开的一个实施方式的包括机器标记的标识的文档500。如图5所示,用户接口中呈现的文档500可以包括由中间机器学习模型用“X”标记的标识。操作员可以通过单击红色“X”将其标记为强负值,或将标识标记为不同的标签(该标签成为强正值)来对机器预测的标识进行校正。如果机器预测的标识是正确的,则用户不需要改变它。这些未改变的机器预测的标识将成为模型训练的下一次迭代的弱正值。例如,用户点击标识“1990”右上角上的红色“X”以指示它不是放大部分502中所示的发票号码。

在该操作员确认或校正后,处理装置2可以运行实时AI引擎300以实时更新机器学习模型的参数,并且新模型的结果将在用户接口4上显示为文档5。正确标记一个文档后,用户可以加载下一个(或上一个)文档以继续训练机器学习模型。经过训练的机器学习模型可用于生成最终提取的值(例如,发票号码“po960525114272”)并将该值存储在存储装置3中的数据库中。此外,操作员可以加载额外的文档以验证经过训练的机器学习模型的质量,或者生成更多的训练数据。训练模型的文档越多,模型越好,并且在标记新数据时需要操作员的影响越小。

图6示出了根据本公开的实施方式的用于实时训练机器学习模型的方法600的流程图。方法600可由处理装置执行,该处理装置可包括硬件(例如,电路、专用逻辑)、计算机可读指令(例如,在通用计算机系统或专用机器上运行)或两者的组合。方法600及其单独的功能、例程、子例程或操作中的每一个可由执行该方法的计算机装置的一个或多个处理器来执行。在某些实施方式中,方法600可以由单个处理线程执行。可替代地,方法600可以由两个或更多个处理线程执行,每个线程执行该方法的一个或多个单独的功能、例程、子例程或操作。

为了便于解释,本公开的方法被描绘和描述为一系列动作。然而,根据本公开的动作可以以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,可能不需要所有示出的动作来实现根据所公开的主题的方法。此外,本领域技术人员将明白和理解,这些方法可以替代地经由状态图或事件表示为一系列相互关联的状态。此外,应当理解,本说明书中公开的方法能够存储在制品上以促进将这些方法传输和转移到计算装置。本文使用的术语“制品”旨在涵盖可从任何计算机可读装置或存储介质访问的计算机程序。在一个实施方式中,方法600可以由执行如图3所示的实时AI引擎300的处理装置2来执行。

如图6所示,响应于接收到文档,处理装置2可以在602处从与文档相关联的DOM树中识别标识。

在604处,处理装置2可以在用户接口上呈现包括标识的文档。

在606处,处理装置2可以基于用户接口上的用户动作将DOM树中的标识标记为强正、强负、或者弱正或弱负标识之一中的一者。

在608处,处理装置2可以提供包括标记的标识的DOM树以训练机器学习模型。

图7示出了根据本公开的实施方式的用于实时机器学习模型的方法700的流程图。方法700可以在处理逻辑(例如,如图3所示的处理装置2)上实现并由其执行。

如图7所示,方法700可以包括以下操作。在702处,处理逻辑可以接收文档作为训练数据。文档可以是某种格式的输入文件(例如,.docx、.pdf、.txt、.html、.xml、.xlsx等)。该文档可以由专家预先标记以用于模型训练,也可以基于操作员的知识作为训练数据提供。实施方式可以包括格式转换以转换为通用格式(例如,.html)。

在704处,处理逻辑可以解析文档以生成文档结构。文档结构可以是基本类似于DOM树的内部数据对象。然后,处理逻辑可以检测段落和/或句子以进一步标识化文档。

句子可以是与DOM树节点相关联的文本,也可以是由逗号、句号等特殊标点分隔的文本(英文和中文)。实施方式还可以包括动态句子检测器,它可以通过计算实体内部和实体外部之间的边界标识熵来检测用户标记实体的边界。当熵小于阈值T时,标识可以识别句子的开始/结束,其中阈值T可以指定为1/log(N+1),其中N是标识的数量。

可以基于输入文档间距样式来检测段落。根据像素测量的彼此接近的字符将被组合在一起作为前段。使用一组用于生成词嵌入的相关模型(例如,word2vec包),将前段根据其含义的相似性进行合并以形成一个段落。

在706处,处理逻辑可以对文档结构进行标识化以从句子和/或段落中分离出标识。每个标识都是文档中的一个基本单元,可以被机器学习模型检测到。因此,标识可以是单词、数字或字母数字字符串。一旦标识被分离出,标识可以与文档一起呈现在用户接口上。

通用标识化器被定义如下:对于诸如英语、西班牙语等的西方语言,实施方式可以使用泛空格(white space)(\t、\n、空格、\r)和将字符串分隔为标识的标点符号。每个标点符号本身也是一个标识,泛空格将被忽略。空标识也将被忽略。对于诸如中文、日语、韩语等东方语言,实施方式可使用每个单个字符作为标识。泛空格将被忽略。

在708处,处理逻辑可以基于操作员在用户接口上施加的选择动作来确定强正标识和强负标识。如上所述,实时训练可以包括多次迭代,每次迭代可以生成中间模型,其产生呈现在用户接口上的中间标识标签。操作员可以在用户接口中创建自己的不同标签。他们可以从用户接口命名他们的标签以及与标签相关的热键。不同的标签以不同的颜色表示。不同标签中的内容以相关颜色加阴影。

在创建不同的标签之后,操作员能够通过鼠标右键点击以及用户接口中的热键通过弹出菜单来突出与不同标签相关的内容。操作员可以通过点击每个单词左上角的红色“X”以及在所选择的标识上按压空格按钮来移除错误的预测。UI接口将记录操作员的行为并且模型将被更新。所选择的标识被记录为强正标识,并且所移除的标识被记录为强负标识。更新后的模型将用于由每个行为进行更新预测。

在710处,处理逻辑可以进一步预测弱正标识和弱负标识。弱正标识可以是那些模型生成的正标识,操作员对其不采取动作。处理逻辑能够从识别出的强正标识(称为黄金数据)中预测负样本。此外,处理逻辑会忽略不相关的标识。相比之下,传统机器学习模型的训练使用所有非正标识作为负标识。通过提供多个级别(至少三个)标识并忽略不相关的标识,处理逻辑能够训练机器学习模型以更少的标记数据和更快的速度达到目标准确度。

在典型的机器学习模型中,只有正负指标用于模型训练。然而,本公开的实施方式提供强和弱正以及强和弱负。在机器学习模型的训练期间,不同的指标可能与不同的权重相关联。权重可以由数据确定。通过实现强、弱指标,机器学习模型不仅可以使用操作员的特定输入(作为强正/负),还可以使用自己的估计(作为弱正/负)来更快完成训练,从而以更少的计算能力实现更高的准确度。

在712处,处理逻辑可以为每个标记的标识生成特征,实时AI引擎可以自动生成自然语言处理特征。与需要数据科学家手动选择NLP特征的常见机器学习模型相比,实时训练应用的实施方式能够直接从数据中生成特征,而无需用户干预。所有这些特征对于任何NLP应用都是通用的。NLP特征可以包括标识特征、线(line)特征、表格特征、段落特征和域知识特征。标识特征可以包括标识文本、N-gram、标识大小写样式、标识是否是数字、标识位数(标识中的数字[0-9]有多少)、左N个标识、右N个标识、在另一个标识文本的左侧、在另一个标识文本的右侧。线特征可以包括线开始标识、线结束标识以及线是否包含标识。表格特征可以包括单元格开始标识、单元格结束标识、单元格包含标识、左单元格开始标识、左单元格结束标识、左单元格包含标识、右单元格开始标识、右单元格结束标识、右单元格包含标识、上单元格开始标识、上单元格结束标识、上单元格包含标识、下单元格开始标识、下单元格结束标识、下单元格包含标识、列中的第一个单元格(表头)开始标识、列中的第一个单元格(表头)结束标识、列中的第一个单元格(表头)包含标识、行中的第一个单元格(表头)开始标识、行中的第一个单元格(表头)结束标识、行中的第一个单元格(表头)包含标识、列号和行号。段落特征可以包括段落开始标识、段落结束标识、下一段开始标识、下一段结束标识、上一段开始标识、上一段结束标识和头标识。域知识特征可以包括任何名称实体列表(例如,美国的州、公司名称等)和任何正则表达式模式(例如,美国电话号码、美国邮政编码等)。所有特征都作为每个标识/线/单元格/段落的附加标签属性注入到内部文档结构(例如,DOM树对象)中。

在714处,处理逻辑可以减少特征空间以进一步加速训练过程。通过在712处的自动特征生成,可以为每个文档生成包含超过10000个特征的特征空间。本公开的实施方式还可以包括特征选择步骤,可以自动快速地选择重要特征。在特征选择过程之后,特征空间中的特征总数可以减少到1000左右,而不会丢失有意义的特征。特征选择步骤可以包括以下要素:在N个标记的训练文档中可以识别少于N个标识的特征将被忽略,因为这些特征很可能过度拟合机器学习模型;与任何强正或任何强负无关的特征将被忽略;具有完全相同分布的特征将被组合成一个特征。在一个实施方式中,特征选择取决于数据集。在操作员不断标记数据的同时,特征选择步骤所选择的特征可能会不断更新。

在716处,处理逻辑可以将具有缩减特征空间中的关联特征的每个标识转换成训练数据实例。对于特定的标识,文档中可能有多个实例。

在718处,处理逻辑可以选择用于训练的机器学习算法。在特征生成和选择程序之后,处理逻辑自然会为每种唯一类型的数据选择最合适的ML算法。为了使学习过程足够快以便操作员实时交互,使用了以下轻量级候选算法:线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯和LightGBM。算法的选择和模型训练都可以在很短的时间内完成。

在720处,处理逻辑可以在训练第一次开始时初始化所选择的机器学习模型的参数。初始化可以将缺省值分配给参数。

在722处,处理逻辑可以使用标记的标识来执行实时机器学习模型训练。训练过程可以包括根据某些规则更新机器学习模型的参数(例如,使用梯度下降算法来最小化输出中的错误)。训练过程可以生成经过训练的机器学习模型。

在724处,处理逻辑可以可选地将经过训练的机器学习模型存储在存储装置中并且创建用于经过训练的模型的检查点以在意外数据丢失的情况下恢复。

在726处,处理逻辑可以将训练机器学习数据应用于文档中可用的所有标识。这可以生成应用经过训练的机器学习模型的检测结果。

在728处,处理逻辑可以可选地基于规则合并相邻的标识和/或句子。此时,操作员可以确定经过训练的模型可能需要进一步训练或改进。如果是,则处理逻辑可以使用相同的文档或新的文档重复从步骤7508开始的过程。否则,在730处,处理逻辑可以在用户接口上呈现机器生成的检测结果。

在一个实施方式中,特征选择、算法选择、算法参数初始化和机器学习模型的训练都可以在单个线程中以在web浏览器中运行的JavaScript实现。所有这些步骤都经过优化,因此计算可以利用计算机在web浏览器内以仅运行web浏览器的最小硬件资源执行。不需要额外的计算能力。后台服务器用于跟踪实时机器学习模型训练的检查点,因此不会在web浏览器之外进行模型训练。这种优化使实时机器学习模型几乎可以在支持Web浏览器的任何计算装置上工作。边缘计算设计允许实时机器学习能够快速部署在大型组织中,无需额外的系统设置/安装,并且它是跨平台的(适用于Windows/Linux/Mac等)。

本公开的实施方式可以比操作员在单个文档中标记的内容学习得更多。该模型可以检测与同一标签相关的不同内容,即使相同的内容之前没有被用户标记过。对于每个标签,用户不需要手动标记所有情况。相反,该模型能够基于先前标记的数据(例如,强正标识和强负标识)、上下文信息、NLP信息、文件格式信息等进行预测。因此,操作员只需要标记很少的样本。训练应用可以非常快速地从操作员那里学习知识。例如,发票日期可以采用不同的格式,例如“January 1,2019”、“Jan 1,2019”、“2019-01-01”,并带有不同的前缀关键字,例如“created”、“invoice date”、“date”、“Inv Date”等。在这种情况下,模型不需要对所有的变化进行训练,从而提高模型训练的速度。

用户接口可以向由经过训练的机器学习模型生成的结果提供实时反馈。实施方式可以为每个操作员在用户接口(例如,web浏览器)上的动作给出实时反馈。例如,一旦操作员突出显示某些实体,在几秒钟内,机器学习模型就会被学习,并且该模型会自动应用于该文档上的所有标识。由机器学习模型识别的实体将被突出显示。因此,可以直接从用户接口观察预测并立即由操作员校正。一旦操作员突出显示新内容并标记它们(或取消对错误预测的突出显示),记录器就可以记录动作,并且模型将被更新。更新后的模型将用于进行新的预测。可以在操作员的操作后立即从用户接口观察到新的预测。

实施方式还可以允许直接在本地个人机器上运行机器学习模型的能力。不仅训练可以在本地web浏览器中进行,在许多看不见的数据上学习到的AI模型的运行也可以在操作员的本地web浏览器中进行。虽然传统的机器学习需要在云或超级计算机上的巨大计算能力来应用学习到的机器学习模型,但本公开的实施方式需要非常低的计算能力来应用模型。一台拥有超过1核CPU的个人笔记本电脑就足以运行实时机器学习模型。它可以在本地个人机器上运行,同时仍能高速生成输出。机器学习模型在本地web浏览器中的应用可以通过启动多个浏览器选项卡并行执行。

与手动标记相比,实时机器学习的实施方式可以根据操作员指定的标签更快地标记不同数据格式,并具有与人类操作员基本一致的准确度。例如,对于具有10个标签的文档,用户可能需要5分钟才能进行标记。实时机器学习可以在几秒钟内完成工作。

本公开中描述的实时机器学习模型需要非常少的强正标识来训练,对于特定内容格式通常需要10-20个样本。与需要大量数据和数周甚至数月才能训练的传统机器学习模型相比,实施方式可以在10分钟内达到相同的准确度。

此外,实时机器学习可以实现操作员的最佳性能,因为它监测操作员做什么,并且实时机器学习使用所有的观察来微调模型。总的来说,实时机器学习可以达到90%以上的准确率和80%以上的召回率,远高于同等数据量的常规机器建模。

图8示出了根据本公开的实施方式的分层机器学习的方法800的流程图。方法800可以在处理逻辑(例如,如图9所示的一个或多个硬件处理装置)上实现并由其执行。

在802处,实现主AI引擎的处理逻辑可以从一个或多个实时AI引擎中的每一个接收机器学习算法、与机器学习算法相关联的参数以及用于训练参数的特征。如上所述,每个实时AI引擎可以包括轻量级机器学习算法,该算法可以由一组相应的参数指定,可以使用从标记数据生成的特征训练所述参数组。

在804处,处理逻辑可以接收用于训练与机器学习算法相关联的参数的标记数据。标记数据可以包括由位于每个实时AI引擎的训练循环中的由操作员标记的强正和强负标识(称为“黄金数据”)、以及可选的由实时AI引擎基于黄金数据推断出来的弱正和弱负标识。在一些实施方式中,处理逻辑还可以接收未被实时AI引擎标记的标识。处理逻辑可以将这些未被实时AI引擎标记的标识标记为弱负。

在806处,处理逻辑可以基于组合规则,使用从一个或多个实时AI引擎中的每一个接收到的特征、机器学习算法和与机器学习算法相关联的参数来构建主机器学习模型。主机器学习模型的构建可以包括通过加权平均组合规则来组合实时AI引擎。

在一个实施方式中,处理逻辑可以将从一个或多个实时AI引擎接收到的所有标记数据和未标记数据应用于一个或多个实时AI引擎中的每一个以计算相应分数,并且以相应分数与所有分数的总和之间的比率计算相应引擎权重值。特别地,可以如下计算与每个实时AI引擎相关联的引擎权重值。因为主AI引擎已经接收到所有的实时AI引擎信息,所以主AI引擎可以将实时AI引擎(例如rAI1)的机器学习算法应用于从其他实时AI引擎接收到的标记数据以生成相应的分数rAI1-F1。主AI引擎可以类似地计算每个实时AI引擎(rAI1-F1、rAI2-F1、...rAIn-F1)的对应分数,并计算所有这些分数的总和。与每个实时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模型的一个版本。当在生产中应用看不见的数据时,这些模型中的一些可以被一起组装成一个全局模型。根据客户的需求,可以有许多不同的方法来组装全局机器学习模型。可以在组装步骤中使用诸如AutoML包之类的AI工具,以基于客户项目需求确定给定数据集的最佳组装方法。例如,一些项目可能需要较高的精度,较低的召回率是可以接受的,而其他项目可能需要较高的召回率,但允许较低的精度。对于相同的候选模型,不同的组装方法可以重新平衡精度和召回率之间的权衡。主AI引擎中使用的一些组装规则可以是共识规则、多数规则或学习率规则。

下面描述共识规则。在共识规则中,当且仅当所有模型都同意一个实例的输出类时,则确定实例属于该类作为最终结果。否则,组装的模型输出未知(或不确定)。这种组装方法也可以应用于一个或一定数量的输出类,以改进这些特定类在最终结果中的精度。例如,对于包含类0和类1的二元分类问题。Master AI引擎只能在类0上应用该组装方法,因此只有当所有模型将该实例归类为类0时,实例才属于类0。否则,实例将被视为类1。这将提高类0的精度(与降低其召回率)。

另一种用途是提高类0和类1精度。当且仅当所有模型将一个实例分类为类0,其最终结果为类0。否则,将该实例放入第三类(未知类)。同理,当且仅当所有模型将一个实例分类为类1,其最终结果为类1,否则,将该实例放入未知类。通过这种方式,可以提高类0和类1精度。任何不明确的实例都可以放入未知类中,该类可以被传送给人类操作员以进一步确定。同样的方法也可以应用于多类分类问题。

多数规则如下所述。在多数规则中,对于一个实例,它的最终类由所有模型的分类结果中的大多数决定。如果多数票甚至超过一个类,则使用所有模型的聚合预测分数。具有最高聚合预测分数的类将是实例的最终类。例如,如果10个模型中有6个将其分类为类0,而其他4个模型将其分类为类1,则该实例的最终结果将为类0。在另一个示例中,如果10个模型中的5个(例如model1、model2、model5、model6和model10)将其分类为类0,其他5个模型(例如model3、model4、model7、model8和model9)将其分类为类1。为了打破平局,主AI引擎可以将model1、model2、model5、model6和model10的预测分数相加作为score0,将model3、model4、model7、model8和model9的预测分数相加作为score1。如果score0>score1,则实例具有类0,否则实例具有类1。

在一些情况下,并非所有模型都应该彼此平等对待。基于学习率的组装可以以时间序列采用模型并将学习率应用于每个模型。学习率是0到1之间的数字。例如,如果学习率为0.9,由主AI引擎学习的模型依次为model1、model2、model3、model4、model5。取决于项目更偏向旧数据还是新数据,最终模型将是Model_Fina101或Model_Fina102。Model_Fina101更偏向新数据,并且Model_Fina102更偏向旧数据,定义为:

Model_Fina101=(((model1*0.9+model2)*0.9+model3)*0.9+model4)*0.9+model5

Model_Final02=model1+0.9*(model2+*0.9*(model3+0.9*(model4+0.9*model5)))

本公开中描述的包括连接到主AI引擎的实时AI引擎的分层机器学习架构可以促进用于将用户、边缘上的实时AI引擎和作为主机的主AI引擎之间的交互集成地组合的过程。分层机器学习架构大大改进了传统机器学习训练过程的效率,同时仍然达到了很高的准确度。

分层机器学习架构可以提供但不限于以下优点:1.整个基础设施使最终模型更通用、更稳健和更准确;2.在边缘使用轻量级机器学习可以在短时间内生成海量的标记黄金数据;3.使用AutoML聚合预先存在的AI模型,这比传统的机器学习方法更快、更准确。该架构允许用户、实时AI和主AI相互交互,以便可以使用很少的计算资源在短时间内学习好的机器学习模型。还可以通过这些过程中的交互来改进模型。

图9描绘了根据本公开的一个或多个方面操作的计算机系统的框图。在各种说明性示例中,计算机系统900可以对应于图3的处理装置2。

在某些实施方式中,计算机系统900可以连接(例如,经由网络,诸如局域网(LAN)、内联网、外联网或因特网)到其他计算机系统。计算机系统900可以在客户端-服务器环境中以服务器或客户端计算机的能力操作,或者作为对等或分布式网络环境中的对等计算机操作。计算机系统900可以由个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或桥接器、或能够执行一组指令(顺序或其他)的任何装置提供,这些指令指定该装置要采取的动作。此外,术语“计算机”应包括单独或联合执行一组(或多组)指令以执行本文描述的任何一个或多个方法的计算机的任何集合。

在另一方面,计算机系统900可以包括处理装置902、易失性存储器904(例如随机存取存储器(RAM))、非易失性存储器906(例如只读存储器(ROM)或电可擦除可编程ROM(EEPROM))、以及数据存储装置916,它们可以经由总线908相互通信。

处理装置902可由一个或多个处理器提供,例如通用处理器(例如,复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其他类型的指令集的微处理器或实现几种类型的指令集的组合的微处理器)或专用处理器(例如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或网络处理器)。

计算机系统900还可以包括网络接口装置922。计算机系统900还可以包括视频显示单元910(例如,LCD)、字母数字输入装置912(例如,键盘)、光标控制装置914(例如,鼠标)和信号生成装置920。

数据存储装置916可以包括非暂时性计算机可读存储介质924,其上可以存储对本文描述的任何一种或多种方法或功能进行编码的指令926,包括图1的实时机器学习模型训练应用100或图8所示的分层机器学习的指令。

指令926还可以在由计算机系统900执行期间完全或部分地驻留在易失性存储器904和/或处理装置902内,因此,易失性存储器904和处理装置902也可以构成机器可读存储介质。

虽然计算机可读存储介质924在说明性示例中示出为单个介质,但术语“计算机可读存储介质”应包括存储一组或多组可执行指令的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”还应包括能够存储或编码一组由计算机执行的指令集的任何有形介质,该指令集使计算机执行本文所述的任何一个或多个方法。术语“计算机可读存储介质”应包括但不限于固态存储器、光介质和磁介质。

本文描述的方法、组件和特征可以由分立的硬件组件实现或者可以集成在诸如ASICS、FPGA、DSP或类似装置之类的其他硬件组件的功能中。此外,方法、组件和特征可以由硬件装置内的固件模块或功能电路来实现。此外,方法、组件和特征可以在硬件装置和计算机程序组件的任何组合中或在计算机程序中实现。

除非另有特别说明,诸如“接收”、“关联”、“确定”、“更新”等术语是指由计算机系统执行或实现的动作和过程,其将表示为计算机系统寄存器和存储器内的物理(电子)量的数据操作和转换为类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示装置内的物理量的其他数据。此外,本文所使用的术语“第一”、“第二”、“第三”、“第四”等意在作为区分不同元件的标签,并且根据它们的数字指定可能不具有顺序含义。

本文描述的示例还涉及用于执行本文描述的方法的设备。该设备可以被专门构造用于执行本文描述的方法,或者它可以包括由存储在计算机系统中的计算机程序选择性地编程的通用计算机系统。这种计算机程序可以存储在计算机可读的有形存储介质中。

本文描述的方法和说明性示例与任何特定计算机或其他设备没有固有的相关性。可以根据本文描述的教导使用各种通用系统,或者构造更专门的设备来执行方法300和/或其单独的功能、例程、子例程或操作中的每一个可以证明是方便的。用于各种这些系统的结构的示例在以上描述中阐述。

以上描述旨在是说明性的,而不是限制性的。尽管已经参考特定说明性示例和实施方式描述了本公开,但是应当认识到,本公开不限于所描述的示例和实施方式。本公开的范围应当参考以下权利要求以及权利要求所授权的等效物的全部范围来确定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号