发明内容
本说明书实施例提供一种数据特征评估方法、装置及设备,用于解决如下问题:以提供一种更有效的数据特征评估方案。
基于此,本说明书实施例提供一种数据特征评估方法,包括:
获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
同时,本说明书的实施例还提供一种数据特征评估装置,包括:
评分模块,获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
生成模块,针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
计算模块,获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
评估模块,根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
对应的,本说明书实施例还提供一种数据特征评估设备,包括:
存储器,存储有数据特征评估程序;
处理器,调用存储器中的数据特征评估程序,并执行:
获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
对应的,本说明书的实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过使用特征变量的特征值对待评估数据样本进行数据重构,生成模拟数据样本,然后使用数据模型对模拟数据样本进行评分,从而可以确定在改变某个特征变量的值将会对于数据样本的评分造成多大变化,进而可以根据评分的变化得知该特征变量取值对于待评估数据样本的评分的影响,每个特征变量对于评分的影响可以通过可量化的特征贡献值得到体现。因此,数据模型的使用者可以对每个特征的贡献大小进行评估,并针对每个数据为什么会有这样的评分生成关键特征信息,以便参考。在这种方式下,模型使用者不需要对于业务问题有深入了解,计算过程也跟数据模型的使用场景无关,同时计算过程也可以完全自动化的,不需要人介入,效率大幅提升。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如前所述,机器学习已经广泛应用于各种业务场景,比如,机器学习可以用来帮助判断一笔交易是不是异常,判断用户的某个操作是不是有风险,判断申请贷款的用户是否会还款等等。其方式,一般是基于训练样本训练得到一个数据模型,再使用这个数据模型对数据进行异常检测。其中,训练样本可以是有标的也可以是无标的。
在这个过程中,对于很多数据模型结果的使用者来说,机器学习模型往往像一个“黑箱”一样,虽然可以给出检测结果,辅助决策,但是对于模型为什么会给出这样的结论,往往是不清楚的。这种不可解释性,降低了该数据模型的友好程度,也降低了***的易用性。因此,为了向业务人员解释模型结果,一般会在模型结果的基础上给出一些简单的解释说明,也就是模型结果的关键特征信息,用于解释说明是哪些因素造成了数据模型会这样评分或者分类,这样可以辅助业务人员更好的做业务决策。
在当前,主要有如下方式可以用于生成关键特征信息:
1,基于训练标签来生成关键特征信息:训练标签是指机器模型要预测的目标,比如,判断一笔交易是不是虚假交易,那该笔交易是否虚假(取值只有是/不是)就是模型的标签。当训练数据里有训练标签的时候,可以根据训练标签来计算不同特征变量对于目标数据的区分能力,或者,可以选用可解释性比较强的模型。这种方式严重依赖标签数据的存在,如果在真实的场景中没有标签数据,则无法使用。
2,基于业务规则由人为制定关键特征信息,。例如,在一个贷款的应用场景下,业务人员的主观经验中,类似用户有没有工作,用户年收入多少,用户有没有房产等信息变量,往往对于最终模型结果有重要影响。那么基于这些业务知识,可以人为的设定一些业务规则,只关注这些重要的特征信息,并输出这些重要特征变量的取值作为关键特征信息。这种方式,需要模型的使用者具有较强的业务知识,同时该方法无法自动化,即,同样的模型换一个应用场景就需要重新制定规则,效率低。
基于上述内容,本说明书实施例提供一种数据特征评估方案,通过对原始数据样本的微小改动,生成模拟数据样本,实现量化衡量某个特征变量对数据模型评分结果的影响程度,从而对于任意的数据样本,可以准确评估出对于该数据样本影响程度大的特征变量,无需了解应用场景并且可自动化实施,更为有效。
如图1所示,图1为本说明书实施例所提供的数据特征评估方案的流程示意图,包括如下步骤:
S101,获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值。
在机器学习模型中,数据样本一般而言为一条包含多个特征变量的向量。通过一定数量的训练样本,采用预设的算法进行模型训练,得到一个准确度或者精确度符合预期的数据模型。而后,即可以采用该训练好的数据模型对于未知的数据样本(即待评估数据样本)进行检测。方式一般即为根据该各特征向量的值得出一个评分值(评分值可以根据实际需求选择是否归一化处理),而后根据该评分值进行确定。
例如,采用一个孤立森林(Isolation Forest)算法对一个交易数据进行评估,判断其是否为异常数据。一般地,可以将交易数据视为一个包含m维度特征变量的向量,其中,每个特征变量其可以是关于交易金额、交易频次、买卖家当天交易次数或者跟前一笔交易的时间间隔等信息,即各特征向量具有对应的值。换言之,对于第i笔交易数据Ti,有m个特征变量来描述这笔交易信息:C1,C2,…,Cm。即,Ti={C1,C2,…,Cm}。给定一个利用IsolationForest算法训练好的数据模型时,输入Ti={C1,C2,…,Cm},则数据模型会给这笔交易打一个分值,用来表示交易的异常程度,打分可以是一个介于0和1之间的归一化分值,分值越高越异常。如果没有评估规则,则可能无法得知为什么数据模型会打出相应的分值。
S103,针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本。
在无监督的异常检测算法中,一般而言,其具有如下规律:a)异常数据在全部数据中是少的;b)异常数据跟其他大多数数据不一样。
从而,为了评估一个异常数据中各特征变量对其评分结果的影响,基本的思路即为保持其他特征变量取值不变,用所述特征变量的特征值对待评估数据样本中同一特征变量下的值进行替换。其中,特征变量的特征值一般而言是预先得到的,是所有数据样本取值中最为常见或者最具有代表性的的那个值,其对于数据整体具有一般的代表性。其方式可以是根据经验得到,或者,对训练样本(即训练数据模型的数据样本)进行统计得到。
容易理解,若一个数据样本的特征变量均为具有代表性的特征值,则该数据不大可能是异常数据,数据模型对其的评分就应该符合正常数据范围(例如,在IsolationForest算法中,该数据样本的评分值就应该趋近于零)。
因此,我们可以使用特征值去替换待评估数据样本中对应的值,而得到一个模拟数据样本,例如,对于给定一笔交易数据Ti={C1,C2,…,Cm},对于Ti中的第j个特征变量Cj而言,若其特征值为Cj’,则可以使用Cj’替换Cj的原有值,,生成模拟数据样本Tij={C1,C2,…,Cj’,…,Cm},这里的Tij除了第j个特征的值为Cj’以外,其他特征信息跟原交易数据保持不变。基于Ti有m个特征变量,从而我们可以生成m笔模拟数据样本。在每一笔模拟数据样本中,跟原交易数据Ti相比,只在某一个特征变量的取值上不一样,其它取值保持不变。
如图2所示,图2为本说明书实施例所提供的一种构造模拟数据样本的示意图。原始的待评估交易数据样本包含四个特征变量:买家性别,交易金额,买家当天交易次数,买家与上一次交易事件间隔,其各自的特征值分别为0(代表女性)、75(代表平均交易金额)、1.2(代表每个买家日交易次数)、22(代表每个买家平均交易间隔),为对于待评估的数据Ti而言,Ti={1,1000,20,2},从而,可以构造出对应的四个模拟数据样本,Ti1={0,1000,20,2},Ti2={1,75,20,2},Ti3={1,1000,1.2,2},Ti4={1,1000,20,22}。
S105,获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值。
在得到m个模拟数据样本之后,即可以采用之前同一数据模型给上述m个模拟数据样本分别评分。续前例,将们将数据模型对于原交易数据Ti的打分表示为Si,将模型对于Ti1,Ti2,…,Tim的打分分别表示为Si1,Si2,…,Sim(即,Tij的打分为Sij),从而得到全部打分之后,我们可以计算每一个特征变量对于原始数据评分的贡献大小,记对于第i笔交易数据Ti的第j个特征变量的特征贡献值为Vij,Vij用于衡量将Ti中第j个特征变量的值替换成该特征变量的特征值之后,数据模型对于模拟数据样本的打分跟对于原始数据的打分的差异。Vij可以是一个绝对贡献值,也可以是一个相对贡献值,其计算方法根据实际需要的不同可以自行调整。例如,绝对贡献值Vij=|Si-Sij|。
采用上述方式,针对每个特征变量进行计算,可以得到量化的m个分别表征各自特征变量的特征贡献值Vij。
S107,根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
基于上述内容,可以得知对于一个m维的数据样本而言,正是由于其各特征变量的取值偏离了特征值,造成数据模型对其评分异常(在Isolation Forest里表现为分值偏高),从而特征贡献值Vij越大,反映了在该数据模型下,待评估数据样本中第j个变量对数据评分的影响越大。对于异常数据而言,正是由于其某些特征变量的取值偏离特征值太远,造成其被认定为异常,从而在这种方案下,能够有效的发现其中某些取值不正常的特征变量,从而针对任一未知数据,特别是被那些被数据模型确认为异常数据的待评估数据,都可以有效的对数据中的特征变量进行评估。
在上述方案中,通过使用特征变量的特征值对待评估数据样本进行数据重构,生成模拟数据样本,然后使用数据模型对模拟数据样本进行评分,从而可以确定在改变某个特征变量的值将会对于数据样本的评分造成多大变化,进而可以根据评分的变化得知该特征变量取值对于待评估数据样本的评分的影响,即每个特征变量对于评分的影响可以通过可量化的特征贡献值得到体现。因此,数据模型的使用者可以对每个特征的贡献大小进行评估。在这种方式下,模型使用者不需要对于业务问题有深入了解,计算过程也跟数据模型的使用场景无关,同时计算过程也可以完全自动化的,不需要人介入,效率大幅提升。
在实际应用中,对于S103中的特征变量的特征值,一般而言,可由数据模型的使用者根据经验事先确定,也可根据数据模型的训练样本进行统计而得到,具体方式如下:
获取所述数据模型的全体训练样本;确定所述全体训练样本在所述特征变量下各自对应的值;根据所述全体训练样本在所述特征变量下各自对应的值计算生成所述特征变量的特征值。
即对于每个特征值,应根据训练样本中该特征变量的各数值进行统计而得到,因为用于评分的数据模型基于训练样本得到,训练样本中各特征变量的值对于数据模型的评分具有较大影响。
作为一种具体的实施方式,所述的统计值可以采用如下方式得到:根据所述全体训练样本在所述特征变量下各自对应的值生成统计值;将所述统计值确定为所述特征变量的特征值,其中,所述统计值包括中位数、众数或者平均数中的至少一种。中位数即为取值顺序位于中点的取值,众数即为出现次数最多的取值,容易理解,中位数、众数或者平均数对于一个数据样本的取值具有一定的代表性,具体取哪一个,可以根据实际需要决定。
例如,在一个离散型的特征变量下(例如,性别、学历等等),一般则可以选择众数作为特征值。比如,在交易数据Ti中,第j个特征变量Cj的取值为0、1或者2中的一种,其中值1是样本中取值最多的,则特征值Cj’为1。
进一步地,还可以采用部分具有代表性的训练样本还代表全体训练样本,然后用部分训练样本中的统计数值来表征特征值,对于部分训练样本的选定方式,可以采用如下方式:
根据所述全体训练样本在所述特征变量下各自对应的值,从所述全体训练样本中选出部分训练样本;根据所述部分训练样本在所述特征变量下各自对应的值生成统计值。
例如,对于某个特征变量Cj,确定其在全体训练样本的取值区间为[0,100],则可以基于经验设定,取位于中间的20%区间,即取值区间[40,60]作为代表区间,凡是Cj取值落入该区间的训练样本则被确定为具有代表性的所述部分训练样本。从而,根据这部分训练样本的统计数值去确定特征值,采用部分训练样本代替全体训练样本,可以降低在确定特征值过程中的计算量,提高计算效率。
更进一步地,对于上述方案中,选出部分训练样本,还可以采用分箱的方式进行,具体包括如下:
获取所述全体训练样本在所述特征变量下各自对应的值的最小值和最大值,确定取值区间;根据固定的取值长度,对所述取值区间进行等值分箱,生成若干分箱取值区间;确定各分箱取值区间所包含的取值数量;将取值数量最大的分箱取值区间所对应的训练样本确定为所述部分训练样本。
即对于取值为连续型的特征变量(例如,交易金额)而言,可以将该变量进行离散处理。即,首先确定训练样本的取值区间,然后等值分箱(分箱的长度可以根据实际需要自行确定)为若干分箱取值区间,而后,选取取值最多的区间为最能代表该特征变量的取值区间,进而,可以根据该取值区间内的取值进行统计得到该特征变量的特征值。
在实际应用中,对于特征贡献值Vij的计算方式,一般而言,即可以采用如下两种方式得到:
第一种,确定所述待评估数据样本的评分和所述模拟数据样本的评分的差的绝对值;将所述差的绝对值确定所述特征变量的特征贡献值,Vij=|Si-Sij|,这种方式得到的Vij可以称为绝对特征贡献值。
第二种,将所述差的绝对值与所述待评估数据样本的评分的商确定为所述特征变量的特征贡献值,即Vij=|Si-Sij|/Si,这种方式下得到的特征贡献值可以称为相对特征值。
此外,还可以对绝对特征贡献值进行平方、开方、乘以某个缩放系数或者归一化等等方式进行进一步的处理,这些都可以根据实际需要进行设定,并不构成对本方案的限定。
在实际应用中,模型使用者可能并不想看到对于一个异常数据中所有特征变量评估情形,其仅仅希望知道是哪几个特征变量造成了数据异常,从而,对于所述S107中的,根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估,包括:
根据各特征贡献值的大小对待评估数据样本中的特征变量进行排序,生成排序结果;从排序结果中最前开始取指定数量的特征变量,将其确定为影响所述待评估数据样本的评分的关键特征变量。
具体而言,即为对特征贡献值按从大到小排序,确定前n(n可以自己根据需要自由设定)个特征变量即为对待评估数据样本评分影响最大的关键特征变量。
进一步地,在实际应用中,数据模型在对于待评估数据样本进行评分或者分类时,还可以根据已经确定的特征变量获取对应的值,生成对应的关键特征信息,伴随数据模型的评分结果,一起输出,其方式如下:针对任一关键特征变量,获取在待评估数据样本中其所对应的值;生成包含全部关键特征变量和对应的值的关键特征信息,以便用户根据所述关键特征信息进行业务处理。
如图3所示,图3为本说明书实施例所提供的输出关键特征信息的示意图。对于某个待评估数据Ti而言,数据模型对于其判定为异常数据,其包含有从C1,至C10十个特征变量,通过上述方案,确定了对于Ti而言,其特征贡献值最大的三个特征变量分别为C1、C2和C3,取值分别为a、b和c。从而在数据模型输出检测结果为“异常”的同时,还可以输出如图3所示的关键特征信息infocode(Ti)={C1=a;C2=b;C3=c}。模型的使用者就可以知道是因为这三个关键特征变量的取值造成了数据模型给该笔交易的具体分类为异常,可以更加清楚明白的做业务决策了。该过程中,对于整体而言,如图4所示,图4为本说明书实施例所提供的输出关键特征信息的示意框图,如4所示,整个过程包括数据输入、数据重构、计算Vij和输出infocode四个部分。
需要说明的是,上述方案在说明时一般是针对异常数据进行举例,但在实际应用中,采用上述方案可用于对任意数据的特征进行评估。对于数据模型所采用的算法也不限于Isolation Forest算法,只需所采用的算法对于数据的检测是基于对数据特征的取值进行量化评分的基础上进行的即可。
此外,上述方案在构造模拟数据样本时,限定了只改变一个特征变量,其它取值不变,但是也可以是改变包括多个特征变量的组合的各自取值,而同时保持其它取值不变。从而,得到的特征贡献值可以用于衡量该特征变量的组合对于数据评分的影响。在这种方式下,可以将上述的包括多个特征变量的组合视为一个复合特征变量即可。
基于同样的思路,本发明还提供一种数据特征评估装置,如图5所示,图5为本说明书实施例所提供的数据特征评估装置的结构示意图,包括:
评分模块501,获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
生成模块503,针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
计算模块505,获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
评估模块507,根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
进一步地,所示装置还包括特征值获取模块509,获取所述数据模型的全体训练样本;确定所述全体训练样本在所述特征变量下各自对应的值;根据所述全体训练样本在所述特征变量下各自对应的值计算生成所述特征变量的特征值。
进一步地,所述特征值获取模块509,根据所述全体训练样本在所述特征变量下各自对应的值生成统计值;将所述统计值确定为所述特征变量的特征值,其中,所述统计值包括中位数、众数或者平均数中的至少一种。
进一步地,所述特征值获取模块509,根据所述全体训练样本在所述特征变量下各自对应的值,从所述全体训练样本中选出部分训练样本;根据所述部分训练样本在所述特征变量下各自对应的值生成统计值。
进一步地,所述特征值获取模块509,获取所述全体训练样本在所述特征变量下各自对应的值的最小值和最大值,确定取值区间;根据固定的取值长度,对所述取值区间进行等值分箱,生成若干分箱取值区间;确定各分箱取值区间所包含的取值数量;将取值数量最大的分箱取值区间所对应的训练样本确定为所述部分训练样本。
进一步地,所述计算模块505,确定所述待评估数据样本的评分和所述模拟数据样本的评分的差的绝对值;将所述差的绝对值确定所述特征变量的特征贡献值,或者,将所述差的绝对值与所述待评估数据样本的评分的商确定为所述特征变量的特征贡献值。
进一步地,所述评估模块507,根据各特征贡献值的大小对待评估数据样本中的特征变量进行排序,生成排序结果;从排序结果中最前开始取指定数量的特征变量,将其确定为影响所述待评估数据样本的评分的关键特征变量。
进一步地,还包括信息生成模块511,针对任一关键特征变量,获取在待评估数据样本中其所对应的值;生成包含全部关键特征变量和对应的值的关键特征信息,以便用户根据所述关键特征信息进行业务处理。
对应的,本申请实施例还提供一种数据特征评估设备,包括:
存储器,存储有数据特征评估程序;
处理器,调用存储器中的数据特征评估程序,并执行:
获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
基于同样的发明思路,本申请实施例还提供了对应的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取数据模型对于待评估数据样本的评分,其中,所述待评估数据样本包括多个特征变量和对应的值;
针对任一特征变量,将所述待评估数据样本中所述特征变量对应的值替换为预先得到的特征变量的特征值,生成另一模拟数据样本;
获取数据模型对于所述模拟数据样本的评分,根据所述待评估数据样本的评分和所述模拟数据样本的评分,计算所述数据样本中所述特征变量的特征贡献值;
根据特征变量的特征贡献值的大小,对所述待评估数据样本的特征变量进行评估。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,这里就不再一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤或模块可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书的实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信编号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书中一个或多个的实施例可提供为方法、***或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书的实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。