本公开的实施例涉及人工智能领域,并且更具体地,涉及用于诊断和优化数据分析系统的方法、设备和计算机存储介质。
背景技术:
随着计算机技术的不断发展,数据分析系统已经被广泛地应用于人们生活的各个方面,诸如深度神经网络等分析引擎越来越多地被用于图像识别、语音识别和目标检测等各种类型的任务中。通常,需要利用训练数据来对分析引擎进行训练,但是分析引擎在预测过程中往往无法达到训练阶段的性能。可能存在导致分析引擎在预测阶段性能下降的多种原因,开发人员往往难以发现分析引擎所存在的缺陷,并进行针对性的改进,这是不希望的。
技术实现要素:
本公开的实施例提供一种用于诊断和优化数据分析系统的方案。
根据本公开的第一方面,提出了一种用于诊断数据分析系统的方法。该方法包括:获取关于待诊断的数据分析系统中的分析引擎的信息和与分析引擎相关联的待诊断数据,待诊断数据包括用于分析引擎的训练数据和预测数据中的至少一项;基于接收的信息,确定与分析引擎相对应的诊断引擎;以及通过利用诊断引擎处理待诊断数据,提供与分析引擎和待诊断数据中的至少一项相关联的不确定性度量,不确定性度量指示分析引擎针对处理待诊断数据获得的预测结果的确定程度。
根据本公开的第二方面,提出了一种用于优化数据分析系统的方法。该方法包括:向诊断系统提供关于数据分析系统中的分析引擎的信息和与分析引擎相关联的待诊断数据,待诊断数据包括用于分析引擎的训练数据和预测数据中的至少一项;从诊断系统接收与分析引擎和待诊断数据中的至少一项相关联的不确定性度量,不确定性度量指示分析引擎针对处理待诊断数据获得的预测结果的确定程度;以及基于不确定性度量更新分析引擎。
根据本公开的第三方面,提出了一种用于诊断数据分析系统的设备。该设备包括:至少一个处理单元;至少一个存储器,该至少一个存储器被耦合到该至少一个处理单元并且存储用于由该至少一个处理单元执行的指令,该指令当由该至少一个处理单元执行时,使得该设备执行动作,该动作包括:获取关于待诊断的数据分析系统中的分析引擎的信息和与分析引擎相关联的待诊断数据,待诊断数据包括用于分析引擎的训练数据和预测数据中的至少一项;基于接收的信息,确定与分析引擎相对应的诊断引擎;以及通过利用诊断引擎处理待诊断数据,提供与分析引擎和待诊断数据中的至少一项相关联的不确定性度量,不确定性度量指示分析引擎针对处理待诊断数据获得的预测结果的确定程度。
根据本公开的第四方面,提出了一种用于优化模型分析系统的设备。该设备包括:至少一个处理单元;至少一个存储器,该至少一个存储器被耦合到该至少一个处理单元并且存储用于由该至少一个处理单元执行的指令,该指令当由该至少一个处理单元执行时,使得该设备执行动作,该动作包括:向提供系统发送关于数据分析系统中的分析引擎的信息和与分析引擎相关联的待诊断数据,待诊断数据包括用于分析引擎的训练数据和预测数据中的至少一项;从诊断系统接收与分析引擎和待诊断数据中的至少一项相关联的不确定性度量,不确定性度量指示分析引擎针对处理待诊断数据获得的预测结果的确定程度;以及基于不确定性度量更新分析引擎。
在本公开的第五方面,提供了一种计算机可读存储介质。该计算机可读存储介质具有存储在其上的计算机可读程序指令,该计算机可读程序指令用于执行根据第一方面所描述的方法。
在本公开的第六方面,提供了一种计算机可读存储介质。该计算机可读存储介质具有存储在其上的计算机可读程序指令,该计算机可读程序指令用于执行根据第二方面所描述的方法。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了本公开实施例可以在其中执行的环境的示意图;
图2图示了根据本公开实施例的诊断数据分析系统的过程的流程图;
图3图示了根据本公开实施例的确定诊断引擎的过程的流程图;
图4图示了根据本公开实施例的提供调整指示的过程的流程图;
图5图示了根据本公开实施例的不确定性度量在不同特征的分布的示意图;
图6图示了根据本公开实施例的优化数据分析系统的过程的流程图;
图7a至图7f图示了根据本公开实施例的示例不确定性度量的示意图;以及
图8图示了可以用来实施本公开内容的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所描述,随着计算机技术的不断发展,数据分析系统已经被广泛地应用于人们生活的各个方面,诸如深度神经网络等分析引擎越来越多地被用于图像识别、语音识别和目标检测等各种类型的任务中。人们越来越依赖于数据分析系统对于数据的预测结果,尤其是在医疗诊断、金融投资、商业及公共决策等关键领域,预测结果的可靠性及稳定性尤为重要。然而,分析引擎在预测过程中往往无法达到训练阶段的性能。因此,人们越来越关注如何能够确定数据分析系统中分析引擎或者训练数据/预测数据所存在的缺陷,并进行针对性的改进。
根据本公开的一些实施例,提供了一种用于诊断数据分析系统的方案。在该方案中,首先可以获取关于待诊断的数据分析系统中的分析引擎的信息和与分析引擎相关联的待诊断数据,其中待诊断数据包括用于分析引擎的训练数据和预测数据中的至少一项。随后,可以基于所接收的信息来确定与分析引擎相对应的诊断引擎,并且通过利用诊断引擎处理待诊断数据,以提供与分析引擎和待诊断数据中的至少一项相关联的不确定性度量,其中不确定性度量指示分析引擎针对处理待诊断数据获得的预测结果的确定程度。通过这样的方式,可以利用与分析引擎相对应的诊断引擎来确定模型或者待诊断的数据(包括训练数据和预测数据)对数据分析系统的分析引擎进行预测的准确度所带来的影响,进而为用户确定模型或者待诊断数据可能存在的缺陷提供支持。此外,通过利用分离的诊断引擎来诊断数据分析系统,可以在影响数据分析系统正常运行的情况下,为开发者提供数据分析系统的诊断建议。
根据本公开的另一些实施例,还提供了一种用于优化数据分析系统的方案。在该方案中,首先可以向诊断系统提供关于数据分析系统中的分析引擎的信息和与分析引擎相关联的待诊断数据,其中待诊断数据包括用于分析引擎的训练数据和预测数据中的至少一项。随后,从诊断系统接收与分析引擎和待诊断数据中的至少一项相关联的不确定性度量,其中不确定性度量指示分析引擎针对处理待诊断数据获得的预测结果的确定程度。之后,可以基于不确定性度量更新分析引擎。通过这样的方式,可以基于由分析引擎确定的不确定性度量来更新分析引擎,进而改善数据分析系统的性能。
示例环境
以下将参照附图来具体描述本公开的实施例。图1示出了本公开的多个实施例能够在其中实现的示例环境100的示意图。如图1所示,该示例环境100包括数据分析系统110和诊断系统140。数据分析系统110包括分析引擎125,其能够从已有数据中学习到一定的知识和能力用于处理新数据。分析引擎125可以被设计用于执行各种任务,诸如图像分类、目标检测、语音识别、机器翻译、内容过滤等等。分析引擎125的示例包括但不限于各类深度神经网络(dnn)、卷积神经网络(cnn)、支持向量机(svm)、决策树、随机森林模型等等。
如图1所示,数据分析系统110还包括用于训练分析引擎125的训练数据115和由分析引擎125对其进行预测的预测数据120。在一些实施例中,被应用于分析引擎125的训练数据115和预测数据120是诸如图像、医疗数据、商业数据等数据,分析引擎125可以提供数据分析所获得的结果(也被称为预测结果)。具体地,分析引擎125可以对于所输入的数据(包括训练数据115和预测数据120)执行以下操作中的至少一种:预测、识别、分类、模式分析、特征检测以及提取。在一些实施例中,分析引擎125可以提供对于输入数据的识别预测,例如,当输入数据为图像时,预测可以是对于图像的识别结果(例如,图像中包括的对象是猫或者狗)。在一些实施例中,分析引擎125可以提供对于输入数据的预测,例如,当输入数据为商业数据时,预测可以是分析引擎125对销量、顾客流失率,广告点击率等的预测分析。
数据分析系统110可以经由与诊断系统140之间的接口来向诊断系统140提供与分析引擎125有关的信息130和待诊断数据135,其中待诊断数据包括训练数据115和预测数据120中的至少一项。在一些实施例中,数据分析系统110与诊断系统140之间的接口可以是物理通信接口。备选地,数据分析系统110与诊断系统140之间的接口也可以经由软件实施的数据通信接口。在一些实施例中,信息130可以包括指示分析引擎125的类型和网络结构的信息。例如,当分析引擎125包括深度神经网络时,信息130可以包括指示深度神经网络的具体结构有关的信息,例如信息可以指示神经网络包括3层mlp(多层感知器),并且每一层中的隐藏单元的数目分别为45个、135个和405个。应当理解,信息130可以不包括分析引擎125中的具体权重的信息。
如图1所示,诊断系统140包括诊断引擎145。与分析引擎125类似,诊断引擎145也能够从已有数据中学习到一定的知识和能力用于处理新数据。在一些实施例中,诊断引擎145能够以量化的方式提供关于预测结果的不确定性程度(下文中称为“不确定性度量”)。在一些实施例中,响应于分析引擎125包括神经网络模块,诊断系统140可以通过基于所接收的与分析引擎125有关的信息130来构建神经网络模块,并利用概率推断来更新神经网络模块以作为诊断引擎145的一部分。在诊断引擎145中,权重以特定分布而不是固定值来被表示。在一些实施例中,例如,诊断引擎145可以包括贝叶斯神经网络(bnn)。诊断系统140可以通过利用诊断引擎145处理所接收的待诊断数据135来提供不确定性度量150。数据分析系统110在接收到不确定性度量150后的可以相应地更新分析引擎。以下将详叙诊断系统140生成不确定性度量150的过程和数据分析系统110基于由诊断系统140确定的不确定性度量150来优化分析引擎125的过程。
数据分析系统的诊断
下文将参考图2至图4来更详细描述用于诊断数据分析系统的过程。图2示出了根据本公开的一些实施例的用于诊断数据分析系统的过程200的流程图。过程200可以由图1的诊断系统140来实现。为了方便讨论,将结合图1来描述过程200。
如图2所示,在框202,诊断系统140获取关于待诊断的数据分析系统110中的分析引擎125的信息130和与分析引擎125相关联的待诊断数据135,其中待诊断数据135包括用于分析引擎125的训练数据115和预测数据120中的至少一项。
在一些实施例中,数据分析系统110例如可以被部署在云平台上,其中关于分析引擎125的信息130以及训练数据115和预测数据120也将被相应地存储在云平台。用户例如可以访问云平台,以利用数据分析系统110执行相应的数据分析任务。
在一些实施例中,诊断系统140可以被部署在于数据分析系统110相同的云平台中,使得诊断系统140可以通过访问云平台的存储以获取关于分析引擎125的信息和待诊断的数据135。
在一些实施例中,诊断系统140也可以被部署以与数据分析系统110通信地耦合,以使得经由有线或无线网络而从数据分析系统110接收关于分析引擎125的信息和待诊断的数据135。
在框204,诊断系统140基于接收的信息确定与分析引擎125相对应的诊断引擎145。在一些实施例中,诊断引擎145例如可以被构建以包括预先配置的贝叶斯神经网络模块。
以下将参考图3来描述框204的过程。图3示出了根据本公开实施例的确定诊断引擎145的过程300的流程图。如图3所示,在框302,诊断系统140可以基于所接收的信息130以确定分析引擎125是否包括神经网络模块。响应于在框302确定分析引擎125包括手神经网络模块,过程300进行到框304,其中诊断系统140可以基于接收的信息构建神经网络模块。例如,信息130可以指示神经网络模块中的层数、节点数等,诊断系统140可以基于信息130构建未经训练的神经网络模块。
在框306,诊断系统140可以利用概率推断更新神经网络模块以获得概率神经网络模块。与传统的参数以确定数值表示的确定性的(deterministic)神经网络不同,概率神经网络通过以分布来表示网络中的参数,使得概率神经网络模块能够更好地确定针对预测结果的不确定性度量。在一些实施例中,诊断系统140可以通过贝叶斯推断来更新神经网络模块,以使得所有概率数据网络模块包括贝叶斯神经网络。备选地,诊断系统140还可以通过频率推断来更新神经网络模块。在框308,诊断系统140构建诊断引擎145以包括经获得的概率神经网络模块。
备选地,如果在框302确定分析引擎125不包括神经网络模块,则过程300进行到框310,其中诊断系统140构建诊断引擎145以包括经预先配置的概率神经网络模块。
继续参考图2,在框206,诊断系统140通过利用诊断引145处理待诊断数据135来提供与分析引擎125和待诊断数据135中的至少一项相关联的不确定性度量150,其中不确定性度量150指示分析引擎125针对处理待诊断数据135获得的预测结果的确定程度。
在一些实施例中,待诊断数据135包括训练数据115和预测数据120两者。诊断系统140确定的不确定性度量150可以包括以下中的至少一项:模型不确定性度量、数据不确定性度量和分布不确定性度量。
模型不确定性度量至少指示分析引擎125的复杂程度与待诊断数据135的规模的拟合程度对分析引擎125的性能的影响。例如,模型不确定性度量可以指示训练数据115的规模与分析引擎的125的复杂度是否拟合。例如,当训练数据115规模较大,但是分析引擎125中包括的模型较为简单时,拟合程度较差。
数据不确定性度量至少指示分析待诊断数据135的质量对分析引擎的性能的影响。例如,待诊断数据135的质量可以指示以下中的至少一个方面:待诊断数据135是否易于预测、是否包括较多的噪音、是否存在较多的数据缺失等等。
分布不确定性度量至少指示预测数据120与训练数据115的分布的契合程度对分析引擎的性能的影响。例如,由于分析引擎125是利用训练数据115而被训练,当预测数据120与训练数据115的分布差异较大
以下将以贝叶斯神经网络作为示例来介绍确定模型不确定性度量、数据不确定性度量和分布不确定性度量的过程。对于诊断引擎145中所包括的贝叶斯神经网络模块,例如可以使用
此外,为了分离三种不确定性度量,输出y的似然函数可以根据以下公式进行分解:
其中,x*表示预测数据120中的数据项,d表示训练数据115,公式(1)中的第三项p(θ|d)表示模型参数的后验分布。此外,φ表示x*是否符合d的分布,其中公式(1)中的第二项p(φ|x*,θ)假设满足伯努利分布,当φ=1时,表示x*符合d的分布,当φ=1时,表示x*不满足d的分布。ε表示数据不确定性,其中公式(1)中的第四项p(ε|d)表示ε的后验分布。公式(1)中的第一项p(y|φ,ε)表示输出y的分布。
在一些实施例中,对于诊断引擎145中所包括的贝叶斯神经网络模块,为了使得贝叶斯神经网络能够区别数据是否位于特定分布之内,该贝叶斯神经网络可以被训练以使得:
(1)使得贝叶斯神经网络能够同分析引擎125一样良好地执行数据预测。在一些实施例中,该训练目标可以通过引入常规的贝叶斯神经网络的目标函数来实现;
(2)使得贝叶斯神经网络还能够区分输入数据是否满足训练数据d的分布。在一些实施例中,该训练目标可以通过对满足分布的训练数据引入随机噪声来构建负样本,并通过正样本和负样本的组合来训练该贝叶斯神经网络,以使得贝叶斯神经网络能够区分某输入数据是否满足特定分布。
在一些实施例中,不确定性度量可以通过以下中的一项来表示:互信息(mi)、熵或者方差。相较于通过绝对值来表示单独的不确定性,互信息能够更好地反映模型不确定性度量、数据不确定性度量及分布不确定性度量彼此可能存在的相关性。
在一些实施例中,诊断系统140可以通过利用诊断引擎145处理待诊断数据135,确定针对诊断引擎145的总不确定性度量;并基于总不确定性度量,提供以下多项中的至少一项:模型不确定性度量、数据不确定性度量和分布不确定性度量。具体地,模型不确定性度量可以通过以下公式被确定:
数据不确定性度量可以通过以下公式被确定:
分布不确定性度量可以通过以下公式被确定:
在公式(2)至公式(4)中,其中-∫logp(y|d)dp(y|d)表示贝叶斯神经网络的总不确定性度量,公式(2)中的
对于公式(2)至公式(4)中的每一项,在利用训练数据115训练完成贝叶斯神经网络后,可以确定
在一些实施例中,诊断系统140可以将所确定的不确定性度量150发送至数据分析系统110,以使得数据分析系统110能够基于不确定性度量150来调整分析引擎125和待诊断数据135中的至少一项。
在一些实施例中,诊断系统140还可以提供关于调整分析引擎125和待诊断数据135中的至少一项的指示。如上文所讨论的,不同的不确定性度量分别指示了不同因素对于模型预测性能的影响。例如,当模型不确定性度量较高时,诊断系统140可以提供关于增加训练数据的指示。当数据不确定性度量较高时,诊断系统140可以提供例如弃用待诊断数据的指示。当分布不确定性度量较高时,诊断系统140可以提供利用预测数据120来再训练分析引擎125的指示。在一些实施例中,诊断系统140可以将所确定的不确定性度量与预定的阈值进行比较,并在不确定性度量大于预定阈值时提供上述指示。
在一些实施例中,诊断系统140也可以从模型不确定性度量、数据不确定性度量和分布不确定性度量进行比较中选择具有最大值的不确定性度量,并提供与该类型的不确定性度量相对应的指示。例如,当数据不确定性度量最大时,诊断系统140可以提供关于增加训练数据的指示。
在一些实施例中,诊断系统140还可以通过比较基于训练数据115和基于预测数据120来提供关于调整分析引擎125和待诊断数据135中的至少一项的指示。具体地,图4示出了根据本公开实施例的提供调整指示过程400的流程图。
如图4所示,在框402,诊断系统140可以通过利用诊断引擎145处理训练数据115获取第一不确定性度量。例如,训练数据115例如可以是第一季度的数据,诊断系统140可以基于训练数据115确定与第一季度的训练数据相关的模型不确定性度量为0.6,数据不确定性度量为1.2,分布不确定性度量为0.3。
在框404,诊断系统140可以通过利用诊断引擎145处理预测数据120获取第二不确定性度量。例如,预测数据120可以是待预测的第二季度的数据,诊断系统140可以基于预测数据120确定与第二季度的预测数据相关的模型不确定性度量为0.5,数据不确定性度量为1.0,分布不确定性度量为0.6。
在框406,诊断系统140可以基于比较第一不确定性度量和第二不确定性度量,提供关于调整分析引擎125和待诊断数据135中的至少一项的指示。例如,基于比较与第一季度的训练数据相关的第一不确定性度量以及与第二季度的预测数据相关的第二不确定性度量可以发现,分布不确定性度量的变化最大(0.3),此时诊断系统140例如可以提供利用预测数据120来再训练分析引擎125的指示。
在一些实施例中,诊断引擎145的输入包括分别与不同特征相关联的多个数据项。例如,在用于预测家庭电力消耗的场景中,用于训练的数据项和/或用于预测的数据项可以包括与不同特征相关联的多个数据项,例如,不同房间(例如,卧室、客厅、厨房等)的温度、不同房间(例如,卧室、客厅、厨房等)的湿度、室外温度和室外湿度等。这些不同的数据项例如可以通过放置在不同位置的传感器所采集。
在一些实施例中,诊断系统140还可以基于不确定性度量来确定多个数据项中的至少一个数据项对不确定性度量的贡献。例如,对于特定的不确定性度量u,其中特定数据项对不确定性度量的贡献(下文也被称为特征不确定性度量)可以通过求导而被确定为:
其中u表示不确定性度量,
其中n表示输入的数目。例如,对于数据不确定性度量,n可以表示训练样本的数目。
例如,图5示出了根据本公开实施例的与不同特征相关联的数据项对分布不确定性度量的贡献的示意图500。如图5所示,在该示例中,诊断引擎145的输入包括与23个特征相关联的数据项,每个数据项对分布不确定性度量的贡献502可能不同。例如,在该示例中,与第5个特征对应的数据项具有最大的贡献。
在一些实施例中,诊断系统140还可以基于所确定的至少一个数据项对于不确定性度量的贡献,提供关于调整多个数据项中的至少一个数据项的指示。例如,在图5的示例中,诊断系统140可以基于与第5个特征所对应的数据项的贡献最大,而提供调整与第5个特征所对应的数据项的指示,例如以使得数据分析系统110移除该数据项、替换该数据项或者调整该数据项。
基于上文所描述的诊断数据分析系统的方法,本公开的实施例能够利用与分析引擎相对应的诊断引擎来确定模型或者待诊断的数据(包括训练数据和预测数据)对数据分析系统的分析引擎进行预测的准确度所带来的影响,进而为用户选择数据分析系统中的适合的数据分析模型或者确定待诊断数据可能存在的缺陷提供支持。此外,通过利用分离的诊断引擎来诊断数据分析系统,可以在影响数据分析系统正常运行的情况下,为开发者提供数据分析系统的诊断建议。
数据分析系统的优化
根据本公开的另一方面,本公开的实施例还提供了一种优化数据分析系统的方法。图6示出了根据本公开的一些实施例的用于优化数据分析系统的过程600的流程图。过程600可以由图1的数据分析系统110来实现。为了方便讨论,将结合图1来描述过程600。
在框602,数据分析系统110向诊断系统140提供关于数据分析系统110中的分析引擎125的信息130和与分析引擎125相关联的待诊断数据135,待诊断数据135包括用于分析引擎125的训练数据115和预测数据120中的至少一项。如上文参考过程200中的框202所描述的,在一些示例中,数据分析系统110可以通过有线或无线网络向诊断系统140提供信息130和待诊断数据135。备选地,数据分析系统110和诊断系统140例如可以被配置在同一个云平台中,诊断系统140可以通过从云平台获取信息130和待诊断数据135。
在框604,数据分析系统110从诊断系统140接收与分析引擎125和待诊断数据135中的至少一项相关联的不确定性度量150,其中不确定性度量150指示分析引擎125针对处理待诊断数据135获得的预测结果的确定程度。上文已经参考图2至图5描述了确定不确定性度量150的过程,数据分析系统110可以从诊断系统140接收不确定性度量150。
在框606,数据分析系统110基于不确定性度量150更新分析引擎125和待诊断数据135中的至少一项。
在一些实施例中,方法600还可以包括框608,其中数据分析系统110可以利用经更新的分析引擎125来进行数据分析。具体地,数据分析系统110可以接收新的待分析数据,被利用经更新的分析引擎125来处理新的待分析数据,以提供针对新的待分析数据的预测。
在一些实施例中,所接收的不确定性度量150包括模型不确定性度量,其中数据不确定性度量至少指示分析引擎的复杂程度与待诊断数据的规模的拟合程度对分析引擎的性能的影响。在一些实施例中,数据分析系统110可以将模型不确定性度量与预定的阈值进行比较。在确定模型不确定性度量大于预定的阈值时,数据分析系统110通过利用附加的训练数据训练分析引擎125来更新分析引擎125。通过这样的方式,可以降低模型不确定性对于分析引擎125性能的影响。
在一些实施例中,所接收的不确定性度量包括数据不确定性度量,其中数据不确定性度量至少指示待诊断数据135的质量对分析引擎125的性能的影响。在一些实施例中,数据分析系统110可以将数据不确定性度量与预定的阈值进行比较。在确定数据不确定性度量大于预定的阈值时,数据分析系统110例如可以对待诊断数据135进行数据丢弃处置,以确保训练数据的质量。
在一些实施例中,所接收的不确定性度量包括分布不确定性度量,其中分布不确定性度量至少指示预测数据与训练数据的分布的契合程度对分析引擎的性能的影响。在一些实施例中,数据分析系统110可以将分布不确定性度量与预定的阈值进行比较。在确定分布不确定性度量大于预定的阈值时,数据分析系统110可以利用预测数据120再训练分析引擎125,使得分析引擎125具备准确分析预测数据120的能力。。
在一些实施例中,如上文所讨论的,数据分析系统110还可从所接收的不确定性度量确定特征不确定性度量,其中该不确定性度量指示多个数据项中的至少一个数据项对不确定性度量的贡献,其中分析引擎的输入包括分别与不同特征相关联的多个数据项。确定特征不确定性度量可以参见上文关于公式(5)和(6)所描述的过程,在此不再详叙。在一些实施例中,数据分析系统110可以将所接收的特征不确定性度量与预定的阈值进行比较,并且当特征不确定性度量大于预定的阈值时,数据分析系统110可以执行以下中的至少一项:执行以下中的至少一项:从分析引擎的输入中添加更多数据项;改变特征对应的数据项的属性(例如,粒度);或弃用至少一个数据项。例如,在图5的示例中,数据分析系统110可以从诊断系统140接收与第五个特征相对应的特征不确定性度量,并在确定其大于阈值时,例如可以从预测数据120中弃用与第五个特征所对应的数据项,或者替换该数据项,从而降低该特征对于分析引擎125性能的影响。
基于上文所描述的优化数据分析系统的方法,本公开的实施例能够基于由分析引擎确定的不确定性度量来更新分析引擎,进而改善数据分析系统的性能。
示例应用
应用一:信用卡欺诈分析系统
上文所讨论的诊断和优化数据分析系统的方法可以被应用于用于预测信用卡欺诈的数据分析系统中。例如,信用卡欺诈分析系统可以包括用于接收与25个特征相关联的数据项<特征示例>的输入的分析引擎,并提供关于是否是欺诈的预测。在一个具体的示例中,该分析引擎包括由3层mlp构成的神经网络,并且其中每一层的隐藏单元的数目分别为45个、135个和405个。
通过基于贝叶斯推断将该神经网络转换为贝叶斯神经网络,分析引擎可以确定与不同训练数据的规模相对应的模型不确定性。例如,图7a示出了模型不确定性度量随着训练数据的规模而变化的趋势图700a,由图中可以看到,随着训练数据的增大,模型不确定性度量整体是减少的趋势,因此该趋势可以辅助开发人员确定是否需要增加训练数据的规模,或者是降低神经网络的复杂度。
此外,图7b还示出了不同特征对分布不确定性度量的贡献(特征不确定性度量)的示意图700b,由图700b可以看到,其中与第三个特征相关联的特征不确定性度量最大,因此该数据可以指示开发人员核查与第三特征对应的数据项的采集是否发生故障,以及是否需要替换或修改与第三特征对应的数据项等。
基于本公开的诊断与优化数据分析系统的方法,能够确定信用卡欺诈分析系统当前的性能瓶颈,并相应提高该数据分析系统的性能。
应用二:频道订阅分析系统
上文所讨论的诊断和优化数据分析系统的方法可以被应用于用于预测频道订阅的数据分析系统中。例如,频道订阅分析系统可以包括用于接收与23个特征相关联的数据项的输入的分析引擎,并提供关于用户是否将订阅该频道的预测。在一个具体的示例中,该分析引擎包括由2层mlp构成的神经网络,并且其中每一层的隐藏单元的数目分别为12个和12个。
通过基于贝叶斯推断将该神经网络转换为贝叶斯神经网络,分析引擎可以确定与不同训练数据的规模相对应的模型不确定性。例如,图7c示出了模型不确定性度量随着训练数据的规模而变化的趋势图700c,由图中可以看到,随着训练数据的增大,模型不确定性度量整体是减少的趋势,因此该趋势可以辅助开发人员确定是否需要增加训练数据的规模,或者是降低神经网络的复杂度。
此外,图7d还示出了不同特征对分布不确定性度量的贡献(特征不确定性度量)的示意图700b,由图700b可以看到,其中与第五个特征相关联的特征不确定性度量最大,因此该数据可以指示开发人员核查与第五特征对应的数据项的采集是否发生故障,以及是否需要替换或修改与第五特征对应的数据项等。
基于本公开的诊断与优化数据分析系统的方法,能够确定频道订阅分析系统当前的性能瓶颈,并相应提高该数据分析系统的性能。
应用三:购物花销分析系统
上文所讨论的诊断和优化数据分析系统的方法可以被应用于用于预测购物花销的数据分析系统中。例如,频道订阅分析系统可以包括用于接收与9个特征相关联的数据项的输入的分析引擎,并提供关于用户例如将在购物节花多少钱的预测。在一个具体的示例中,该分析引擎包括由2层mlp构成的神经网络,并且其中每一层的隐藏单元的数目分别为128个和256个。
通过基于贝叶斯推断将该神经网络转换为贝叶斯神经网络,分析引擎可以确定与不同训练数据的规模相对应的模型不确定性。例如,
图7e示出了模型不确定性度量随着训练数据的规模而变化的趋势图700e,由图中可以看到,随着训练数据的增大,模型不确定性度量整体是减少的趋势,因此该趋势可以辅助开发人员确定是否需要增加训练数据的规模,或者是降低神经网络的复杂度。
此外,图7f还示出了不同特征对分布不确定性度量的贡献(特征不确定性度量)的示意图700f,由图700f可以看到,其中与第一个特征相关联的特征不确定性度量最大,因此该数据可以指示开发人员核查与第一特征对应的数据项的采集是否发生故障,以及是否需要替换或修改与第一特征对应的数据项等。
基于本公开的诊断与优化数据分析系统的方法,能够确定购物花销分析系统当前的性能瓶颈,并相应提高该数据分析系统的性能。
应当理解,上文所列出的具体数据分析系统仅是示意性的,而不旨在作为对本公开的限定。本公开中涉及的诊断和优化数据分析系统的方案可以被应用于任何合适的数据分析系统。
示例设备
图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。例如,如图1所示的数据分析系统110、诊断分析系统140、分析引擎125和/或诊断引擎145可以由设备800来实施。如图所示,设备800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序指令,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。cpu801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程200和/或过程600,可由处理单元801执行。例如,在一些实施例中,过程200和/或过程600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到ram803并由cpu801执行时,可以执行上文描述的过程200和/或过程600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是、但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
1.一种用于诊断数据分析系统的方法,包括:
获取关于待诊断的数据分析系统中的分析引擎的信息和与所述分析引擎相关联的待诊断数据,所述待诊断数据包括用于所述分析引擎的训练数据和预测数据中的至少一项;
基于接收的所述信息,确定与所述分析引擎相对应的诊断引擎;以及
通过利用所述诊断引擎处理所述待诊断数据,提供与所述分析引擎和所述待诊断数据中的至少一项相关联的不确定性度量,所述不确定性度量指示所述分析引擎针对处理所述待诊断数据获得的预测结果的确定程度。
2.根据权利要求1所述的方法,其中基于所述信息确定与所述分析引擎相对应的诊断引擎包括:
响应于所述信息指示所述分析引擎包括神经网络模块,基于所述信息构建所述神经网络模块;
利用概率推断更新所述神经网络模块以获得概率神经网络模块;以及
构建所述诊断引擎以包括经获得的所述概率神经网络模块。
3.根据权利要求2所述的方法,其中基于所述信息确定与所述分析引擎相对应的诊断引擎包括:
响应于所述信息指示所述分析引擎不包括神经网络模块,构建所述诊断引擎以包括经预先配置的概率神经网络模块。
4.根据权利要求1所述的方法,其中所述待诊断数据包括所述训练数据和所述预测数据两者,其中提供所述不确定性度量包括:
通过利用所述诊断引擎处理所述待诊断数据,确定针对所述诊断引擎的总不确定性度量;以及
基于所述总不确定性度量,提供以下多项中的至少一项:模型不确定性度量、数据不确定性度量和分布不确定性度量,
其中,所述模型不确定性度量至少指示所述分析引擎的复杂程度与所述待诊断数据的规模的拟合程度对所述分析引擎的性能的影响;
所述数据不确定性度量至少指示所述待诊断数据的质量对所述分析引擎的性能的影响;并且
所述分布不确定性度量至少指示所述预测数据与所述训练数据的分布的契合程度对所述分析引擎的性能的影响。
5.根据权利要求1所述的方法,其中所述诊断引擎的输入包括分别与不同特征相关联的多个数据项,其中提供所述不确定性度量包括:
基于所述不确定性度量,确定所述多个数据项中的至少一个数据项对所述不确定性度量的贡献。
6.根据权利要求5所述的方法,还包括:
基于所述贡献,提供关于调整所述多个数据项中的至少一个数据项的指示。
7.根据权利要求1所述的方法,还包括:
提供关于调整所述分析引擎和所述待诊断数据中的所述至少一项的指示。
8.根据权利要求7所述的方法,其中提供关于调整所述分析引擎和所述待诊断数据中的所述至少一项的指示包括:
响应于所述不确定性度量大于预定的阈值,提供所述指示。
9.根据权利要求7所述的方法,其中所述待诊断数据包括所述训练数据和所述预测数据两者,其中提供关于调整所述分析引擎和所述待诊断数据中的所述至少一项的指示包括:
通过利用所述诊断引擎处理所述训练数据获取第一不确定性度量;
通过利用所述诊断引擎处理所述预测数据获取第二不确定性度量;以及
基于比较所述第一不确定性度量和所述第二不确定性度量,提供关于调整所述分析引擎和所述待诊断数据中的所述至少一项的指示。
10.一种用于优化数据分析系统的方法,包括:
向诊断系统提供关于数据分析系统中的分析引擎的信息和与所述分析引擎相关联的待诊断数据,所述待诊断数据包括用于所述分析引擎的训练数据和预测数据中的至少一项;
从所述诊断系统接收与所述分析引擎和所述待诊断数据中的至少一项相关联的不确定性度量,所述不确定性度量指示所述分析引擎针对处理所述待诊断数据获得的预测结果的确定程度;以及
基于所述不确定性度量更新所述分析引擎和所述待诊断数据中的至少一项。
11.根据权利要求10所述的方法,其中所述不确定性度量包括模型不确定性度量,所述数据不确定性度量至少指示所述分析引擎的复杂程度与所述待诊断数据的规模的拟合程度对所述分析引擎的性能的影响,其中基于所述不确定性度量更新所述分析引擎和所述待诊断数据中的至少一项包括:
响应于所述模型不确定性度量大于预定的阈值,通过利用附加的训练数据训练所述分析引擎来更新所述分析引擎。
12.根据权利要求10所述的方法,其中所述不确定性度量包括数据不确定性度量,所述数据不确定性度量至少指示所述待诊断数据的质量对所述分析引擎的性能的影响,其中基于所述不确定性度量更新所述分析引擎和所述待诊断数据中的至少一项包括:
响应于所述数据不确定性度量大于预定的阈值,对所述待诊断数据进行丢弃处置。
13.根据权利要求10所述的方法,其中所述不确定性度量包括分布不确定性度量,所述分布不确定性度量至少指示所述预测数据与所述训练数据的分布的契合程度对所述分析引擎的性能的影响,其中基于所述不确定性度量更新所述分析引擎和所述待诊断数据中的至少一项包括:
响应于所述分布不确定性度量大于预定的阈值,利用所述预测数据来再训练来所述分析引擎。
14.根据权利要求10所述的方法,其中所述分析引擎的输入包括分别与不同特征相关联的多个数据项,所述方法还包括:
从所接收的所述不确定性度量确定特征不确定性度量,所述特征不确定性度量指示所述多个数据项中的至少一个数据项对所述不确定性度量的贡献。
15.根据权利要求14所述的方法,其中基于所述不确定性度量更新所述分析引擎和所述待诊断数据中的至少一项包括:
响应于所述特征不确定性度量大于预定的阈值,执行以下中的至少一项:
从所述分析引擎的所述输入中添加更多数据项;
改变特征对应的数据项的属性;或
弃用所述至少一个数据项。
16.一种用于诊断数据分析系统的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据权利要求1-9中任一项所述的方法。
17.一种用于优化数据分析系统的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行根据权利要求10-15中任一项所述的方法。
18.一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1-9中任一项所述的方法。
19.一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求10-15中任一项所述的方法。
技术总结