一种基于时间序列BP神经网络预测方法及装置与流程

文档序号:15447915发布日期:2018-09-14 23:35阅读:225来源:国知局

本发明涉及计算机技术领域,具体而言,涉及一种基于时间序列bp神经网络的预测方法及装置。



背景技术:

神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型;其中,bp神经网络作为前向多层神经网络是一种静态网络,其运行时单向传播,没有反馈,之后又衍生出了许多反馈神经网络。

现有技术中,使用神经网络进行对某一结果进行预测时,如果确定的影响因素不够全面,则会导致最终预测的结果的准确度较低,且稳定性较差。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于时间序列bp神经网络的预测方法和装置,以提高预测的准确性和稳定性。

第一方面,本发明实施例提供了一种基于时间序列bp神经网络的预测方法,包括:

建立基于时间序列bp神经网络;

对所述神经网络进行训练,包括:获取训练集数据,所述训练集数据中包括影响因素值;根据训练集数据、上一次迭代计算对应的待预测因素的实际值和所述神经网络,进行计算得到第二输出数据,当不满足训练终止条件时,将该次迭代对应的待预测因素的实际值作为下一次迭代的输入数据中的一部分继续进行迭代计算;训练完毕后得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值,其中所述各神经元之间的连接权重包括上一个时间段的待预测因素的影响权重;

基于上一个时间段的待预测因素的实际值、本时间段内的待预测因素的影响因素值和训练完成的神经网络,得到本时间段的待预测因素的预测值。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述对所述神经网络进行训练,具体包括:

获取神经网络经过第n次迭代计算得到的第一输出数据,判断是否满足训练终止条件;其中,n﹥1;

如果不满足,继续进行第n+1次迭代计算,包括:获取第n+1次迭代计算的训练集数据;所述训练集数据包括影响因素值和待预测因素的实际值;

根据所述影响因素值、第n次迭代的待预测因素的实际值和神经网络计算得到第二输出数据;

判断是否满足训练终止条件,如果是,则停止迭代,得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值;如果不是,则继续进行下一个迭代周期的迭代计算,直至经过最后一次迭代满足训练终止条件,神经网络训练完毕。

结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,判断是否满足训练终止条件,包括:

根据所述第一输出数据与本次迭代对应的待预测因素的实际值进行计算得到误差值;

将所述误差值与预设误差值进行比较,当所述误差值小于所述预设误差值时,判断满足训练终止条件,否则不满足。

结合第一方面或者第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述判断是否满足训练终止条件,包括:

获取当前的迭代次数m,其中,m=n;

将所述迭代次数m与预设的迭代次数相比,当所述迭代次数与预设的迭代次数相同时,判断满足训练终止条件,否则不满足。

结合第一方面或者第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述所述基于上一个时间段的待预测因素的实际值、本时间段内的待预测因素的影响因素值和训练完成的神经网络,得到本时间段的待预测因素的预测值,包括:

根据上一个时间段的待预测因素的实际值、上一个时间段的待预测因素的实际值的权重、影响因素值和每个影响因素值对应的连接权重,对所述上一个时间段的待预测因素的实际值和影响因素值进行加权求和得到本时间段的待预测因素的实际值的预测值。

第二方面,本发明实施例还提供了一种基于时间序列bp神经网络预测装置,包括:

建立模块,用于建立基于时间序列bp神经网络;

训练模块,用于对所述神经网络进行训练,包括:获取训练集数据,所述训练集数据中包括影响因素值;根据训练集数据、上一次迭代计算对应的待预测因素的实际值和所述神经网络,进行计算得到第二输出数据,当不满足训练终止条件时,,将该次迭代对应的待预测因素的实际值作为下一次迭代的输入数据中的一部分继续进行迭代计算;训练完毕后得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值,其中所述各神经元之间的连接权重包括上一个时间段的待预测因素的影响权重;

计算模块,用于基于上一个时间段的待预测因素的实际值、本时间段内的待预测因素的影响因素值和训练完成的神经网络,得到本时间段的待预测因素的预测值。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述训练模块,具体包括:

判断单元,用于获取神经网络经过第n次迭代计算得到的第一输出数据,判断是否满足训练终止条件;其中,n﹥1;

第一计算单元,用于如果所述第一输出数据不满足预设精度,继续进行第n+1次迭代计算,包括:获取第n+1次迭代计算的训练集数据;所述训练集数据包括影响因素值和待预测因素的实际值;

第二计算单元,用于根据所述影响因素值、第n次迭代的待预测因素的实际值和神经网络计算得到第二输出数据;

判断是否满足训练终止条件,如果是,则停止迭代,得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值;如果不是,则继续进行下一个迭代周期的迭代计算,直至经过最后一次迭代满足训练终止条件,神经网络训练完毕。

结合第二方面或者结合第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述判断单元,具体用于:

根据所述第一输出数据与本次迭代对应的待预测因素的实际值进行计算得到第一误差;

将所述误差值与预设误差值进行比较,当所述误差值小于所述预设误差值时,判断满足训练终止条件,否则不满足。

结合第二方面或者第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述判断单元,具体用于:

获取当前的迭代次数m,其中,m=n;

将所述迭代次数m与预设的迭代次数相比,当所述迭代次数与预设的迭代次数相同时,判断满足训练终止条件,否则不满足。

结合第二方面或者第二方面的第一种可能的实施方式,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述计算模块,具体用于:

根据上一个时间段的待预测因素的实际值、上一个时间段的待预测因素的实际值的权重、影响因素值和每个影响因素值对应的连接权重,对所述上一个时间段的待预测因素的实际值和影响因素值进行加权求和得到本时间段的待预测因素的实际值的预测值。

本发明实施例提供的一种基于时间序列bp神经网络的预测方法及装置,采用神经网络进行预测,并且在预测的过程中充分考虑的相邻时间段的待测因素的实际值的对待测因素的预测值的影响,与现有技术中的相比,其预测的准确度更高。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明一个实施例所提供的一种基于时间序列bp神经网络的预测方法的流程示意图;

图2示出了本发明一个实施例所提供的一种基于时间序列bp神经网络的结构示意图;

图3示出了本发明一个实施例所提供的一种基于时间序列bp神经网络的预测方法的计算流程示意图;

图4示出了本发明实施例所提供的一种基于时间序列bp神经网络的预测装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑在一些特殊的应用领域中,例如对未来某一天的天气进行预测时,相邻天数的天气对于被预测的那一天的天气的预测具有一定的参考价值,当把相邻前一天或者前几天的天气情况作为影响因素进行对被预测那一天的天气进行预测时,预测准确率和稳定性会更高。基于此,本发明实施例提供了一种基于时间序列bp神经网络的预测方法和装置,下面通过实施例进行描述。

参照图1所示的实施例,本实施例中提供的一种基于时间序列bp神经网络的预测方法,包括如下步骤:

s101、建立基于时间序列bp神经网络;

上述预先建立的基于时间序列bp神经网络以后,需要对该神经网络的连接权重及阈值进行优化,即对神经网络进行训练,以得到最终优化后的各神经元之间的连接权重和隐含层及输出层神经元的阈值;具体的,本实施例中,建立的神经网络的结构示意图参照图2所示。

s102、对所述神经网络进行训练,包括:获取训练集数据,所述训练集数据中包括影响因素值;根据训练集数据、上一次迭代计算对应的待预测因素的实际值和所述神经网络,进行计算得到第二输出数据,当不满足训练终止条件时,将该次迭代对应的待预测因素的实际值作为下一次迭代的输入数据中的一部分继续进行迭代计算,直至满足终止迭代条件,训练完毕;训练完毕后得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值,其中所述连接权重包括上一个时间段的待预测因素的影响权重和各个影响因素的影响权重。

具体的,上述对所述神经网络进行训练,包括以下步骤:

首次迭代时,获取首次迭代对应的训练集数据,根据所述训练集数据中的影响因素值和所述神经网络计算得到输出数据;非首次迭代时,包括:

步骤一、获取神经网络经过第n次迭代计算得到的第一输出数据,判断是否满足训练终止条件;其中,n﹥1;

在进行首次迭代时,获取训练集数据,该训练集数据包括影响因素值和该影响因素值对应待预测因素的实际值,在神经网络的输入层输入上述影响因素值以后,会得到第一输出数据;此处为了便于区分,将首次迭代得到的输出数据相对于第二次迭代所得到输出数据称之为第一输出数据。

上述判断是否满足训练终止条件,可以是通过以下两种方式实现:

1、判断训练误差是否满足要求;

根据每次迭代得到的输出数据与待预测因素的实际值,进行计算得到误差值;

将所述误差值与预设误差值进行比较,当所述误差值小于所述预设误差值时,判断所述输出数据满足预设精度,否则不满足。

2、判断训练迭代次数是否满足要求;

获取当前的迭代次数m,其中,m=n;

将所述迭代次数m与预设的迭代次数相比,当所述迭代次数满足预设的迭代次数时,判断所述第一输出数据满足预设精度,否则不满足。

步骤二、如果不满足训练终止条件,继续进行第n+1次迭代计算,包括:获取第n+1次迭代计算的训练集数据;所述训练集数据包括该次迭代的影响因素值和待预测因素的实际值。

步骤三、根据所述影响因素值、第n次迭代的待预测因素的实际值和神经网络计算得到第二输出数据;

判断是否满足训练终止条件,如果是,则停止迭代,确定最终的各神经元之间的连接权重、隐含层及输出层神经元的阈值;如果不是,则继续进行下一个迭代周期的迭代计算,直至最后一次迭代满足训练终止条件,神经网络训练完毕,得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值。

具体的,参照图2所示,获取训练集数据dn(xn,yn),xn、yn均为已知数据,其中xn为影响因素值,yn为该影响因素值xn所对应的待预测因素的实际值,随机初始化神经网络中的连接权重和阈值。在神经网络的输入层输入上述影响因素值xn,计算出输出数据yn’,基于该影响因素值xn所对应的待预测因素的实际值yn和该输出数据yn’计算得到yn与yn’之间的差值,作为误差值;基于梯度下降策略,调整网络中的连接权重以及阈值;判断是否达到迭代次数或者该误差是否满足预设精度,如果不是,则再次进行迭代,此时神经网络的输入层的输入数据包括此次迭代的训练集数据中的影响因素值xn+1和上一次迭代对应的待预测因素的实际值yn,根据得到的输出数据yn+1’判断是否达到精度需求;如果达到,则神经网络训练完毕,神经网络中的连接权重及阈值更新完毕。

s103、基于上一个时间段的待预测因素的实际值、影响因素值和每个影响因素值对应的连接权重,计算得到本时间段的待预测因素的预测值。

本实施例中,在进行迭代计算时,每次迭代计算的训练集数据均为某一时间段的影响因素值。

具体的,根据上一个时间段的待预测因素的实际值、上一个时间段的待预测因素的实际值的影响权重、影响因素值和每个影响因素值对应的影响权重,对所述上一个时间段的待预测因素的实际值和影响因素值进行加权求和,得到本时间段的待预测因素的实际值的预测值。

下面结合具体的应用场景进行举例说明,如果已知前十天的气温分别为(y1,y2…,y10),及气温影响因素分别为(x1,x2…,x10),需要说明的是,x1是一组值,比如第一天的气温影响因素为光照5、气压1,此时x1=(5,1)。将x1输入神经网络的输入层,得到输出数据y1’,此时如果不满足精度要求,则继续将x2和y1输入至神经网络的输入层,通过x2和y1预测出了y2’,比较预测值y2’与真实值y2的差值,根据该差值再反向调整各影响因素的影响权重(连接权重)。这样不断迭代,每迭代一次,影响权重优化一次,这样把预设的组数(例如十组)数据迭代完,权重就确定了;进而以后可以使用该训练完成的神经网络进行预测工作,例如根据第十一天的气温影响因素x11,及第十天的气温y10,就可以得到第十一天的气温的预测值y11’。

在对某一因素(如气温、气压等)进行预测时,需要充分考虑该因素的影响因素,以及每个影响因素的影响程度,本实施例中不仅使用了每个待预测因素的影响因素的影响效果,还使用了相邻时间段的影响因素对带预测因素的影响,其得到的预测结果会具有更高的准确性和稳定性。

本发明的又一个实施例中,提供了一种基于时间序列bp神经网络预测装置,参照图4所示,该装置包括:

建立模块201,用于建立神经网络;

训练模块203,用于对所述神经网络进行训练,包括:获取训练集数据,所述训练集数据中包括影响因素值;根据训练集数据、上一次迭代计算对应的待预测因素的实际值和所述神经网络,进行计算得到第二输出数据,当不满足训练终止条件时,,将该次迭代对应的待预测因素的实际值作为下一次迭代的输入数据中的一部分继续进行迭代计算;训练完毕后得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值,其中所述各神经元之间的连接权重包括上一个时间段的待预测因素的影响权重;

计算模块203,用于基于上一个时间段的待预测因素的实际值、本时间段内的待预测因素的影响因素值和训练完成的神经网络,得到本时间段的待预测因素的预测值。

上述的训练模块202,具体包括:

判断单元,用于获取神经网络经过第n次迭代计算得到的第一输出数据,判断是否满足训练终止条件;其中,n﹥1;

第一计算单元,用于如果所述第一输出数据不满足预设精度,继续进行第n+1次迭代计算,包括:获取第n+1次迭代计算的第二训练集数据;所述第二训练集数据包括第二影响因素值和第二实际输出数据;

第二计算单元,用于根据所述影响因素值、第n次迭代的待预测因素的实际值和神经网络计算得到第二输出数据;

判断是否满足训练终止条件,如果是,则停止迭代,得到确定的各神经元之间的连接权重、隐含层及输出层神经元的阈值;如果不是,则继续进行下一个迭代周期的迭代计算,直至经过最后一次迭代满足训练终止条件,神经网络训练完毕。

上述训练模块,还用于首次迭代时,获取首次迭代对应的训练集数据,根据所述训练集数据中的影响因素值和所述神经网络计算得到输出数据。

上述判断单元,具体用于:

根据所述第一输出数据与第n迭代周期对应的实际输出数据进行计算得到第一误差;

将所述第一误差与预设误差值进行比较,当所述第一误差值小于所述预设误差值时,满足训练终止条件,否则不满足。

在另一可能的实施方式中,上述的判断单元,具体用于:

获取当前的迭代次数m,其中,m=n;

将所述迭代次数m与预设的迭代次数相比,当所述迭代次数与预设的迭代次数相同时,判断满足训练终止条件,否则不满足。

上述计算模块203,具体用于:

根据上一个时间段的待预测因素的实际值、上一个时间段的待预测因素的实际值的权重、影响因素值和每个影响因素值对应的连接权重,对所述上一个时间段的待预测因素的实际值和影响因素值进行加权求和得到本时间段的待预测因素的实际值的预测值。

本发明实施例所提供的一种基于时间序列bp神经网络的预测方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的一种基于时间序列bp神经网络的预测方法的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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