基于多方安全计算的树模型的训练方法和业务预测方法与流程

文档序号:23590751发布日期:2021-01-08 14:27阅读:144来源:国知局
基于多方安全计算的树模型的训练方法和业务预测方法与流程

本公开涉及机器学习技术,具体涉及一种基于多方安全计算的树模型的训练方法和业务预测方法。



背景技术:

多方安全计算(securemulti-partycomputation,mpc)是针对无可信第三方情况下,安全地进行多方协同的计算问题。即在一个分布式网络中,多个参与实体各自持有秘密输入,各方希望共同完成对某函数的计算,而要求每个参与实体除计算结果外均不能得到其他参与实体的任何输入信息。

相关技术中,可以使用mpc的方法由多方共同训练模型,每个参与方都具有训练模型所需的一部分样本特征。参与mpc计算的多方通常只有其中一个主体方拥有自己的样本标签,其他的参与方只是提供自己的特征协助训练模型。



技术实现要素:

本公开实施例至少提供一种基于多方安全计算的树模型的训练方法和业务预测方法。

第一方面,提供一种基于多方安全计算的树模型的训练方法,所述树模型由参与多方安全计算的多方共同训练,所述多方包括第一数据拥有方和至少一个第二数据拥有方,其中,第一数据拥有方具有各训练样本对应的第一样本标签,所述第二数据拥有方具有训练样本对应的第二样本标签;所述方法包括:

所述第一数据拥有方接收所述第二数据拥有方发送的每个训练样本分别对应的第二加密中间参数,其中,所述第二加密中间参数是由第二数据拥有方根据所述第二样本标签获得第二中间参数后再进行同态加密得到;

基于本轮迭代对应的分裂特征,将各训练样本划分得到样本集合;

将所述样本集合中所有样本的第二加密中间参数统计后返回至第二数据拥有方,以使得所述第二数据拥有方解密得到第二中间参数统计值;

对于每个训练样本,根据所述第一样本标签获得第一中间参数,并统计所述样本集合中所有样本的第一中间参数统计值;

基于中间参数,调整所述树模型的模型参数,其中,所述中间参数是根据所述第一中间参数统计值、以及第二中间参数统计值得到。

第二方面,提供一种基于树模型的业务预测方法,所述方法包括:

接收业务对象的对象特征;

将所述对象特征输入预先训练的树模型,其中,所述树模型按照本公开任一实施例所述的方法训练得到,得到所述树模型输出的业务预测结果。

第三方面,提供一种基于多方安全计算的树模型的训练装置,所述树模型由参与多方安全计算的多方共同训练,所述多方包括第一数据拥有方和至少一个第二数据拥有方,其中,第一数据拥有方具有各训练样本对应的第一样本标签,所述第二数据拥有方具有训练样本对应的第二样本标签;所述装置包括:

参数接收模块,用于接收所述第二数据拥有方发送的每个训练样本分别对应的第二加密中间参数,其中,所述第二加密中间参数是由第二数据拥有方根据所述第二样本标签获得第二中间参数后再进行同态加密得到;

分裂处理模块,用于基于本轮迭代对应的分裂特征,将各训练样本划分得到样本集合;

统计处理模块,用于将所述样本集合中所有样本的第二加密中间参数统计后返回至第二数据拥有方,以使得所述第二数据拥有方解密得到第二中间参数统计值;对于每个训练样本,根据所述第一样本标签获得第一中间参数,并统计所述样本集合中所有样本的第一中间参数统计值;

参数调整模块,用于基于中间参数,调整所述树模型的模型参数,其中,所述中间参数是根据所述第一中间参数统计值、以及第二中间参数统计值得到。

第四方面,提供一种基于树模型的业务预测装置,所述装置包括:

特征接收模块,用于接收业务对象的对象特征;

预测处理模块,用于将所述对象特征输入预先训练的树模型,其中,所述树模型按照本公开任一实施例所述的训练方法训练得到,得到所述树模型输出的业务预测结果。

第五方面,提供一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施例所述的方法。

第六方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的方法。

本公开实施例提供的基于多方安全计算的树模型的训练方法和业务预测方法,通过拥有标签的双方在计算过程中的树模型节点更新利用了基于两方标签计算得到的参数,可以不泄露各方数据(包括标签),实现了多标签都参与了树模型的训练,能够很好地利用不同参与方所拥有的样本标签,提高了树模型的预测准确性。

附图说明

为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了本公开至少一个实施例提供的一种树模型训练方法的原理图;

图2示出了本公开至少一个实施例提供的一种树模型的分裂示意图;

图3示出了本公开至少一个实施例提供的一种树模型的迭代训练过程示意;

图4示出了本公开至少一个实施例提供的一种基于树模型的业务预测方法;

图5示出了本公开至少一个实施例提供的一种基于多方安全计算的树模型的训练装置的结构示意图;

图6示出了本公开至少一个实施例提供的一种业务预测装置的结构图。

具体实施方式

为了使本技术领域的人员更好地理解本公开一个或多个实施例中的技术方案,下面将结合本公开一个或多个实施例中的附图,对本公开一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。

随着机器学习技术的不断发展,很多业务领域可以利用机器学习模型来处理业务问题,例如,在金融风控场景下,可以利用树模型来预测一笔交易是否存在风险。而该树模型需要预先进行训练,实际训练所需的数据往往会涉及到交易涉及到的多方,例如,电子支付平台拥有交易用户的交易账户数据,商户方拥有该交易用户的交易资金数据等。可以利用该多方各自拥有的数据共同完成对树模型的训练,这样可以使得训练得到的树模型预测效果更好。

然而,由于行业竞争、数据安全、用户隐私等问题,各方的数据不能泄露给另一方,如何在既保护各方数据隐私安全的基础上,又能利用各方数据共同训练业务要使用的树模型成为一项挑战。相关技术中,可以将多方安全计算mpc技术应用于树模型的训练,即多方通过mpc技术协同训练树模型。

本公开实施例提供了一种多方协同通过mpc技术训练树模型的方法,如图1所示,假设参与协同训练树模型的多方包括:a方和b方(以两方为例,实际实施中可以有更多方参与)。假设a方是电子支付平台,其拥有的数据可以包括一笔交易涉及的账户信息,比如,该账户信息可以包括对应用户的年龄、住址、姓名等数据。假设b方是商户方,可以拥有一笔交易涉及的交易金额、交易地点、交易时间等数据。可以通过a方和b方的数据协同训练一个用于预测一笔交易是否存在风险的树模型,该树模型可以通过数量较多的训练样本进行训练。

每一个训练样本可以表示如下:

{x1,x2,........xn}

其中,n是自然数,x1至xn是该训练样本包括的多个样本特征。

假设样本特征x1~x7属于a方拥有,例如当训练样本是交易样本时,该样本特征x1~x7可以是年龄、性别等交易特征;样本特征x8~xn属于b方拥有,例如可以是交易金额、交易时间等交易特征。

即a方和b方拥有训练样本中的不同的样本特征。

本公开实施例中,还假设a方和b方都拥有对应于同一训练样本的样本标签,比如,以某一笔交易数据为例,a方拥有的样本标签可以是“该交易存在风险”,b方拥有的样本标签可以是“该交易不存在风险”。需要说明的是,上述的训练样本中包括的各个样本特征以及样本标签仅是示例,实际实施中不局限于此,a方和b方拥有的样本标签可以相同也可以不同。

在传统技术中,mcp多方训练模型时通常都是只有一方具有样本标签,而本公开实施例提供的树模型的训练方法,将说明在上述mpc的多方具有多个标签的情况下,如何协同训练树模型。如下描述中,树模型以xgboost为例,但可以理解的是,该方法同样可以适用于gbdt(gradientboostdecisiontree,梯度提升树)等其他树模型。

以xgboost为例,该树模型的迭代训练过程中将不断的添加树,不断的进行特征分裂来生长一颗树。每次添加一颗树,比如,添加第t颗树时,就是学习一个新函数,去拟合之前的t-1颗树的预测结果与训练样本的标签值之间的残差。直至模型训练结束时,得到包括多颗树的xgboost模型。

以其中的第t颗树的训练为例,说明该第t颗树如何进行训练。请结合参见图2所示,该第t颗树的训练,主要找到在节点f处以何种特征进行分裂、以及分裂的最佳特征值。例如,训练样本{x1,x2,........xn}共有年龄、性别等n种样本特征,可以选择其中的“年龄”作为本轮迭代在节点f处尝试的分裂特征,假设该节点f以“年龄<12岁”为条件将训练样本分成两组,该“12”就是尝试的分裂特征值。在训练过程中,可以尝试多种特征和多种特征值进行分裂,例如,还可以在节点f处尝试“年龄<8”进行分裂,或者还可以尝试以特征“性别”进行分裂,等。具体选择何种特征和特征值进行节点分裂,可以通过损失函数来衡量。比如,xgboost可以通过如下公式(1)的损失函数来衡量分裂的优劣:

其中,i表示第i个训练样本,il表示分裂后的左子树的训练样本集合,ir表示分裂后的右子树的训练样本集合,其中,可以结合参见图2,在节点f处分裂后可以将训练样本划分到左子树和右子树。γ可以表示加入新叶子节点引入的复杂度代价。gi是训练样本i的一阶偏导,hi是训练样本i的二阶偏导。

当根据公式(1)的损失函数确定好第t颗树的树结构,确定了该第t颗树中包括的各个分裂节点处的特征和特征值后,可以根据公式(2)计算该第t颗树的叶子节点的节点权重(也可以称为叶子节点处的分数),如此第t颗树的训练完成。xgboost树模型中的各颗树都可以按照该方式进行训练。

其中,是叶子节点j的节点权重,i∈ij表示训练样本i属于叶子节点j处的样本集合ij,即这些样本在分裂划分样本时落在了节点j侧。gi是训练样本i的一阶偏导,hi是训练样本i的二阶偏导。

通过上述的公式(1)和公式(2)可以看到,xgboost树模型的训练过程中,计算出各个训练样本分别对应的gi和hi,就可以据此进行模型迭代了。如下将通过图3示例一种xgboost树模型中的第t颗树的迭代训练过程,并且,假设当前的迭代步骤中,正在尝试在节点f处分裂特征,并假设分裂特征是“年龄”,该特征“年龄”属于图2中的b方拥有的数据。

那么,可以将b方称为第一数据拥有方,即在本实施例的描述中,第一数据拥有方是拥有分裂特征的一方,其拥有的训练样本的样本标签可以称为第一样本标签;可以将a方称为第二数据拥有方,即第二数据拥有方是没有分裂特征的一方,其拥有的训练样本的样本标签可以称为第二样本标签。

在步骤300中,第二数据拥有方根据自己拥有的第二样本标签,获得第二中间参数。

本实施例以xgboost树模型为例,那么上述的第二中间参数可以包括:gi和hi,第二数据拥有方可以根据第二样本标签,计算每个训练样本分别对应的gi和hi。请参见如下的公式(3)和公式(4):

如上公式中,是训练样本i在已经训练得到的t-1棵树对应的预测结果,yi是训练样本i的样本标签,比如是第二样本标签。由于t-1棵树已经训练完成,所以可以认为是常量,第二数据拥有方根据该和自己拥有的第二样本标签,就可以计算得到训练样本i对应的gi和hi。本实施例将第二数据拥有方计算得到的该gi和hi称为第二中间参数。

比如,假设现在包括100个训练样本,第二数据拥有方对于每个训练样本都拥有其对应的第二样本标签。相应的,第二数据拥有方可以根据公式3和公式4,对每个训练样本都可以计算得到对应的第二中间参数gi和hi。

在步骤302中,第二数据拥有方对第二中间参数进行同态加密,得到第二加密中间参数。本步骤中,第二数据拥有方对gi和hi进行同态加密,得到第二加密中间参数<gi>和<hi>。

在步骤304中,第二数据拥有方将每个训练样本分别对应的第二加密中间参数,发送至第一数据拥有方。

例如,每个训练样本都有自己对应的第二加密中间参数<gi>和<hi>,第二数据拥有方可以将每个训练样本的第二加密中间参数<gi>和<hi>发送至第一数据拥有方。

在步骤306中,第一数据拥有方根据分裂特征,将训练样本划分得到不同的样本集合。

本实施例中,在节点f处尝试的分裂特征是“年龄”,比如,以“年龄<12”为条件进行分裂,将落在该节点f处的所有训练样本分成两个样本集合,一个是左子树,可以称为第一分支集合,另一个是右子树,可以称为第二分支集合。每个样本集合中都可以包括一定数量的训练样本。

在步骤308中,第一数据拥有方将所述样本集合中所有样本的第二加密中间参数进行统计后返回至第二数据拥有方。

例如,第一数据拥有方可以将第一分支集合中所有训练样本的第二加密中间参数<gi>和<hi>进行统计,该统计可以是进行求和得到:

其中,il表示第一分支集合,i是该第一分支集合中的训练样本。

并且还按照公式(6)计算如下:

可以将上述统计求和得到的数值<gl>和<hl>,称为第一分支集合对应的第二加密中间参数统计值。本步骤中,第一数据拥有方还可以将该第一分支集合对应的第二加密中间参数统计值发送至第二数据拥有方。

需要说明的是,上述是以统计第一分支集合对应的第二加密中间参数统计值为例,实际还可以统计第二分支集合对应的第二加密中间参数统计值。

在步骤310中,第二数据拥有方解密上述所有样本的第二加密中间参数的统计值后,得到第二中间参数统计值。

例如,第二数据拥有方可以解密在步骤308中接收到的第二加密中间参数的统计值<gl>和<hl>,得到第二中间参数统计值gl和hl。

此外,在xgboost模型中,除了计算得到左子树对应的统计值gl和hl,还可以计算右子树对应的统计值gr和hr,这些统计值用于后续损失函数的计算。例如,由于所有训练样本的第一中间参数统计值是固定的,那么,可以只计算左子树的统计值gl和hl,再结合所有训练样本的第一中间参数统计值和该左子树的统计值,相减即可得到右子树对应的第一中间参数统计值。

在步骤312中,第一数据拥有方根据自己拥有的第一样本标签,获得第一中间参数,并统计样本集合中所有样本的第一中间参数统计值。

本步骤中,第一数据拥有方也可以根据自己拥有的第一样本标签计算得到第一中间参数gi和hi,并统计左子树对应的所有样本的第一中间参数统计值gl和hl。为了将两侧进行区分,可以将第一数据拥有方本侧得到的统计值gl和hl表示为可以将第二数据拥有方发送过来的统计值gl和hl表示为

此外,第一数据拥有方在计算本侧的第一中间参数统计值时,可以直接对左子树中所有样本的第一中间参数gi和hi求和得到,不用再进行同态加密。或者,也可以先对第一中间参数gi和hi同态加密,将同态加密后的值求和后再解密得到

接着,第一数据拥有方可以基于中间参数调整树模型的模型参数,其中,所述中间参数是根据所述第一中间参数统计值、以及第二中间参数统计值得到。而本实施例并不限制哪方执行根据第一中间参数统计值、以及第二中间参数统计值得到中间参数,例如,可以由第一数据拥有方执行,也可以由第二数据拥有方执行获得中间参数后发给第一数据拥有方,还可以由第三方设备执行获得中间参数后发给第一数据拥有方。如下步骤继续以第一数据拥有方执行为例。

需要说明的是,本实施例不限制各步骤的执行顺序,比如,步骤314可以在步骤312之前执行。

在步骤314中,第二数据拥有方将第二中间参数统计值发送给第一数据拥有方。

在步骤316中,第一数据拥有方根据第一中间参数统计值、以及第二中间参数统计值,得到中间参数。

例如,可以将第一中间参数统计值、以及第二中间参数统计值进行加权平均,得到中间参数gl或者hl。实际训练过程中,可以按照双方标签的可信度适当调整权重以更好地计算参数平均。

其中,可以称为第一中间参数统计值,可以称为第二中间参数统计值。

在步骤318中,根据中间参数,调整所述树模型的模型参数。

例如,第一数据拥有方可以根据得到的中间参数gl或者hl,按照公式(1)计算损失函数,来评估本次分裂带来的增益。示例性的,如果损失函数的值大于某个设定的阈值,则可以考虑该分裂结果,并在遍历各个特征和特征值尝试分裂后,选取分裂后增益最大的特征和特征值,作为节点f处的最佳分裂点。详细的树模型的分裂过程可以按照常规方式进行,不再详述。

在调整树模型的模型参数直至所述树模型的树结构确定后,可以根据所述中间参数gl或者hl计算所述树模型的叶子节点的节点权重。比如可以按照公式(2)计算叶子节点的权重,根据落在该叶子节点的所有训练样本的中间参数来计算。确定了树结构和叶子节点的权重后,该第t颗数就训练完成,可以继续进行下一颗树的训练。

本实施例的基于多方安全计算的树模型的训练方法,拥有标签的双方在计算过程中的地位是平等的,树模型中每个节点的更新都是利用了基于两方标签计算得到的参数,并且还可以不泄露各方数据(包括标签),从而实现了多标签都参与了树模型的训练,能够很好地利用不同参与方所拥有的样本标签,提高了树模型的预测准确性。

在其他的示例中,当第二数据拥有方的数量为多个时,比如,b方是第一数据拥有方,a方和c方都是第二数据拥有方(且都拥有样本标签),分裂特征“年龄”在b方。这种情况下,b方可以分别接收每一个第二数据拥有方发送的解密得到的第二中间参数统计值,比如,c方的处理过程与图3流程中的a方处理过程类似,c方也可以将根据自己拥有的样本标签算出各个训练样本分别对应的第二中间参数gi和hi,并同态加密后(第二加密中间参数)发给b方,b方将左子树对应的样本集合的第二加密中间参数统计求和后返回给c方,由c方解密得到第二中间参数统计值。

b方在得到各个第二数据拥有方返回的第二中间参数统计值后,可以基于第一中间参数统计值以及多个第二中间参数统计值,得到中间参数。比如,可以将第一中间参数统计值以及多个第二中间参数统计值加权平均得到该中间参数。

此外,上述例子是以xgboost为例进行说明,当其他的树模型时,可以采取类似的方式进行树模型中每一颗树的训练,不同的地方可以是评价分裂所使用的损失函数或者叶子节点权重的计算方式不同。

在树模型训练完后,可以利用该树模型进行业务预测,图4示例了一种基于树模型的业务预测方法,如图4所示,该方法可以包括:

在步骤400中,接收业务对象的对象特征。

例如,假设要预测一笔交易是否存在风险,本步骤接收的可以是交易数据的交易特征,业务对象即一笔交易数据,对象特征可以是交易时间、交易金额、交易用户的用户信息等。

在步骤402中,将所述对象特征输入预先训练的树模型,其中,所述树模型按照本公开任一实施例所述的训练方法训练得到,得到所述树模型输出的业务预测结果。

本步骤中所使用的树模型可以是按照本公开任一实施例提供的方法训练得到的树模型,将交易数据输入该树模型后,可以得到业务预测结果,即该笔交易数据是否存在风险。

由于本公开实施例在训练树模型时,是使用了参与多方安全计算的多方拥有的多个样本标签,该多标签的训练方式相比于单标签方式更有助于提升模型性能,提高模型的预测结果准确性,因此在利用该树模型进行业务预测时,能够使得业务预测结果的输出更加准确。

图5示例了一种基于多方安全计算的树模型的训练装置,所述树模型由参与多方安全计算的多方共同训练,所述多方包括第一数据拥有方和至少一个第二数据拥有方,其中,所述第一数据拥有方具有各训练样本对应的第一样本标签,所述第二数据拥有方具有所述训练样本对应的第二样本标签。该装置可以应用于执行本公开任一实施例的训练方法。如图5所示,该装置可以包括:参数接收模块51、分裂处理模块52、统计处理模块53和参数调整模块54。

参数接收模块51,用于接收所述第二数据拥有方发送的每个训练样本分别对应的第二加密中间参数,其中,所述第二加密中间参数是由第二数据拥有方根据所述第二样本标签获得第二中间参数后再进行同态加密得到。

分裂处理模块52,用于基于本轮迭代对应的分裂特征,将各训练样本划分得到样本集合。

统计处理模块53,用于将所述样本集合中所有样本的第二加密中间参数统计后返回至第二数据拥有方,以使得所述第二数据拥有方解密得到第二中间参数统计值;对于每个训练样本,根据所述第一样本标签获得第一中间参数,并统计所述样本集合中所有样本的第一中间参数统计值。

参数调整模块54,用于基于中间参数,调整所述树模型的模型参数,其中,所述中间参数是根据所述第一中间参数统计值、以及第二中间参数统计值得到。

在一个例子中,统计处理模块53,在用于基于中间参数,调整所述树模型的模型参数时,包括:对所述第一中间参数统计值、以及第二中间参数统计值,以各自的权重系数进行加权平均,得到所述中间参数。

在一个例子中,统计处理模块53,在用于基于中间参数,调整所述树模型的模型参数时,包括:当所述第二数据拥有方的数量为多个时,分别接收每一个第二数据拥有方发送的解密得到的第二中间参数统计值;基于第一中间参数统计值以及多个第二中间参数统计值,得到中间参数。

在一个例子中,参数调整模块54,还用于在调整所述树模型的模型参数直至所述树模型的树结构确定后,根据所述中间参数计算所述树模型的叶子节点的节点权重。

图6示例了一种基于树模型的业务预测装置,该装置可以应用于实现本公开任一实施例的业务预测方法。如图6所示,该装置可以包括:特征接收模块61和预测处理模块62。

特征接收模块61,用于接收业务对象的对象特征;

预测处理模块62,用于将所述对象特征输入预先训练的树模型,其中,所述树模型按照本公开任一实施例所述的训练方法训练得到,得到所述树模型输出的业务预测结果。

在一个例子中,所述业务对象是交易数据;所述树模型输出的业务预测结果,用于表示所述交易数据是否存在风险。

本公开至少一个实施例提供了一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一所述的树模型的训练方法或者业务预测方法。

本公开至少一个实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一所述的树模型的训练方法或者业务预测方法。

本领域技术人员应明白,本公开一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本公开一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开实施例还提供一种计算机可读存储介质,该存储介质上可以存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例描述的用于文字识别的神经网络的训练方法的步骤,和/或,实现本公开任一实施例描述的文字识别方法的步骤。其中,所述的“和/或”表示至少具有两者中的其中一个,例如,“多和/或b”包括三种方案:多、b、以及“多和b”。

本公开中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本公开中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本公开中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本公开中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。

本公开中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如fpg多(现场可编程门阵列)或多sic(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。

适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(pd多)、移动音频或视频播放器、游戏操纵台、全球定位系统(gps)接收机、或例如通用串行总线(usb)闪存驱动器的便携式存储设备,仅举几例。

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如eprom、eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及cdrom和dvd-rom盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。

虽然本公开包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本公开内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。

由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

以上所述仅为本公开一个或多个实施例的较佳实施例而已,并不用以限制本公开一个或多个实施例,凡在本公开一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开一个或多个实施例保护的范围之内。

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