发明内容
本发明提供一种基于神经网络的网络流量预测装置及方法,以提高网络流量预测效率。
本发明提供一种基于神经网络的网络流量预测装置,包括:源层处理单元,包括第一板级模块,用于提供源层节点,其中,所述源层处理单元接收网络流量数据,利用所述源层节点根据第一部分的所述网络流量数据生成网络流量训练数据;中间层处理单元,包括多个第二板级模块,每个所述第二板级模块用于提供一个中间层节点,其中,所述中间层处理单元利用多个所述中间层节点并行地根据所述网络流量训练数据和其各自的中间层权值进行神经网络学习计算,生成多个中间层学习结果;目的层处理单元,包括第三板级模块,用于提供目的层节点,其中所述目的层处理单元利用所述目的层节点根据所述多个中间层学习结果和相应的一组目的层权值,计算得到目的层误差项;网络流量预测单元,用于判断所述目的层误差项是否在误差阈值范围内,若是,使用所述中间层权值并利用所述源层节点、多个所述中间层节点及所述目的层节点进行基于神经网络的网络流量预测;其中,所述源层节点、所述中间层节点及所述目的层节点两两之间依据片上网络协议通信。
一个实施例中,还包括:第一神经网络结构参数更新单元,用于若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,利用多个所述中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新所述中间层节点的中间层权值并依次迭代进行,直到重新计算的目的层误差项在所述误差阈值范围内。
一个实施例中,还包括:第二神经网络结构参数更新单元,用于若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,并修正所述误差阈值范围,利用多个所述中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新中间层节点的中间层权值且不断修正误差阈值范围并依次迭代进行,直到重新计算的目的层误差项在修正后的误差阈值范围内。
一个实施例中,所述源层处理单元,包括多个所述第一板级模块,所述源层处理单元利用多个所述源层节点并行预处理第一部分的所述网络流量数据,生成所述网络流量训练数据。
一个实施例中,所述目的层处理单元,还包括:目的层误差项生成模块,用于利用所述目的层节点根据所述多个中间层学习结果中的中间层误差和所述目的层权值,加权求和得到所述目的层误差项;或者利用所述目的层节点根据所述多个中间层学习结果中的中间层网络流量学习预测数据和所述目的层权值,计算得到目的层网络流量学习预测数据,然后通过激活函数由增加偏值项后的所述目的层网络流量学习预测数据计算得到目的层网络流量学习预测输出数据,再根据所述目的层网络流量学习预测输出数据计算得到所述目的层误差项。
一个实施例中,所述网络流量预测单元,包括:网络流量预测输入数据生成模块,用于利用所述源层节点根据第二部分的所述网络流量数据生成网络流量预测输入数据;中间层网络流量预测结果生成模块,用于利用多个所述中间层节点并行地根据所述网络流量预测输入数据和其各自的所述中间层权值进行神经网络预测计算,生成多个中间层网络流量预测结果;网络流量预测输出数据生成模块,用于利用所述目的层节点根据所述多个中间层网络流量预测结果和所述目的层权值,计算得到目的层网络流量预测结果,通过激活函数由所述目的层网络流量预测结果计算得到网络流量预测输出数据,或通过激活函数由增加偏值项后的所述目的层网络流量预测结果计算得到网络流量预测输出数据。
一个实施例中,所述目的层处理单元,包括两个所述第三板级模块,其中一个所述第三板级模块提供目的层预留节点,用于存储所述中间层权值、所述目的层权值、所述目的层误差项、误差阈值及激活函数,另一个所述第三板级模块提供所述目的层节点。
一个实施例中,所述第一板级模块的个数为六个或六个以上,所述第二板级模块的个数为八个或八个以上。
一个实施例中,各所述第一板级模块、各所述第二板级模块及各所述第三板级模块均包括:网络接口、金手指内部接口、片上网络路由器、静态存储器、存储器控制器、中断控制器及物理核,所述金手指内部接口用于实现板级模块之间通信,所述片上网络路由器用于实现板级模块内部通信。
本发明还提供一种基于神经网络的网络流量预测方法,包括:接收网络流量数据,利用源层节点根据第一部分的所述网络流量数据生成网络流量训练数据;利用多个中间层节点并行地根据所述网络流量训练数据和其各自的中间层权值进行神经网络学习计算,生成多个中间层学习结果;利用目的层节点根据所述多个中间层学习结果和相应的一组目的层权值,计算得到目的层误差项;判断所述目的层误差项是否在误差阈值范围内,若是,使用所述中间层权值并利用所述源层节点、所述多个中间层节点及所述目的层节点进行基于神经网络的网络流量预测;其中,所述源层节点、所述中间层节点及所述目的层节点两两之间依据片上网络协议通信。
一个实施例中,还包括:若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,利用所述多个中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新所述中间层节点的中间层权值并依次迭代进行,直到重新计算的目的层误差项在所述误差阈值范围内。
一个实施例中,还包括:若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,并修正所述误差阈值范围,利用所述多个中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新中间层节点的中间层权值且不断修正误差阈值范围并依次迭代进行,直到重新计算的目的层误差项在修正后的误差阈值范围内。
一个实施例中,利用源层节点根据第一部分的所述网络流量数据生成网络流量训练数据,包括:利用多个所述源层节点并行预处理第一部分的所述网络流量数据,生成所述网络流量训练数据。
一个实施例中,利用目的层节点根据所述多个中间层学习结果和相应的一组目的层权值,计算得到目的层误差项,包括:利用所述目的层节点根据所述多个中间层学习结果中的中间层误差和所述目的层权值,加权求和得到所述目的层误差项;或者利用所述目的层节点根据所述多个中间层学习结果中的中间层网络流量学习预测数据和所述目的层权值,计算得到目的层网络流量学习预测数据,然后通过激活函数由增加偏值项后的所述目的层网络流量学习预测数据计算得到目的层网络流量学习预测输出数据,再根据所述目的层网络流量学习预测输出数据计算得到所述目的层误差项。
一个实施例中,使用所述中间层权值并利用所述源层节点、所述多个中间层节点及所述目的层节点进行基于神经网络的网络流量预测,包括:利用所述源层节点根据第二部分的所述网络流量数据生成网络流量预测输入数据;利用所述多个中间层节点并行地根据所述网络流量预测输入数据和其各自的所述中间层权值进行神经网络预测计算,生成多个中间层网络流量预测结果;利用所述目的层节点根据所述多个中间层网络流量预测结果和所述目的层权值,计算得到目的层网络流量预测结果,通过激活函数由所述目的层网络流量预测结果计算得到网络流量预测输出数据,或通过激活函数由增加偏值项后的所述目的层网络流量预测结果计算得到网络流量预测输出数据。
本发明实施例的基于神经网络的网络流量预测装置及方法,利用多个中间层节点并行进行神经网络学习,并结合目的层权值计算得到目的层误差项,最终输出结果综合多个中间层权值得到,以此,可以避免仅使用一个权值进行神经网络学习导致误差太大的问题,从而能够提高神经网络学习的收敛速度,进而提高网络流量预测的效率。中间层节点可根据需要进行增加,扩展灵活,可使用各种规模的网络流量预测。源层节点、中间层节点及目的层节点两两之间依据片上网络协议通信,可以保证分层进行网络流量预测的处理速度,有助于神经网络学习算法的结构变化。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1是本发明一实施例的基于神经网络的网络流量预测装置的结构示意图。如图1所示,本实施例的基于神经网络的网络流量预测装置,可包括:源层处理单元100、中间层处理单元200、目的层处理单元300及网络流量预测单元400,各单元可顺序连接。
源层处理单元100可包括第一板级模块110,第一板级模块110可用于提供源层节点。其中,所述源层处理单元100接收网络流量数据,利用所述源层节点根据第一部分的所述网络流量数据生成网络流量训练数据。
中间层处理单元200可包括多个第二板级模块210,每个第二板级模块210可用于提供一个中间层节点。其中,所述中间层处理单元200利用多个所述中间层节点并行地根据所述网络流量训练数据和其各自的中间层权值进行神经网络学习计算,生成多个中间层学习结果。
目的层处理单元300可包括第三板级模块310,第三板级模块310可用于提供目的层节点。其中,所述目的层处理单元利用所述目的层节点根据所述多个中间层学习结果和相应的一组目的层权值,计算得到目的层误差项。网络流量预测单元400可用于判断所述目的层误差项是否在误差阈值范围内,若是,使用所述中间层权值并利用所述源层节点、多个所述中间层节点及所述目的层节点进行基于神经网络的网络流量预测。
其中,所述源层节点、所述中间层节点及所述目的层节点两两之间依据片上网络协议通信。
各第二板级模块210之间可以桥接连接。不同板级模块(例如,第一板级模块110、第二板级模块210、第三板级模块310)之间可以通过金手指内部接口连接。每个中间层节点可以对应一个中间层权值,可以以网络流量训练数据作为输入,以其各自的中间层权值作为权值进行神经网络学习。不同中间层节点对应的中间层权值可不同。不同中间层节点进行神经网络学习所用的网络流量训练数据可以相同。每个中间层节点可以输出其各自的中间层学习结果。中间层学习结果可以包括中间层网络流量学习预测数据(预测的网络流量)和中间层误差,中间层误差可以根据中间层网络流量学习预测数据和相应的实际网络流量数据计算得到。每个中间层学习结果可以对应一个目的层权值,多个目的层权值可以利用一组目的层权值加权求和得到一个目的层误差项。在首次进行神经网络学习时,目的层权值和误差阈值可以通过初始化得到,之后可以根据需要进行更新。第二板级模块上可以搭载各种神经网络算法进行神经网络学习,可以根据需要重构神经网络学习算法。
源层节点、中间层节点及目的层节点两两之间依据片上网络协议可以进行片上网络通信。该片上网络协议可以根据需要进行设计。
该片上网络的协议可基于计算机以太网,利用计算机网络OSI协议参考模型实现。该模型从低到高可依次分为硬件时序层、控制层和应用系统层,可分别用于负责片上网络的并行通信、数据包收发、数据包路径选择与处理。
在其他实施例中,各中间层节点之间也可以依据片上网络协议可以进行通信。源层节点和目的层节点之间可依据片上网络协议直接进行通信。
第二板级模块210的个数可以根据需要设置,例如3个、4个、5个、6个或以上。在其他实施例中,第一板级模块110及/或第三板级模块310也可以根据需要设置多个。
每个板级模块(第一板级模块110、各第二板级模块210及第三板级模块310)均可连接有网络接口、金手指内部接口,可配置片上网络路由器、静态存储器、存储器控制器、中断控制器及物理核。该金手指内部接口可用于实现板级模块之间通信,该片上网络路由器可用于实现板级模块内部通信。
本实施例中,中间层处理单元包括多个第二板级模块,多个第二板级模块提供的中间层节点并行进行神经网络学习,并结合目的层权值计算得到目的层误差项,最终输出结果综合多个中间层权值得到,以此,可以避免仅使用一个权值进行神经网络学习导致误差太大的问题,从而能够提高神经网络学习的收敛速度,进而提高网络流量预测的效率。中间层处理单元由多个第二板级模块构成,从而可以根据网络流量规模需要扩展第二板级模块的个数,板级结构扩展灵活,以此可以克服现有定制神经网络预测处理硬件性能固定,不能灵活扩展等问题。源层节点、中间层节点及目的层节点两两之间依据片上网络协议通信,可以保证分层进行网络流量预测的处理速度,有助于神经网络学习算法的结构变化。
本发明前述及后述各实施例的板级模块可选用Xilinx公司的Virtex-7系列FPGA,例如XC7V2000T型号的FPGA,该型号的FPGA性能优良,资源丰富,具有1954560个逻辑单元;2160个DSP Slice;46512Kb的内存;36个GTX 12.5Gb/s收发器;1200个I/O引脚,可以满足本发明板级模块的设计要求。
图2是本发明另一实施例的基于神经网络的网络流量预测装置的结构示意图。如图2所示,图1所示的基于神经网络的网络流量预测装置,还可包括:第一神经网络结构参数更新单元500,与网络流量预测单元400连接。
第一神经网络结构参数更新单元500,用于若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,利用多个所述中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新所述中间层节点的中间层权值并依次迭代进行,直到重新计算的目的层误差项在所述误差阈值范围内。
若网络流量预测单元400判断目的层误差项不在上述误差阈值范围内,则可说明神经网络的参数(例如中间层权值)不能满足网络流量预测精度的要求,在此情况下,可以不断更新一个、多个或全部的中间层节点的中间层权值重新进行神经网络学习,直到目的层误差项在上述误差阈值范围内。没有更新中间层权值的中间层节点可以使用前次中间层权值进行神经网络学习计算,或者可以直接使用前次神经网络学习的中间层学习结果参与重新计算目的层误差项。
各个中间层权值和误差阈值可以视需要保存在源层处理单元、中间层处理单元及目的层处理单元中的一个或多个的板级模块的存储器中。
本实施例中,可以方便地修改中间层权值,从而可以方便地实现神经网络结构参数的重构,有助于进一步提高神经网络学习的收敛效率,提高网络流量预测效率。
图3是本发明又一实施例的基于神经网络的网络流量预测装置的结构示意图。如图3所示,图1所示的基于神经网络的网络流量预测装置,还可包括:第二神经网络结构参数更新单元600,与网络流量预测单元400连接。
第二神经网络结构参数更新单元600,用于若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,并修正所述误差阈值范围,利用多个所述中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新中间层节点的中间层权值且不断修正误差阈值范围并依次迭代进行,直到重新计算的目的层误差项在修正后的误差阈值范围内。
若网络流量预测单元400判断目的层误差项不在上述误差阈值范围内,一方面可说明神经网络的参数(例如中间层权值)不能满足网络流量预测精度的要求,另一方面可能是因为误差阈值的设置不够合理。例如,初始化的误差阈值可能不够合理。在此情况下,可以不断更新中间层权值并不断修正误差阈值重新进行神经网络学习,直到目的层误差项在上述误差阈值范围内。
各个中间层权值和误差阈值的修正值可以视需要保存在源层处理单元、中间层处理单元及目的层处理单元中的一个或多个的板级模块的存储器中。
本实施例中,通过同时更新中间层权值和误差阈值,可以在尽可能满足网络流量预测精度的情况下进一步提高神经网络学习的收敛效率,提高网络流量预测效率。
图4是本发明一实施例中的源层处理单元的结构示意图。如图4所示,图1至图3所示的基于神经网络的网络流量预测装置中,所述源层处理单元100,可包括多个所述第一板级模块110,所述源层处理单元利用多个所述源层节点并行预处理第一部分的所述网络流量数据,生成所述网络流量训练数据。
在源层处理单元100包含多个第一板级模块110的情况下,该多个第一板级模块110可以并行处理第一部分的所述网络流量数据,从而可以提高网络流量训练数据的生成速度。在源层处理单元100包含一个第一板级模块110的情况下,该第一板级模块110可以同时与上述多个第二板级模块210连接。在源层处理单元100包含多个第一板级模块110的情况下,第一板级模块110与第二板级模块210的连接关系可以预先根据需要设定好,以便将源层处理单元100处理得到的网络流量训练数据传输至中间层处理单元200中的各个中间层节点进行神经网络学习。
源层节点预处理第一部分的网络流量数据,例如可以是对输入的网络流量数据进行流量限制、平滑等处理。源层节点进行预处理的参数可以根据上述目的层误差项进行调整。
本实施例中,通过多个源层节点并行预处理第一部分网络流量数据可以提高网络流量训练数据的生成速度,进而提高网络流量预测的速度。
图5是本发明一实施例中目的层处理单元的结构示意图。如图5所示,图1至图3所示的基于神经网络的网络流量预测装置中,所述目的层处理单元300,还可包括:目的层误差项生成模块320。
目的层误差项生成模块320,用于利用所述目的层节点根据所述多个中间层学习结果中的中间层误差和所述目的层权值,加权求和得到所述目的层误差项;或者利用所述目的层节点根据所述多个中间层学习结果中的中间层网络流量学习预测数据和所述目的层权值,计算得到目的层网络流量学习预测数据,然后通过激活函数由增加偏值项后的所述目的层网络流量学习预测数据计算得到目的层网络流量学习预测输出数据,再根据所述目的层网络流量学习预测输出数据计算得到所述目的层误差项。
本实施例中,通过给目的层网络流量学习预测数据增加偏值项,可以对难以快速达到误差要求的目的层网络流量学习预测数据进行修正,加快神经网络学习的速度,从而提高网络流量预测效率。通过激活函数可以去除源层节点生成网络流量训练数据时对第一部分的网络流量数据的影响,得到实际的网络流量学习预测数据。
图6是本发明一实施例中网络流量预测单元的结构示意图。如图6所示,图1至图3所示的基于神经网络的网络流量预测装置中,所述网络流量预测单元400,可包括:网络流量预测输入数据生成模块410、中间层网络流量预测结果生成模块420及网络流量预测输出数据生成模块430,上述各模块顺序连接。
网络流量预测输入数据生成模块410,用于利用所述源层节点根据第二部分的所述网络流量数据生成网络流量预测输入数据;
中间层网络流量预测结果生成模块420,用于利用多个所述中间层节点并行地根据所述网络流量预测输入数据和其各自的所述中间层权值进行神经网络预测计算,生成多个中间层网络流量预测结果;
网络流量预测输出数据生成模块430,用于利用所述目的层节点根据所述多个中间层网络流量预测结果和所述目的层权值,计算得到目的层网络流量预测结果,通过激活函数由所述目的层网络流量预测结果计算得到网络流量预测输出数据,或通过激活函数由增加偏值项后的所述目的层网络流量预测结果计算得到网络流量预测输出数据。
可以以数据包的形式接收网络流量数据,源层处理单元接收的网络流量数据中一部分(第一部分网络流量数据)的实际网络流量可以已知,可以利用该部分网络流量数据生成网络流量训练数据来进行神经网络学习。神经网络学习完成后,可以利用网络流量数据中的另一部分(第二部分网络流量数据)进行网络流量预测。
本实施例中,经过神经网络学习训练得到合适的中间层权值,以及例如目的层权值、误差阈值、源层节点处理参数等神经网络结构参数后,可以利用源层处理单元、中间层处理单元以及目的层处理单元进行网络流量预测。
一些实施例中,所述目的层处理单元300可包括多个所述第三板级模块310,例如包括两个所述第三板级模块310。其中一个所述第三板级模块310可提供目的层预留节点,用于存储所述中间层权值、所述目的层权值、所述目的层误差项、误差阈值及激活函数,另一个所述第三板级模块310可提供所述目的层节点,以进行多种不同计算。
各个第三板级模块310均可包括物理核,在其他实施例中,例如,提供目的层预留节点的第三板级模块310的物理核可以用于加权计算得到上述目的层误差项,提供所述目的层节点的第三板级模块310可以用于进行增加偏值项的计算,进行关于激活函数的计算。
本实施例中,通过在目的层处理单元中设置多个第三板级模块,不同的第三板级模块可以用作不同的用途或计算过程,可以实现目的层处理过程的并行计算,从而可以进一步提高网络流量预测的速度。
一些实施例中,所述第一板级模块的个数为六个或六个以上,所述第二板级模块的个数为八个或八个以上。其中,第三板级模块的个数可以是两个。试验表明,该种搭配可以在适当设计板级结构的情况下,充分满足神经网络并行预测网络流量的的要求。
一些实施例中,各所述第一板级模块、各所述第二板级模块及各所述第三板级模块均包括:网络接口、金手指内部接口、片上网络路由器、静态存储器、存储器控制器、中断控制器及物理核,所述金手指内部接口用于实现板级模块之间通信,所述片上网络路由器用于实现板级模块内部通信。
第一板级模块、第二板级模块及第三板级模块两两之间可以依据片上网络协议进行通信,各第一板级模块之间可以依据片上网络协议进行通信,各第二板级模块之间可以依据片上网络协议进行通信,各第三板级模块之间可以依据片上网络协议进行通信。通过片上网络通信,各板级模块之间可以共享静态存储器及其中的数据,数据传输方便。
图7是本发明一实施例中板级模块的结构示意图。如图7所示,本实施例的板级模块可以包括静态存储器SRAM、SRAM控制器、网络接口Net、物理核Core及片上网络接口。其中,片上网络接口可用于实现同层(源层、中间层或目的层)内板级模块间的片上网络通信,网络接口Net可以用于不同层间的板级模块间的片上网络通信。静态存储器SRAM可以用于存储计算结果、权值、阈值等各种中间的或最终的数据。其他实施例中,板级模块还可以设置有片上网络路由等其他部件或模块。上述第一板级模块110、第二板级模块210及第三板级模块310中的一个或多个可以是图7所示的板级模块的结构。
图8是本发明一实施例的网络流量预测装置的结构示意图。如图8所示,源层处理单元靠近输入侧方向,可由6个或6个以上第一板级模块桥接构成,例如,由板级模块1、2、3、4、5、6桥接构成。每个第一板级模块均可连接有网络接口、金手指内部接口、可配置SRAM、片上网络路由器、中断控制器、物理核。目的层处理单元靠近输出侧方向,可由2个或者2个以上第二板级模块桥接,例如可由板级模块15、0桥接构成。其中1个第二板级模块的物理核可用来计算误差和预测输出值,另1个第二板级模块的物理核可提供预留节点,可用于专门保存目的层误差项、所有的中间层权值、激活函数等数据,并可负责向源层处理单元发送误差数据。中间层处理单元位于输入侧与输出侧之间,可由8个或者8个以上第三板级模块桥接构成,例如由板级模块7、8、9、10、11、12、13、14桥接构成。上述各板级模块内置有物理核。板级模块内可采用片上网络路由器实现通信,板级模块间可采用金手指进行通信。
一个实施例中,通过上述源层处理单元、中间层处理单元及目的层处理单元可以实现训练过程与推理过程。训练过程:输入网络流量训练数据和目标向量(中间层权值),计算感知网络训练权值;推理过程:输入网络流量预测数据,根据训练过程得到训练权值,经过分层感知神经网,得到输出预测结果。
一个实施例中,通过上述源层处理单元、中间层处理单元及目的层处理单元可以实现前向感知传播和后向误差传播。前向感知传播:计算源层输入与对应权值部分和,累加所有中间层物理核计算结果,并增加偏置项,目的层激活并获取输出预测结果。后向误差传播:将目的层误差传递给中间层和源层物理核,各个源层物理核根据对应权值计算源层误差,同时更新权值,再将源层误差累加传递给误差处理物理核。
一个实施例中,输入值从源层节点、中间层节点、目的层节点到流量预测输出的过程为感知预测前向传播过程,可以分为三个阶段:
(1)将源层节点输入值(网络流量数据或网络流量训练数据)与对应的中间层权值计算得到中间层学习计算结果。可以在源层节点保存初始化网络流量输入值、中间层权值、阈值初始值,源层节点保存的数据可通过片上网络传递给中间层节点进行前向传播,并将结果传输到目的层节点。
(2)将中间层节点计算结果发送到目的层预留节点,预留节点将所有中间层节点计算结果累加。计算网络流量预测输出值和误差值,预留节点可负责保存目的层节点误差值、中间层权值、目的层权值、阈值修正值及激活函数等。
(3)预留节点可将累加计算结果发送到各节点,并将通过激活函数产生目的层输出结果。
一个实施例中,计算节点计算输出值和误差值,如果预测误差满足误差要求,则预测结束输出网络流量预测值;如果不满足预测误差要求,则计算并保存中间层和目的层权值以及阈值的修正值。预留节点通过片上网络传递给源层节点,重新进行感知预测过程。
中间层为神经网络学习过程的主要单元,源层、中间层及目的层的各个计算过程构成完成的网络流量预测装置,即形成用于进行网络流量预测的感知神经网络。
一个实施例中,从目的层将误差值向中间层、源层传输,并更新权值的过程为后向传播过程,可以分为三个过程:
(1)目的层预留节点将目的层误差传输到源层节点。
(2)由输入数据、中间层到源层权值,计算得到中间层节点误差。
(3)将中间层节点误差传输到目的层预留节点,预留节点累加中间层误差,并更新中间层权值。
针对现有基于神经网络的网络流量预测方法的缺点:神经网络算法为串行流程执行,没有考虑人工神经网并行自身特点,无法满足网络流量预测的实时性要求,效率不高;定制神经网络预测处理硬件,性能固定,不能灵活扩展和重构算法;定制芯片单元的神经元之间传输参数效率低;可扩展性不高。本发明能够达到效果:分层可扩展并行板级结构;可重构感知网络技术,便于对权值和激励函数(激活函数)进行修改;片上网络技术通过片上路由映射神经网络传递通道,保证了分层预测感知网络并行处理速度的提高;分层可扩展的多核片上网络技术,可以适应不同感知网络流量预测算法的结构变化。本发明由多个板级的模块分层桥接得到,且每个均连接有网络接口,金手指内部接口,这样的扩展性结构,可以根据不同的感知网络结构随意配置分层结构、扩展新的板级结构,增加感知网络流量预测能力。本发明利用分层多核片上网络技术实现并行感知网络预测处理,配置分层可扩展感知网络结构参数、神经网络权值、激活函数等。本发明从可重构并行感知网络流量预测处理结构,进行创新,采用多核结构实现分层感知网络流量预测的并行处理,采用多核可重构技术提高感知网络流量预测算法的适应性,利用片上网络技术对板级间的多个物理核进行控制提高了多处理核通信效率,能够降低时延,提高网络流量预测效率。
本发明实施例的基于神经网络的网络流量预测装置,中间层处理单元包括多个第二板级模块,多个第二板级模块提供的中间层节点并行进行神经网络学习,并结合目的层权值计算得到目的层误差项,最终输出结果综合多个中间层权值得到,以此,可以避免仅使用一个权值进行神经网络学习导致误差太大的问题,从而能够提高神经网络学习的收敛速度,进而提高网络流量预测的效率。中间层处理单元由多个第二板级模块构成,从而可以根据网络流量规模需要扩展第二板级模块的个数,板级结构扩展灵活,以此可以克服现有定制神经网络预测处理硬件性能固定,不能灵活扩展等问题。源层节点、中间层节点及目的层节点两两之间依据片上网络协议通信,可以保证分层进行网络流量预测的处理速度,有助于神经网络学习算法的结构变化。
基于与图1所示的基于神经网络的网络流量预测装置相同的发明构思,本申请实施例还提供了一种基于神经网络的网络流量预测方法,如下面实施例所述。由于该基于神经网络的网络流量预测方法解决问题的原理与基于神经网络的网络流量预测装置相似,因此该基于神经网络的网络流量预测方法的实施可以参见基于神经网络的网络流量预测装置的实施,重复之处不再赘述。
图9是本发明一实施例的基于神经网络的网络流量预测方法的流程示意图。如图9所示,本实施例的基于神经网络的网络流量预测方法,可包括步骤:
S110:接收网络流量数据,利用源层节点根据第一部分的所述网络流量数据生成网络流量训练数据;
S120:利用多个中间层节点并行地根据所述网络流量训练数据和其各自的中间层权值进行神经网络学习计算,生成多个中间层学习结果;
S130:利用目的层节点根据所述多个中间层学习结果和相应的一组目的层权值,计算得到目的层误差项;
S140:判断所述目的层误差项是否在误差阈值范围内,若是,使用所述中间层权值并利用所述源层节点、所述多个中间层节点及所述目的层节点进行基于神经网络的网络流量预测;其中,所述源层节点、所述中间层节点及所述目的层节点两两之间依据片上网络协议通信。
每个中间层节点可以对应一个中间层权值,可以以网络流量训练数据作为输入,以其各自的中间层权值作为权值进行神经网络学习。不同中间层节点对应的中间层权值可不同。不同中间层节点进行神经网络学习所用的网络流量训练数据可以相同。每个中间层节点可以输出其各自的中间层学习结果。中间层学习结果可以包括中间层网络流量学习预测数据(预测的网络流量)和中间层误差,中间层误差可以根据中间层网络流量学习预测数据和相应的实际网络流量数据计算得到。在首次进行神经网络学习时,目的层权值和误差阈值可以通过初始化得到,之后可以根据需要进行更新。
源层节点、中间层节点及目的层节点两两之间依据片上网络协议可以进行片上网络通信。该片上网络协议可以根据需要进行设计。在其他实施例中,各中间层节点之间也可以依据片上网络协议可以进行通信。源层节点和目的层节点之间可依据片上网络协议直接进行通信。
本实施例中,利用多个中间层节点并行进行神经网络学习,并结合目的层权值计算得到目的层误差项,最终输出结果综合多个中间层权值得到,以此,可以避免仅使用一个权值进行神经网络学习导致误差太大的问题,从而能够提高神经网络学习的收敛速度,进而提高网络流量预测的效率。中间层节点可根据需要进行增加,扩展灵活,可使用各种规模的网络流量预测。源层节点、中间层节点及目的层节点两两之间依据片上网络协议通信,可以保证分层进行网络流量预测的处理速度,有助于神经网络学习算法的结构变化。
图10是本发明另一实施例的基于神经网络的网络流量预测方法的流程示意图。如图10所示,图9所示的基于神经网络的网络流量预测方法,还可包括步骤:
S150:若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,利用所述多个中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新所述中间层节点的中间层权值并依次迭代进行,直到重新计算的目的层误差项在所述误差阈值范围内。
若判断目的层误差项不在上述误差阈值范围内,则可说明神经网络的参数(例如中间层权值)不能满足网络流量预测精度的要求,在此情况下,可以不断更新一个、多个或全部的中间层节点的中间层权值重新进行神经网络学习,直到目的层误差项在上述误差阈值范围内。没有更新中间层权值的中间层节点可以使用前次中间层权值进行神经网络学习计算,或者可以直接使用前次神经网络学习的中间层学习结果参与重新计算目的层误差项。
本实施例中,可以方便地修改中间层权值,从而可以方便地实现神经网络结构参数的重构,有助于进一步提高神经网络学习的收敛效率,提高网络流量预测效率。
图11是本发明又一实施例的基于神经网络的网络流量预测方法的流程示意图。如图11所示,图9所示的基于神经网络的网络流量预测方法,还可包括步骤:
S160:若所述目的层误差项不在所述误差阈值范围内,根据所述目的层误差项更新所述中间层节点的中间层权值,并修正所述误差阈值范围,利用所述多个中间层节点重新并行地根据所述网络流量训练数据和更新后的中间层节点的中间层权值进行神经网络学习计算,重新生成多个中间层学习结果,利用所述目的层节点根据重新生成的多个中间层学习结果和所述目的层权值,重新计算目的层误差项,不断更新中间层节点的中间层权值且不断修正误差阈值范围并依次迭代进行,直到重新计算的目的层误差项在修正后的误差阈值范围内。
若判断目的层误差项不在上述误差阈值范围内,一方面可说明神经网络的参数(例如中间层权值)不能满足网络流量预测精度的要求,另一方面可能是因为误差阈值的设置不够合理。例如,初始化的误差阈值可能不够合理。在此情况下,可以不断更新中间层权值并不断修正误差阈值重新进行神经网络学习,直到目的层误差项在上述误差阈值范围内。
本实施例中,通过同时更新中间层权值和误差阈值,可以在尽可能满足网络流量预测精度的情况下进一步提高神经网络学习的收敛效率,提高网络流量预测效率。
一些实施例中,在上述步骤S110中,利用源层节点根据第一部分的所述网络流量数据生成网络流量训练数据的方法,具体实施方式可为:利用多个所述源层节点并行预处理第一部分的所述网络流量数据,生成所述网络流量训练数据。
本实施例中,通过多个源层节点并行预处理第一部分网络流量数据可以提高网络流量训练数据的生成速度,进而提高网络流量预测的速度。
一些实施例中,在上述步骤S130中,利用目的层节点根据所述多个中间层学习结果和相应的一组目的层权值,计算得到目的层误差项的方法,具体实施方式可为:利用所述目的层节点根据所述多个中间层学习结果中的中间层误差和所述目的层权值,加权求和得到所述目的层误差项;或者利用所述目的层节点根据所述多个中间层学习结果中的中间层网络流量学习预测数据和所述目的层权值,计算得到目的层网络流量学习预测数据,然后通过激活函数由增加偏值项后的所述目的层网络流量学习预测数据计算得到目的层网络流量学习预测输出数据,再根据所述目的层网络流量学习预测输出数据计算得到所述目的层误差项。
本实施例中,通过给目的层网络流量学习预测数据增加偏值项,可以对难以快速达到误差要求的目的层网络流量学习预测数据进行修正,加快神经网络学习的速度,从而提高网络流量预测效率。通过激活函数可以去除源层节点生成网络流量训练数据时对第一部分的网络流量数据的影响,得到实际的网络流量学习预测数据。
图12是本发明一实施例中使用中间层权值并利用源层节点、多个中间层节点及目的层节点进行基于神经网络的网络流量预测的方法流程示意图。如图12所示,在上述步骤S140中,使用所述中间层权值并利用所述源层节点、所述多个中间层节点及所述目的层节点进行基于神经网络的网络流量预测的方法,可包括步骤:
S141:利用所述源层节点根据第二部分的所述网络流量数据生成网络流量预测输入数据;
S142:利用所述多个中间层节点并行地根据所述网络流量预测输入数据和其各自的所述中间层权值进行神经网络预测计算,生成多个中间层网络流量预测结果;
S143:利用所述目的层节点根据所述多个中间层网络流量预测结果和所述目的层权值,计算得到目的层网络流量预测结果,通过激活函数由所述目的层网络流量预测结果计算得到网络流量预测输出数据,或通过激活函数由增加偏值项后的所述目的层网络流量预测结果计算得到网络流量预测输出数据。
可以以数据包的形式接收网络流量数据,网络流量数据中一部分(第一部分网络流量数据)的实际网络流量可以已知,可以利用该部分网络流量数据生成网络流量训练数据来进行神经网络学习。神经网络学习完成后,可以利用网络流量数据中的另一部分(第二部分网络流量数据)进行网络流量预测。
本实施例中,经过神经网络学习训练得到合适的中间层权值,以及例如目的层权值、误差阈值、源层节点处理参数等神经网络结构参数后,可以利用源层处理单元、中间层处理单元以及目的层处理单元进行网络流量预测。
一些实施例中,在上述步骤S130中,可以利用多个目的层节点并行地根据所述多个中间层学习结构和目的层权值,计算得到目的层误差项,从而进一步提高网络流量预测的效率。具体地,例如可以包括一个目的层计算节点和一个目的层预留节点。目的层预留节点可以用于存储各种中间的或最终的数据,也可以进行加权累加计算,目的层计算节点可以用于进行其他计算。
图13是本发明一实施例的网络流量预测流程示意图。如图13所示,进行初始化,可以得到初始的中间层权值、初始的误差阈值等参数。然后,启动源层,对网络流量数据进行预处理。若中间层权值和阈值计算结束则启动中间层,若没有结束,则继续利用源层进行预处理。启动中间层后,输出中间层结果,然后,启动目的层,根据中间层结果计算预测输出数据。如果预测输出数据不符合要求,可以对权值、阈值等参数进行修正。
输入值从源层节点、中间层节点、目的层节点到流量预测输出的过程为感知预测前向传播过程,可以分为三个阶段:(1)将源层节点输入值(网络流量数据或网络流量训练数据)与对应的中间层权值计算得到中间层学习计算结果。可以在源层节点保存初始化网络流量输入值、中间层权值、阈值初始值,源层节点保存的数据可通过片上网络传递给中间层节点进行前向传播,并将结果传输到目的层节点。(2)将中间层节点计算结果发送到目的层预留节点,预留节点将所有中间层节点计算结果累加。计算网络流量预测输出值和误差值,预留节点可负责保存目的层节点误差值、中间层权值、目的层权值、阈值修正值及激活函数等。(3)预留节点可将累加计算结果发送到各节点,并将通过激活函数产生目的层输出结果。图14是本发明一实施例中的前向传播流程示意图。如图14所示,首先产生部分和,然后判断是否为预留节点,若是可进行累加计算并增加偏值项,若不在预留节点,可将部分累加结果发送到预留节点。累加并增加偏值项后向各个目的层节点发送结果,然后经过激活函数计算得到输出预测结果。
从目的层将误差值向中间层、源层传输,并更新权值的过程为后向传播过程,可以分为三个过程:(1)目的层预留节点将目的层误差传输到源层节点。(2)由输入数据、中间层到源层权值,计算得到中间层节点误差。(3)将中间层节点误差传输到目的层预留节点,预留节点累加中间层误差,并更新中间层权值。图15是本发明一实施例中网络流量预测后向误差传播流程示意图。如图15所示,判断是否在预留节点,若是将误差值发送到源层,计算源层误差,若否则将误差值发送到源层。然后计算局部梯度值,并更新权值。判断是否在预留节点,若是则累加并增加偏值项,若否则将源层误差发送至预留节点进行后续计算。
本发明实施例的基于神经网络的网络流量预测方法,利用多个中间层节点并行进行神经网络学习,并结合目的层权值计算得到目的层误差项,最终输出结果综合多个中间层权值得到,以此,可以避免仅使用一个权值进行神经网络学习导致误差太大的问题,从而能够提高神经网络学习的收敛速度,进而提高网络流量预测的效率。中间层节点可根据需要进行增加,扩展灵活,可使用各种规模的网络流量预测。源层节点、中间层节点及目的层节点两两之间依据片上网络协议通信,可以保证分层进行网络流量预测的处理速度,有助于神经网络学习算法的结构变化。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。