模型预测加速方法和装置
技术领域
本公开涉及数据处理,尤其涉及外汇交易量预测方法和装置。
背景技术
在国际汇兑业务中,需要通过提前购买下一个购汇结算周期的各外汇交易量,减少潜在的汇率敞口波动风险,进行损益控制,为了进行损益控制,需要对每个购汇结算周期的外汇交易量进行预测。
在实际业务中,发起购汇操作是在与银行约定好的时间点进行的,所以预测模型系统建模与训练工作在购汇时间点之前完成非常重要,业务要求在购汇时间点之前给出预测值,所以对整个预测流程的时效稳定性有较强的要求。实际运行中,模型运行的时效稳定性受到上游数据时效性、运行环境的资源可用度影响,所以如何保障在业务购汇时间点之前完成预测值输出数据是尤为重要的。
发明内容
为解决上述技术问题,本公开提供了一种用于加快预测的方法,所述方法包括:
由预测模型系统接收输入数据,其中所述预测模型系统包括串接的一个或多个预测模块,一个或多个迅捷模块连接到所述预测模型系统,所述迅捷模块的输入是所述一个或多个预测模块中的一个预测模块的输入并且所述迅捷模块提供迅捷输出数据;
在规定时间从所述一个或多个迅捷模块获取至少一个迅捷输出数据;以及
将所述至少一个迅捷输出数据中最新的迅捷输出数据确定为最终预测输出数据,
其中所述迅捷模块是根据所述预测模型系统中的至少一个预测模块生成的。
可任选地,所述预测模型系统产生模型输出数据,并且所述方法进一步包括:
如果在所述规定时间所述预测模型系统产生了模型输出数据,则将所述模型输出数据确定为最终预测输出数据。
可任选地,所述迅捷模块连接在所述预测模型系统的两个预测模块之间,并且所述至少一个预测模块包括与所述迅捷模块的输入相同的预测模块及其后续一个或多个预测模块。
可任选地,所述迅捷模块是通过对所述至少一个预测模块调整参数和/或删除所述至少一个预测模块的一个或多个子模块来生成的。
可任选地,所述参数包括训练步长、训练次数和/或误差精度。
可任选地,该方法进一步包括,
确定所述至少一个迅捷输出数据中的每一者的模块编号和周期编号,其中连接到预测模型系统下游的迅捷模块的迅捷输出数据的模块编号大于连接到预测模型系统上游的迅捷模块的迅捷输出数据的模块编号,所述周期编号是生成预测输出数据的周期的编号;
将所述至少一个迅捷输出数据中的每一者与其周期编号、模块编号一起存储在存储器中;
在所述规定时间在所述存储器中查找周期编号最大的一个或多个迅捷输出数据;以及
选择所述一个或多个预测输出数据中模块编号最大的迅捷输出数据作为所述最终预测输出数据。
可任选地,该方法进一步包括,
确定所获取的当前迅捷输出数据的当前周期编号和当前模块编号;
将所述当前周期编号与存储器中所存储的在先迅捷输出数据的在先周期编号进行比较;
如果所述当前周期编号大于所述在先周期编号,则在所述存储器中将所述当前迅捷输出数据以及当前周期编号和当前模块编号覆盖所述在先迅捷输出数据以及在先周期编号和在先模块编号;
如果所述当前周期编号等于所述在先周期编号,则将所述当前模块编号与所述在先模块编号进行比较;
如果所述当前模块编号大于所述在先模块编号,则在所述存储器中将所述当前迅捷输出数据以及当前周期编号和当前模块编号覆盖所述在先迅捷输出数据以及在先周期编号和在先模块编号;以及
在所述规定时间获取所述存储器中所存储的迅捷输出数据。
可任选地,所述输入数据是外汇汇兑业务的历史交易数据,并且所述规定时间是购汇结算周期期满时间。
本发明的另一方面提供了一种用于加快预测的装置,包括:
预测模型系统,接收输入数据,其中所述预测模型系统包括串接的一个或多个预测模块;
连接至所述预测模型系统的一个或多个迅捷模块,所述迅捷模块的输入是所述一个或多个预测模块中的一个预测模块的输入并且所述迅捷模块提供迅捷输出数据,所述迅捷模块是根据所述预测模型系统中的至少一个预测模块生成的;
存储器,所述存储器存储至少一个迅捷输出数据;
处理器,在规定时间从所述一个或多个迅捷模块获取所述至少一个迅捷输出数据,将所述至少一个迅捷输出数据存储在所述存储器中,以及将所述至少一个预测输出数据中最新的预测输出数据确定为最终预测输出数据。
可任选地,所述预测模型系统产生模型输出数据,并且所述处理器被进一步配置成:
如果在所述规定时间从所述预测模型系统接收到模型输出数据,则将所述模型输出数据确定为最终预测输出数据。
可任选地,所述迅捷模块连接在所述预测模型系统的两个预测模块之间,并且所述至少一个预测模块包括与所述迅捷模块的输入相同的预测模块及其后续一个或多个预测模块。
可任选地,所述迅捷模块是通过对所述至少一个预测模块调整参数和/或删除所述至少一个预测模块的一个或多个子模块来生成的。
可任选地,所述参数包括训练步长、训练次数和/或误差精度。
可任选地,所述处理器被进一步配置成:
确定所述至少一个迅捷输出数据中的每一者的模块编号和周期编号,其中连接到预测模型系统下游的迅捷模块的迅捷输出数据的模块编号大于连接到预测模型系统上游的迅捷模块的迅捷输出数据的模块编号,所述周期编号是生成预测输出数据的周期的编号;
将所述至少一个迅捷输出数据中的每一者与其周期编号、模块编号一起存储在存储器中;
在所述规定时间在所述存储器中查找周期编号最大的一个或多个迅捷输出数据;以及
选择所述一个或多个预测输出数据中模块编号最大的迅捷输出数据作为所述最终预测输出数据。
可任选地,所述处理器被进一步配置成:
确定所获取的当前迅捷输出数据的当前周期编号和当前模块编号;
将所述当前周期编号与存储器中所存储的在先迅捷输出数据的在先周期编号进行比较;
如果所述当前周期编号大于所述在先周期编号,则在所述存储器中将所述当前迅捷输出数据以及当前周期编号和当前模块编号覆盖所述在先迅捷输出数据以及在先周期编号和在先模块编号;
如果所述当前周期编号等于所述在先周期编号,则将所述当前模块编号与所述在先模块编号进行比较;
如果所述当前模块编号大于所述在先模块编号,则在所述存储器中将所述当前迅捷输出数据以及当前周期编号和当前模块编号覆盖所述在先迅捷输出数据以及在先周期编号和在先模块编号;以及
在所述规定时间获取所述存储器中所存储的迅捷输出数据。
可任选地,所述输入数据是外汇汇兑业务的历史交易数据,并且所述规定时间是购汇结算周期期满时间。
本发明的进一步方面提供了一种计算机设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
由预测模型系统接收输入数据,其中所述预测模型系统包括串接的一个或多个预测模块,一个或多个迅捷模块连接到所述预测模型系统,所述迅捷模块的输入是所述一个或多个预测模块中的一个预测模块的输入并且所述迅捷模块提供迅捷输出数据;
在规定时间从所述一个或多个迅捷模块获取至少一个迅捷输出数据;以及
将所述至少一个迅捷输出数据中最新的迅捷输出数据确定为最终预测输出数据,
其中所述迅捷模块是根据所述预测模型系统中的至少一个预测模块生成的。
本公开通过在预测模型系统中纳入迅捷模块来加速模型预测,迅捷模块可以缩短获得预测值的运行时长。例如,迅捷模块可以减少模型特征、减少模型训练次数、减少训练样本数等,从而加快预测速度,保证在规定时间内有预测输出数据。进一步,通过选择最新(或即最精确)的预测输出数据,保证得到当前最精确的预测输出数据。
附图说明
图1是用于模型预测的系统示图。
图2是根据本公开的一个实施例的用于加速模型预测的系统结构图。
图3示出了根据本公开的一个实施例的构建迅捷模块的示例。
图4示出了根据本公开的各方面的用于加速模型预测的系统的结构图。
图5解说了根据本公开的各方面的用于加速模型预测的方法的流程图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
图1示出了用于模型预测的系统示图。
如图1所示,用于模型预测的系统可包括计算平台100和定时器102。定时器102也可被纳入计算平台100中。
计算平台100例如是支付宝服务器,可包括预测模型系统101。预测模型系统101可接收样本数据。一般而言,预测模型系统101可包括一个或多个串接的预测模块。样本数据依次通过各个预测模块进行处理以得到预测结果。
例如,在国际汇兑业务中,可以将当前预测周期之前的历史交易数据输入预先训练好的预测模型系统101中进行预测。例如,第i个预测周期可产生预测结果Vi,第i+1个预测周期可产生预测结果Vi+1。在每个预测周期结束时,新的样本数据将输入预测模型系统进行下一周期的预测。作为一个示例,该预测周期可以是一个小时。
定时器102对计算平台100的操作进行时钟控制。具体而言,可对计算平台100的操作进行周期控制。定时器102在当前预测周期结束时向计算平台100发送信号指令预测模型系统101进行下一周期的预测。
因此,模型预测需要在每个周期结束之前完成,否则下一周期的预测将中断当前周期的预测,由此将缺失当前周期输出数据。
例如,在国际汇兑业务中,预测模型系统需要在当前购汇周期结束前输出数据预测值。
但模型运行的时效受到上游数据时效性、运行环境的资源可用度的影响,有时在当前周期结束前,预测模型系统未能完成当前周期的预测操作,由此丢失了当前预测输出数据。
本公开的目的在于解决在预测模型系统运行超时的情况下无法准时输出数据预测值的技术问题。
在预测链路中,预测模型系统可被构建成几个预测模块的串接。例如,外汇交易量预测模型系统可包括数据清洗模块、量化建模模块、异常检测模块、以及业务决策调整模块。在外汇业务中,这几个模块需要在给定时间(例如,一个小时)内完成运行并最终生成预测值。但是运行链路由于实际中受到上游数据时效性以及运行环境资源可用度影响,容易出现在给定时间内无法完成所有模块的运行的情形。以下详细解说本公开的实施例。
图2是根据本公开的一个实施例的用于加速模型预测的系统示图。
如图2所示,用于加速模型预测的系统包括左边的常规预测部分和右边的迅捷部分(框内的部分)。在该示例中,周期为一个小时。应理解,其它周期也在本公开的构想中。
常规预测部分根据实际预测流程的需要可拆分成串接的一个或多个预测模块,例如包括数据清洗模块、量化建模模块、异常检测模块以及业务决策模块。
数据清洗模块可完成最新的数据(例如,最近一个小时的数据)的清洗处理。例如,样本数据通过从多个业务系统中抽取而来而且包含历史数据,其中一些数据是错误数据、有的数据相互之间有冲突,这些错误的或有冲突的数据被称为“脏数据”。需要按照一定规则将“脏数据”“洗掉”,即,过滤不符合要求的数据。
量化建模模块是核心的代码模块,可完成特征构建、模型训练、预测值输出数据等功能。
异常检测模块可对前一模块的预测值进行异常检测。
业务决策模块可根据业务经验对预测值进行相应调整。
数据输入经过常规部分的各模块处理之后生成最终预测值。
数据清洗模块、量化建模模块、异常检测模块以及业务决策模块是串接的,每个模块需要等待上游模块的输出数据来进行处理,同时每个模块的处理速度会受到运行环境资源可用度的影响,因此在规定时间内不一定能够输出数据最终预测值。
本公开考虑到预测的时效性,在系统中添加了迅捷部分,迅捷部分包括一个或多个迅捷模块。
在图2所示的示例中,迅捷部分包括迅捷模块1、迅捷模块2和迅捷模块3,分别快速地生成精度较低的预测值V1、V2和V3。换言之,迅捷模块牺牲一定的预测精度以加快预测速度。
如图所示,迅捷模块1连接至数据清洗模块的输出数据,并且可以根据常规部分中数据清洗模块的后续模块来生成,例如是量化建模模块、异常检测模块以及业务决策模块的简化版本。迅捷模块1可在短时间内完成与量化建模模块、异常检测模块以及业务决策模块相关的训练,并且输出数据预测值V1。预测值V1与最终预测值V4相比精度较低,但输出数据时间早。
由此包括数据清洗模块和迅捷模块1的预测路径可快速地生成精度较低的预测值V1。
迅捷模块2连接至量化建模模块的输出数据,并且可以根据常规部分中量化建模模块的后续模块来生成,例如是异常检测模块和业务决策模块的简化版本。迅捷模块2可在短时间内完成与异常检测模块以及业务决策模块相关的训练,并且输出数据预测值V2。预测值V2与最终预测值V4相比精度较低,但输出数据快;比预测值V1精度高,但输出数据慢。
迅捷模块3连接至异常检测模块的输出数据,并且可以根据常规部分中异常检测模块的后续模块来生成,例如是业务决策模块的简化版本。迅捷模块3可在短时间内完成与业务决策模块相关的训练,并且输出数据预测值V3。预测值V3与最终预测值V4相比精度较低,但输出数据快;比预测值V2精度高,但输出数据慢。
迅捷模块与对应的常规预测模块相比,能在短时间内完成训练以及预测值输出数据,迅捷模块的目的在于减少运行时长来获得预测值,迅捷模块对常规预测模块的简化可包括:减少模型特征、减少模型训练次数、减少训练样本数等等。迅捷模块本质上是牺牲一定的预测精度以加快预测速度。
在该实施例中,迅捷部分包括三个模块。但是,本领域技术人员可以理解,迅捷部分也可包括少于3个的模块,例如1个或2个。在进一步的实施例中,根据常规部分预测流程所包括的模块数N,迅捷部分可以包括1~N个模块。
在图2的实施例中,在规定时间,如果常规预测模型系统已输出数据了最终预测值V4,则系统可以输出数据最终预测值V4。如果常规预测模型系统尚未输出数据最终预测值V4,则系统可以输出数据当前最精确的迅捷模块输出数据预测值,例如V3。
进一步,如果在规定时间(例如,当前周期结束时),当前周期没有任何迅捷模块输出数据,则可将上一周期的最终预测值V4作为输出数据。
本公开的用于加速模型预测的系统能够保证在规定时间有预测值输出数据,并且输出数据当前最精确版本的预测值。
图3示出了根据本公开的一个实施例的构建迅捷模块的示例。其中,用于加速模型预测的系统的常规部分包括量化建模模块、异常检测模块以及业务决策模块。
如图3所示,量化建模模块可包括AUTO_ML(自动化学习框架)子模块、经典时序预测子模块、ARIMA(Autoregressive Integrated Moving Average Model,自回归积分滑动平均模型)子模块、Holt-Winters(三次指数平滑)子模块、同环比子模块。
异常检测模块包括基于实时数据源的异常检测子模块和基于离线数据源的异常检测子模块。
业务决策模块包括基于外部运营方信息输入的调整子模块和基于内部运营方的信息输入的调整子模块。
如上所述,迅捷模块1可以是量化建模模块、异常检测模块以及业务决策模块的简化版本。
例如,迅捷模块1可通过针对量化建模模块调整参数(例如调整训练步长、训练次数和误差精度)来得到不同的运行速度,从而加快模块处理时间;迅捷模块1可针对异常检测模块去掉基于实时数据源的异常检测子模块,而只纳入基于离线数据源的异常检测子模块的处理;迅捷模块1可针对业务决策模块去掉基于外部运营方信息输入的调整子模块,而只纳入基于内部运营方的信息输入的调整子模块的处理。
迅捷模块2可以是异常检测模块和业务决策模块的简化版本。例如,迅捷模块2可针对异常检测模块去掉基于实时数据源的异常检测子模块,而只纳入基于离线数据源的异常检测子模块的处理;针对业务决策模块去掉基于外部运营方信息输入的调整子模块,而只纳入基于内部运营方的信息输入的调整子模块的处理。
迅捷模块3可以是业务决策模块的简化版本。例如,迅捷模块3可针对业务决策模块去掉基于外部运营方信息输入的调整子模块,而只纳入基于内部运营方的信息输入的调整子模块的处理。
请注意,以上列出了构建迅捷模块的一个具体示例,但本领域技术人员知晓,其它实现也是可能的。例如,预测模型系统可包括各种预测模块,并且各迅捷模块也可以调整异常检测模块和/或业务决策模块的参数、去掉其它子模块。
在一些方面,迅捷模块也可以去掉后续模块。例如,迅捷模块1可以根据量化建模模块和业务决策模块生成,而无需纳入异常检测模块。并且在其它实现中,预测系统的常规部分可具有不同的预测模块,由此系统具有相应不同的迅捷模块,其中各迅捷模块可以根据对应的一个或多个常规预测模块来生成,例如,迅捷模块可以是对应的一个或多个常规预测模块的简化版本。
图4示出了根据本公开的各方面的用于加速模型预测的系统400的结构图。
如图4所示,系统400可包括预测模型系统部分401、迅捷模块部分402、存储器403、以及处理器404。
预测模型系统部分401可包括串接的预测模块1、预测模块2、……预测模块N-1、以及预测模块N。即,输入样本被输入到预测模块1,预测模块1的预测结果被输入预测模块2,预测模块2的预测结果被输入预测模块3,……预测模块N-1的预测结果被输入预测模块N,预测模块N的输出数据为预测模型系统的最终输出数据。
数据依次经过预测模块1-N的处理产生最终预测结果VN(即,最后一个预测模块N的输出数据)。
预测模型系统运行的时效往往受到上游数据时效性、运行环境的资源可用度的影响,有时在当前周期结束前,预测模型系统未能完成当前周期的预测操作,由此缺失了当前预测输出数据。为了确保在当前周期能够获得输出数据,在系统中加入迅捷模块部分402。
迅捷模块部分402可包括迅捷模块0、迅捷模块1、迅捷模块2、……迅捷模块N-1中的一者或多者。
输入样本可被输入到迅捷模块0,迅捷模块0可以根据预测模块1—预测模块N来生成,例如可以是预测模块1—预测模块N的简化版本。例如,调整预测模块1—预测模块N中的一个或多个模块的参数和/或删除该一个或多个模块的一个或多个子模块。
迅捷模块1接收预测模块1的输出数据,并且可以根据后续的预测模块2—预测模块N来生成,例如可以是预测模块2—预测模块N的简化版本。例如,调整预测模块2—预测模块N中的一个或多个模块的参数和/或删除该一个或多个模块的一个或多个子模块。
迅捷模块2接收预测模块2的输出数据,并且可以根据是后续的预测模块3—预测模块N来生成,例如可以是预测模块3—预测模块N的简化版本;依此类推。例如,调整预测模块3—预测模块N中的一个或多个模块的参数和/或删除该一个或多个模块的一个或多个子模块。
迅捷模块0的输出数据为V0,迅捷模块1的输出数据为V1,迅捷模块2的输出数据为V2,……迅捷模块N-1的输出数据为VN-1,预测模型系统的最后一个模块N的输出数据为VN。V0、V1、V2、……VN-1、VN可被输入到存储器403中进行存储。
处理器404可对V0、V1、V2、……VN-1、VN进行编号,并将每个预测输出数据与其编号一起存储在存储器中。
该编号可包括模块编号和周期编号。
例如,处理器404可识别预测输出数据Vi来自哪个迅捷模块或来自最后一个预测模块。例如,迅捷模块i或预测模块N在输出数据预测结果时,可将预测结果与模块标识一起发送给存储器403和处理器404。处理器404通过模块标识来识别出该预测结果来自哪个模块。
处理器404随后可按照该迅捷模块或最后一个预测模块的标识确定Vi的模块编号。Vi的模块编号对应于生成Vi的迅捷模块所连接的预测模型系统节点在所述预测模型系统中的位置。如图4所示,连接到下游(离输入端较远)的预测模型系统节点的迅捷模块的模块编号可大于连接到上游(离输入端较近)的预测模型系统节点的迅捷模块的模块编号。
作为一个示例,迅捷模块0所连接的预测模型系统节点的后一模块为预测模块1,则来自迅捷模块0的预测输出数据的编号可为0;迅捷模块1连接在预测模块1与预测模块2之间,则来自迅捷模块1的预测输出数据的编号可为1;迅捷模块2连接在预测模块2与预测模块3之间,则来自迅捷模块2的预测输出数据的编号为2,依此类推;来自迅捷模块N-1的预测输出数据的编号可为N-1;如果Vi来自最后一个预测模块,则Vi的编号大于所有来自迅捷模块的预测输出数据的编号,例如,可以为迅捷模块的数目加一(例如,N)。
请注意,以上取值仅仅是示例性的,其它取值也在本发明的构想中,只要Vi的模块编号对应于生成Vi的迅捷模块所连接的预测模型系统节点的后一预测模块在所述预测模型系统中的顺序即可。
进一步,处理器404可识别预测输出数据Vi是在哪个周期产生的。例如,迅捷模块i或预测模块N在输出数据预测结果时,将预测结果与产生该预测结果时的周期的周期编号一起发送给存储器403和处理器404。处理器404通过周期编号来识别出该预测结果是在哪个周期产生的。
例如,迅捷模块i或预测模块N中可具有周期编号计数器,每进入一个新的周期,计数器中的周期编号值可递增。
在规定时间(例如,预测周期期满时),处理器404确定存储器403中所存储的最新版本的输出数据V0、V1、V2、……VN-1、或VN作为模型预测结果进行输出数据。例如,如果存储器中具有当前周期的迅捷模块输出数据V0、V1、V2、V3,则输出数据V3作为模型预测结果。
进一步,模型的预测是周期性的,如果在规定时间内,任一迅捷模块/预测模型系统的最后一个模块关于当前周期均没有输出数据,则可将前一周期的最终预测值作为输出数据。
例如,外汇交易中的预测周期可以为一个小时,如果当前小时没有任何迅捷模块输出数据Vi且没有预测模型系统输出数据VN,则可将上一小时的最终预测值作为输出数据。
存储器中的每个条目包括迅捷模块/预测模型系统的最后一个模块的输出数据及其模块编号和/或周期编号。
表1示出了存储预测值的存储器的一个示例。
周期编号 |
模块编号 |
预测值 |
0 |
0 |
V<sub>0</sub> |
0 |
1 |
V<sub>1</sub> |
…… |
…… |
…… |
M-1 |
N |
V<sub>N</sub> |
M |
0 |
V<sub>0</sub> |
M |
1 |
V<sub>1</sub> |
M |
2 |
V<sub>2</sub> |
…… |
…… |
…… |
M |
N-1 |
V<sub>N-1</sub> |
M |
N |
V<sub>N</sub> |
M+1 |
0 |
V<sub>0</sub> |
M+1 |
1 |
V<sub>1</sub> |
…… |
…… |
…… |
表1
在规定需要输出数据的时间,可首先查找存储器中周期编号最大的一个或多个条目(即,最新周期的一个或多个预测输出数据),随后在周期编号最大的一个或多个条目中查找模块编号最大的条目(即,最新周期的最新预测输出数据),将该条目对应的预测值作为输出数据。
请注意,虽然表1列出了迅捷模块部分包括全部迅捷模块0-N-1的情形,但本领域技术人员知晓,迅捷模块部分可以包括迅捷模块0-N-1中的一者或多者,只要其编号体现对应模块的先后顺序即可。即,本领域技术人员能够根据实际需要来选择这些迅捷模块中的一者或多者来加快模型预测。例如,迅捷模块0可被省略,由此样本仅被输入到预测模块1以进行后续处理。
在另一方面,存储器也可以仅存储最新的预测输出数据。例如,处理器404可识别当前预测输出数据Vi的当前周期编号和当前模块编号,将当前周期编号与存储器403中所存储的在先预测输出数据的在先周期编号进行比较,如果当前周期编号大于所述在先周期编号,即,当前预测输出数据是比所存储的预测输出数据更新的预测周期的输出数据,则在存储器中将当前预测输出数据以及当前周期编号和当前模块编号覆盖在先预测输出数据以及在先周期编号和在先模块编号。
如果所述当前周期编号等于所述在先周期编号,即,当前预测输出数据与所存储的预测输出数据是在相同的周期中生成的,则将当前模块编号与存储器403中所存储的在先预测输出数据的在先模块编号进行比较;如果当前模块编号大于所述在先模块编号,即,当前预测输出数据是比在先预测输出数据更新的版本,则在存储器403中将当前预测输出数据以及当前周期编号和当前模块编号覆盖在先预测输出数据以及在先周期编号和在先模块编号。使用该方式,可以有效地节省存储空间。
以上描述了存储预测输出数据的具体示例,但本领域技术人员将领会,其它存储方式也是可能的,例如,向量形式:Vi(模块编号,周期编号)。
图5解说了根据本公开的各方面的用于加速模型预测的方法的流程图。
该方法可在如图4所示的系统中实现。在该系统中,预测模型系统可包括串接的多个预测模块,输入样本和/或预测模块的输出数据可被输入到下一预测模块和对应的迅捷模块,并且其中迅捷模块是根据预测模型系统中的至少一个预测模块生成的,例如,所连接的预测模型系统节点后面(下游)的一个或多个预测模块的简化版本。
预测模块的简化版本可以通过对预测模块调整参数和/或删除预测模块中的子模块来得到。调整的参数可包括训练步长、训练次数和/或误差精度。
该方法包括在步骤502,由预测模型系统接收输入数据。
该输入数据可以是待处理样本。
如图4所示,数据可被输入到预测模块1,如果存在迅捷模块0,还可输入到迅捷模块0。
每个预测模块的处理结果可被输入到下一个预测模块和对应的迅捷模块(若有),迅捷模块可以是该下一个预测模块及其后续一个或多个预测模块的简化版本。
在步骤504,在规定时间(例如,在当前周期期满时)获取多个迅捷模块的预测输出数据(可被称为迅捷输出数据)和最后一个预测模块的预测输出数据(可被称为模型输出数据)中的至少一者。
例如,可以对迅捷输出数据和模型输出数据进行编号(模块编号和周期编号),其中迅捷输出数据的模块编号对应于生成该迅捷输出数据的迅捷模块所连接的预测模型系统节点在所述预测模型系统中的位置,连接到预测模型系统下游节点的迅捷模块的输出数据的模块编号大于连接到预测模型系统上游节点的迅捷模块的输出数据的模块编号;并且模型输出数据的模块编号大于每个迅捷预测输出数据的模块编号,周期编号是生成预测输出数据的周期的编号。前述预测输出数据可与对应模块编号和周期编号一起存储在存储器中。
在规定时间可确定存储器中存储有该多个迅捷模块的预测输出数据和最后一个预测模块的预测输出数据中的至少一者。
在步骤506,将该多个迅捷模块的预测输出数据和该最后一个预测模块的预测输出数据中的该至少一者中最新的预测输出数据确定为模型输出数据。
例如,可以将周期编号、预测输出数据编号和迅捷模块的对应输出数据一起存储在存储器中,在规定时间在存储器中查找周期编号最大且预测输出数据编号最大的预测输出数据作为模型输出数据。
本公开通过迅捷模块来缩短获得预测值的运行时长。迅捷模块可以通过减少模型特征、减少模型训练次数、减少训练样本数来加快预测速度,保证在规定时间内有预测输出数据。进一步,通过选择最新(或即最精确)的预测输出数据,保证得到当前最精确的预测输出数据。
本文结合附图阐述的说明描述了示例配置而不代表可被实现或者落在权利要求的范围内的所有示例。本文所使用的术语“示例性”意指“用作示例、实例或解说”,而并不意指“优于”或“胜过其他示例”。本详细描述包括具体细节以提供对所描述的技术的理解。然而,可以在没有这些具体细节的情况下实践这些技术。在一些实例中,众所周知的结构和设备以框图形式示出以避免模糊所描述的示例的概念。
在附图中,类似组件或特征可具有相同的附图标记。此外,相同类型的各个组件可通过在附图标记后跟随短划线以及在类似组件之间进行区分的第二标记来加以区分。如果在说明书中仅使用第一附图标记,则该描述可应用于具有相同的第一附图标记的类似组件中的任何一个组件而不论第二附图标记如何。
结合本文中的公开描述的各种解说性框以及模块可以用设计成执行本文中描述的功能的通用处理器、DSP、ASIC、FPGA或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可被实现为计算设备的组合(例如,DSP与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器,或者任何其他此类配置)。
本文中所描述的功能可以在硬件、由处理器执行的软件、固件、或其任何组合中实现。如果在由处理器执行的软件中实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。其他示例和实现落在本公开及所附权利要求的范围内。例如,由于软件的本质,以上描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或其任何组合来实现。实现功能的特征也可物理地位于各种位置,包括被分布以使得功能的各部分在不同的物理位置处实现。另外,如本文(包括权利要求中)所使用的,在项目列举(例如,以附有诸如“中的至少一个”或“中的一个或多个”之类的措辞的项目列举)中使用的“或”指示包含性列举,以使得例如A、B或C中的至少一个的列举意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。同样,如本文所使用的,短语“基于”不应被解读为引述封闭条件集。例如,被描述为“基于条件A”的示例性步骤可基于条件A和条件B两者而不脱离本公开的范围。换言之,如本文所使用的,短语“基于”应当以与短语“至少部分地基于”相同的方式来解读。
计算机可读介质包括非瞬态计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。非瞬态存储介质可以是能被通用或专用计算机访问的任何可用介质。作为示例而非限定,非瞬态计算机可读介质可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩盘(CD)ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来携带或存储指令或数据结构形式的期望程序代码手段且能被通用或专用计算机、或者通用或专用处理器访问的任何其他非瞬态介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来的,则该同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文所使用的盘(disk)和碟(disc)包括CD、激光碟、光碟、数字通用碟(DVD)、软盘和蓝光碟,其中盘常常磁性地再现数据而碟用激光来光学地再现数据。以上介质的组合也被包括在计算机可读介质的范围内。
提供本文的描述是为了使得本领域技术人员能够制作或使用本公开。对本公开的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他变形而不会脱离本公开的范围。由此,本公开并非被限定于本文所描述的示例和设计,而是应被授予与本文所公开的原理和新颖特征相一致的最广范围。