机器学习系统中的自动问题评估的制作方法

文档序号:15104765发布日期:2018-08-04 16:36阅读:196来源:国知局

计算系统和相关联的网络已经彻底改变了人类工作、娱乐和通信的方式。计算系统在某种程度上几乎影响了我们生活的每个方面。当然,计算系统的正常功能依赖于提供适当功能的软件以及为软件提供适当输入和配置的数据。现在要求这些功能执行越来越复杂的任务。创建这些功能的一个常见策略是基于观察来构建近似。当输入到算法中的数据的数量和种类有限时,通常可以拟定该算法以便输出确定性输出。但是,在这个信息时代,随着更高级别的数据可用,拟定以最佳方式使用海量数据的确定性算法将变得更加困难。

数据的绝对量表示适用于模式识别以及基于识别的模式进行推断的数据模式的世界或宇宙。这个过程被称为“学习”,因为人类也通过观察模式并且从中做出推断来学习。例如,当孩子正在观察汽车时,孩子可能会通过听到对单词“汽车”的多个引用来了解汽车是什么。孩子针对语言的各个方面重复这个过程,从而允许孩子通过适当的模式识别来快速公式化和提高他们的母语技能。这种模式匹配学习发生在学习的各个方面。机器现在也具有他们可以观察的宇宙——数据宇宙,并且也可以根据模式匹配做出新的推断。

机器学习是一个复杂的技术领域。机器学习可能以各种各样的方式出错。例如,由于数据不适合推断,机器可能无法做出适当的推断。如果没有足够的数据来做出与推断有意义的关联,则可能会发生这种情况。换言之,数据不适合推断。在相反的极端情况下,可能存在过拟合问题,其中推断与数据模式太过字面相符。例如,可以基于归因于一部分数据模式而太重要来得出推断。此外,数据本身可能没有足够的分层,因此重要的模式不能平滑地分布在整个数据领域。

本文中要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。相反,仅提供该背景以说明可以实践本文中描述的一些实施例的一个示例性技术领域。



技术实现要素:

本文中描述的至少一些实施例涉及一种机器学习问题评估系统,其标识机器学习系统中的潜在机器学习问题,在机器学习系统中,学习代码评估数据以将估计的附加数据与数据模式进行关联。访问组件访问学习代码和/或学习代码所评估的数据。问题评估组件基于所访问的代码和/或数据来标识机器学习系统存在潜在问题。校正组件通过对机器学习系统执行计算机化动作来至少部分地自动校正机器学习系统的所标识的潜在问题。所标识的潜在问题可能影响机器学习系统的学习的质量(例如,结论的适当性)和/或性能(例如,速度)。

在一些实施例中,问题评估组件通过基于对学习代码的多个阶段中的至少一个的评估来标识潜在问题,来执行学习过程的动态分析。例如,问题评估组件可以在学习代码评估每段数据之后评估学习的状态。校正组件执行的校正可以完全自动执行,或者可以在用户批准之后自动执行。校正的示例包括例如准备数据,分层数据,调节或创建数据的分割,替换或调节学习代码,等等。

由于所涉及的大量数据以及学习代码的潜在复杂性,通过学习代码和数据来手动分类以标识机器学习的潜在问题的任务是困难的。这可能会导致错误的结论(即使在广泛的分析之后),从而可能导致一些问题未得到解决。使用本文中描述的原理,计算系统标识潜在问题,使得更快地检测机器学习系统中的学习困难。此外,校正学习困难也是在计算机系统的指导下或完全自动化的,因此不仅快速改善了检测,还使用潜在的各种解决方案校正了机器学习系统的各种潜在问题。

本“发明内容”并非旨在确定所要求保护的主题的关键特征或基本特征,也不旨在用作确定所要求保护的主题的范围的辅助手段。

附图说明

为了描述可以获取上述和其他优点和特征的方式,将通过参考附图来呈现各种实施例的更具体的描述。应当理解,这些附图仅描绘示例实施例并且因此不被认为是对本发明的范围的限制,实施例将通过使用附图利用附加的特征和细节来描述和解释,在附图中:

图1抽象地示出其中可以采用本文中描述的一些实施例并且其上具有可执行组件的计算系统;

图2示出了包括机器学习问题评估系统以及机器学习系统的计算系统环境;

图3示出了用于机器学习问题评估系统标识机器学习系统中的潜在机器学习问题的方法的流程图,该方法可以在图2的计算系统环境中执行;

图4示出了部分地自动校正问题的一个示例的方法的流程图,该方法可以作为图3的校正动作的一部分由图2的校正组件来执行;以及

图5示出了机器学习系统的更详细的结构,并且表示图4的机器学习系统的示例。

具体实施方式

本文中描述的至少一些实施例涉及一种机器学习问题评估系统,其标识机器学习系统中的潜在机器学习问题,在机器学习系统中,学习代码评估数据以将估计的附加数据与数据模式进行关联。访问组件访问学习代码和/或学习代码所评估的数据。问题评估组件基于所访问的代码和/或数据来标识机器学习系统存在潜在问题。校正组件通过对机器学习系统执行计算机化动作来至少部分地自动校正机器学习系统的所标识的潜在问题。所标识的潜在问题可能影响机器学习系统的学习的质量(例如,结论的适当性)和/或性能(例如,速度)。

在一些实施例中,问题评估组件通过基于对学习代码的多个阶段中的至少一个的评估,来标识问题来执行学习过程的动态分析。例如,问题评估组件可以在学习代码评估每段数据之后评估学习的状态。校正组件执行的校正可以完全自动执行,或者可以在用户批准之后自动执行。校正的示例包括例如准备数据,分层数据,调节或创建数据的分割,替换或调节学习代码,等等。

由于所涉及的大量数据以及学习代码的潜在复杂性,通过学习代码和数据来手动分类以标识机器学习的潜在问题的任务是困难的。这可能会导致错误的结论(即使在广泛的分析之后),从而可能导致一些问题未得到解决。使用本文中描述的原理,计算系统标识潜在问题,使得更快地检测机器学习系统中的学习困难。此外,校正学习困难也是在计算机系统的指导下或完全自动化的,因此不仅快速改善了检测,还使用潜在的各种解决方案校正了机器学习系统的各种潜在问题。

将参考图1描述计算系统的一些介绍性讨论。然后,将参考随后的图来描述机器学习问题辅助系统的结构和操作。

计算系统现在越来越多地采取各种各样的形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型机、分布式计算系统、数据中心、或甚至传统上还没有被认为是计算系统的设备,诸如可穿戴设备(例如,眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理和有形处理器以及能够在其上具有可以由处理器执行的计算机可执行指令的物理和有形存储器。存储器可以采取任何形式并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并且可以包括多个组成计算系统。

如图1所示,在其最基本配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”在本文中也可以用于指代非易失性大容量存储器,诸如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。

计算系统100上还具有通常被称为“可执行组件”的多个结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是以下结构的名称,该结构是计算领域的普通技术人员很好地理解为可以是软件、硬件或其组合的结构。例如,当以软件实施时,本领域普通技术人员可以理解,可执行组件的结构可以包括可以对计算系统执行的软件对象、例程、方法,而无论这样的可执行组件是否存在于计算系统的堆中,或者无论可执行组件是否存在于计算机可读存储介质上。

在这样的情况下,本领域普通技术人员将认识到,可执行组件的结构存在于计算机可读介质上,使得当由计算系统的一个或多个处理器(例如,由处理器线程)解释时,计算系统被使得执行功能。这样的结构可以由处理器直接计算机可读(如果可执行组件是二进制的,则就是这种情况)。或者,结构可以被构造为可解释和/或编译(无论是在单个阶段还是在多个阶段中),以便生成由处理器直接可解释的这样的二进制文件。当使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解完全在计算领域的普通技术人员的理解之内。

术语“可执行组件”以被本领域普通技术人员很好地理解为包括专门或近似专门用硬件实施的结构,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其他专用电路。因此,术语“可执行组件”是用于计算领域的普通技术人员很好地理解的结构的术语,无论该结构是以软件、硬件还是以组合的方式实施。在本说明书中,也可以使用术语“组件”、“服务”、“引擎”、“模块”等。如在本描述中以及在这种情况下所使用的,这些术语也旨在与术语“可执行组件”同义,并且因此也具有计算领域的普通技术人员很好理解的结构,而不管这样的组件是否被进一步修改(例如,如在校正组件、访问组件和问题估计组件的情况下)。

在以下描述中,参考由一个或多个计算系统执行的动作来描述实施例。如果这些动作以软件实施,则(执行动作的相关联的计算系统的)一个或多个处理器响应于已经执行构成可执行组件的计算机可执行指令来指导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实施。这种操作的示例涉及数据的操纵。

计算机可执行指令(和所操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,其允许计算系统100通过例如网络110与其他计算系统进行通信。

尽管不是所有计算系统都需要用户界面,但是在一些实施例中,计算系统100包括用于与用户接口的用户界面112。用户界面112可以包括输出机构112A以及输入机构112B。本文中描述的原理不限于精确的输出机构112A或输入机构112B,因为这将取决于设备的性质。然而,输出机构112A可以包括例如扬声器、显示器、触觉输出、全息图等。输入机构112B的示例可以包括例如麦克风、触摸屏、全息图、相机、键盘、其他指针输入的鼠标、任何类型的传感器等。

本文中描述的实施例可以包括或利用包括计算机硬件(诸如例如一个或多个处理器和系统存储器)的专用计算系统或通用计算系统,如下面更详细讨论的。本文中描述的实施例还包括物理计算机可读介质和其他计算机可读介质,其用于携带或存储计算机可执行指令和/或数据结构。这样的计算机可读介质可以是可以被通用计算系统或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同的计算机可读介质:存储介质和传输介质。

计算机可读存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可以用于以计算机可执行指令或数据结构的形式存储期望的程序代码装置并且可以由通用计算系统或专用计算系统访问的任何其他物理和有形存储介质。

“网络”被定义为能够在计算系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当通过网络或另一通信连接(硬连线、无线或者硬连线或无线的组合)向计算系统传输或提供信息时,计算系统将连接正确地视为传输介质。传输介质可以包括可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置以及可以由通用计算系统或专用计算系统访问的网络和/或数据链路。上述的组合也应当被包括在计算机可读介质的范围内。

此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动传输到存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终传送到计算系统RAM和/或计算系统处的较不易失性存储介质。因此,应当理解,存储介质可以被包括在也(甚至主要)利用传输介质的计算系统组件中。

计算机可执行指令包括以下指令和数据,其例如当在处理器处执行时使得通用计算系统、专用计算系统或专用处理设备执行特定功能或功能组。备选地或附加地,计算机可执行指令可以将计算系统配置为执行某个功能或功能组。计算机可执行指令可以是例如二进制文件或者甚至在处理器直接执行之前经历一些转换(诸如编译)的指令,诸如中间格式指令,诸如汇编语言或甚至源代码。

虽然已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中限定的主题不一定限于以上描述的特征或动作。相反,所描述的特征和行为被公开作为实现权利要求的示例形式。

本领域技术人员将认识到,本发明可以在具有很多类型的计算系统配置的网络计算环境中实践,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机、数据中心、可穿戴设备(诸如眼镜)等。本发明也可以在分布式系统环境中实施,其中通过网络链接(通过硬连线数据链路、无线数据链路或者通过硬连线和无线数据链路的组合)的本地系统和远程计算系统都执行任务。在分布式系统环境中,程序模块可以位于本地存储器和远程存储器存储设备两者中。

图2示出了计算系统环境200,其包括机器学习问题评估系统201以及机器学习系统202。例如,机器学习问题评估系统201可以如上面针对图1的计算系统100所描述地被构造。在这种情况下,所标识的潜在问题可以经由这样的计算系统的输出机构112A来标识,可以向用户给予控件以启动对潜在问题的校正,和/或可以向用户显示关于校正的进度。机器学习系统202也可以如上面针对计算系统100所描述地被构造。虽然不是必需的,但是机器学习问题评估系统201和机器学习系统202可以在单个计算系统上运行。

机器学习问题估计系统201包括多个可执行组件211、212和213。每个可执行组件具有上面针对图1的计算系统106所描述的结构。特别地,机器学习系统问题评估系统201包括访问组件211、问题标识组件212和校正组件213。机器学习系统202包括学习代码221以及学习代码221使用(如箭头223所示)以进行学习的数据222。例如,学习代码221使用数据222来将数据模式与估计的附加数据(即,学习数据)进行关联。例如,估计的附加数据可以表示学习码221关于相关的数据模式估计为真的断言。例如,估计的数据可以包括相关的数据模式的分类。作为另一示例,估计的数据可以包括相关的数据模式的估计的函数。

图3示出了用于机器学习问题评估系统标识机器学习系统中的潜在机器学习问题的方法300的流程图。作为示例,方法300可以由图2的机器学习问题估计系统201执行,以标识图2的机器学习系统202中的潜在机器学习问题。因此,现在将关于图2的环境200来描述图3的方法300。

机器学习问题评估系统的访问组件访问学习代码和学习代码评估的数据中的至少一项(动作301)。例如,访问组件211访问学习代码221和数据222中的至少一项。这由图2中的箭头231和232表示。

问题标识组件然后基于所访问的代码和/或数据来标识机器学习系统存在潜在问题(动作302)。该流程在图2中由箭头233表示。例如,问题标识组件212基于所访问的学习代码221和/或数据222来标识机器学习系统202存在潜在问题。

校正组件通过对机器学习系统执行计算机化动作来至少部分地自动校正机器学习系统的所标识的问题(动作303)。例如,如箭头234的流程所示,校正组件213至少部分地自动校正由问题标识组件213标识的机器学习系统202的所标识的问题。

例如,图4示出了部分地自动校正问题的一个示例的方法400的流程图,方法400可以由校正组件(诸如校正组件213)执行。根据方法400,校正组件使得对所标识的潜在问题的至少一个解决方案被呈现给用户以用于批准(动作401)。校正组件可以使得所标识的潜在问题的描述被显示给用户(动作402)。校正组件还呈现批准控件(动作403)。在校正组件检测到用户已经以某种方式与批准控件交互(动作410)之后,校正组件然后执行校正所标识的潜在问题的计算机化动作(动作411)。如果校正组件213在计算系统100上执行,则(动作401的)解决方案的视觉表示、(动作402的)所标识的潜在问题的描述和/或(动作403的)控件的视觉表示可以例如被显示在显示器112上。

图5示出了机器学习系统的更详细的结构500,并且表示图2的机器学习系统202的示例。数据522是图2的数据222的示例。学习代码521是图2的学习代码521的示例。当运行时,学习代码521分两个阶段(训练阶段和评分阶段)来操作学习过程。训练经由训练组件501来完成,并且评分经由评分组件502来完成。

在训练阶段期间,训练组件501从数据522一次一个部分地接收数据(如箭头531所示),根据学习码521评估数据部分内的数据模式,并且基于数据模式的存在来根据学习代码521估计附加数据(即,学习数据)。估计可以具有一定的置信水平,其可以随着数据部分的每个附加采样而增加。随着关于新估计数据的置信水平的提高,学习得以实现。更具体地,学习涉及基于对数据模式的观察来估计和获取新信息中的置信度。这是学习的本质,并且不限于人。该新学习的数据由训练组件501内的学习数据503表示。

然而,机器在学习方面可能有困难和/或效率低下。为了确定学习数据503的可靠程度,不同的数据部分被馈送到训练组件501和评分组件502两者。在该评分阶段期间,使用学习代码521的国城来应用学习数据503,以基于数据中的模式来作出学习数据的估计。训练组件501将估计提供给评分组件503(如箭头533所示)。数据还被提供给评分组件502(如箭头532所示),以便评分组件502可以确定该估计是否正确。评分组件502然后生成得分。可以重复这些训练和评分阶段以确定学习速率。例如,学习速率可以是在给定时间段内估计的新的学习数据的量、新数据的重要性和/或在估计新学习数据时获取置信度的速率的函数。

因此,学习在训练阶段和评分阶段发生。同样,训练本身在离散位中发生,其中一次评估一个数据部分以估计和增加学习数据的置信水平。返回到图2,通过在这些处理阶段中的每个处理阶段之后、潜在地像在每个数据部分之后一样频繁地评估学习状态,问题标识组件212可以标识潜在问题。通过这样做,问题标识组件212可以检测学习是否在每个数据部分之后有效地发生。在这个意义上,问题估计组件212可以像老师窥视孩子的心智一样,以确定孩子响应于每个感官事件(例如,每当孩子看到、听到、闻到、触摸、或品尝某物时)而学习的内容,以在每次事件之后评估产生的想法。问题标识组件212可以以高粒度关于学习数据多次重复该过程,以标识机器学习系统中的潜在问题。无论问题是否与学习质量(例如,学习数据倾向于错误)和学习性能(例如,学习真实数据的速率可能较慢)相关,情况都是如此。

现在将描述机器学习的各种类型的问题。对于每种问题类型,将描述一种标识问题的机制、以及对所标识的问题的一个或多个潜在解决方案。回想一下,这样的解决方案可以由图2的校正组件213至少部分地自动执行。

一些问题涉及学习代码对学习代码正在评估的数据的适用性。例如,学习代码可能没有足够的适当类型的数据来学习任何新的学习数据。作为示例,以下学习代码在解释股票市场数据以预测可能的未来市场趋势方面并不是特别有效,该学习代码被设计为通过对想要学习的语言中的书面文本的连续片段进行评估来学习阅读。

为了自动估计这种类型的不匹配问题,问题标识组件212可以例如执行学习代码和数据的静态分析。例如,与学习代码相关联的元数据可能指示学习代码的最佳使用集合。对数据的静态分析可能涉及审阅数据以确定它是与这样的最佳使用集合不匹配的某种数据类型。备选地或附加地,通过涉及评估学习过程的动态分析(在学习过程的多个阶段中的每个阶段),问题标识组件212可以检测到:学习数据的量和/或该学习数据中的置信度水平根本不会因为学习代码而增加。

在这种情况下,解决该问题的计算机化动作可以是将学习代码切换为其他学习代码。例如,在其中使用语言学习代码来评估股票市场数据的示例中,语言学习代码可以被完全切换为更适合于跨一个或多个参数(诸如时间)检测趋势、周期或其他模式的学习代码。当数据与学习代码之间的明显不匹配较少时,可以调节学习代码的一个或多个参数。

其他可检测问题可能包括数据到学习代码的欠拟合。在这种情况下,没有足够的数据用于学习代码来学习任何东西或得出任何有意义的推断。在这种情况下,自动校正可能涉及用具有相似参数的其他兼容数据来扩充数据。如果数据的不足是由于学习代码的低效率导致的,则可以将学习代码切换为其他学习代码,或者可能可以调节学习代码的参数以提高学习效率。

所标识的问题可能是数据到学习代码的过拟合。在这种情况下,学习代码过于直接,并且得出结论太快。作为一个示例,一些学习代码可以推断汽车是所有内部有座位的对象。在本文中,学习代码显然过于关注另一对象内部座位的存在与否。相反,学习代码还应当关注其他相关模式,诸如对象是否具有轮子、对象具有的轮子的数目、对象是否是自推进的等。这个过拟合问题可以通过沿着学习过程的每个增量的动态分析来检测。一旦问题评估系统基于一种相关数据模式超过其他数据模式的过分加权而确定训练系统已经学习了虚假的数据,则问题评估组件可能估计学习代码存在过拟合问题。

在这种情况下,校正组件213可以改变学习代码,使得它能够更适当地加权数据模式的所有相关部分。备选地或附加地,校正组件213可以将学习代码暴露给更多样化的数据以允许学习代码发现其他相关数据模式。例如,数据也可以被改变,以便学习代码可以暴露于其内部具有座位的对象(火车、房屋、飞机),以便学习代码可以看到对象内是否存在座位不是决定性的,并且其他数据模式也是相关的。通过这种方式,学习数据可以通过适当地加权其他数据模式来包括对汽车是什么的更加细微的理解。

所标识的问题也可能是对学习代码的不正确评分。例如,如果对相当罕见的事件进行预测,如果学习代码仅仅预测事件不会发生,则学习代码几乎总是适用。因此评分可能会不公正地向学习代码给予高分。这样的高分可能会给学习代码提供关于它已经学得多好的一个错误看法,从而可能会加强糟糕的学习。在这种情况下,校正组件213可以改变评分代码或改变其一个或多个参数。例如,与罕见事件本身的正确预测相比,罕见事件不存在的正确预测可能被会轻微地加权。

其他计算机化动作可以涉及准备数据本身。例如,如果某些相关模式在数据的其他部分中的数据的某些位置出现较密集,则数据可以被分层以使得相关的数据模式分布更均匀。如果在用于评分的数据中找到相关的数据模式,而不是用于训练的数据,则这可能导致学习困难。如果在用于训练的数据中发现相关的数据模式,而不是用于评分的数据,则这也可能导致评分困难。

在一些情况下,由于用于训练的数据与用于评分的数据之间的数据的不适当分割而可能发生所标识的问题。例如,如果使用相同的数据来训练和评分,则评分确实不会测试训练的有效性。训练可以简单地记住它所查看的数据,而不从该数据中得到任何新的结果,仅仅是因为在评分过程中,训练组件已经看到了数据。

在其他情况下,可能有太多的数据用于训练,而太少的数据用于评分。在这种情况下,校正组件可以使得更多的数据被用于训练,而更少的数据用于评分。

因此,本文中描述的原理提供了用于标识机器学习系统内潜在问题的有效的自动化机制、以及用于校正这些标识的问题的至少部分地自动化机制。可以执行各种计算机化的动作来对估计的问题进行响应,包括更换或更改学习代码,准备或增加用于训练的数据,创建或修改用于训练和用于评分的数据的分割,和/或调节评分代码。由于该过程是自动化的,所以机器学习的潜在问题可以被及早发现,从而使得机器学习系统能够被快速校正,并且从而更快地学习。

在不脱离本发明的精神或基本特征的情况下,可以以其他具体形式来实施发明。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同物的含义和范围内的所有变化都将被包含在其范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1