本发明涉及信息预测领域,更具体地,涉及一种基于深度时空神经网络的需求预测方法、系统及计算机可读存储介质。
背景技术:
制造业供应风险的影响因素识别及供应风险的管理和控制成为了提升制造效率的关键。其中,制造供应链需求信息的预测是研究中的一个关键点,因为准确的预测能够有效避免牛鞭效应。显然,供应链的递归效应决定了应当先预测下游的需求信息,然后根据需求产生相应订单,最后根据订单信息才能制定生产决策,并为库存管理提供依据.所以精准的需求预测可以控制库存成本,缩减供应提前期,同时降低断货、缺货的风险。
现有的预测方法主要包括定性法、因果关系法、仿真法和时间序列法。
定性方法主要依赖于人的主观判断,适用于只能获得很少的历史数据或专家的意见十分重要的场合,适用场景有限。主要有集体讨论法、类比法、市场研究法、德尔菲法。
因果关系法假定需求预测与某些外界因素(如经济状况、利率)等高度相关,找到这些外界因素与需求之间的关联性,通过预测外界因素的变化来预测需求。
仿真法通过建立仿真模型,通过仿真模型模拟需求方来预测需求。
时间序列数据法利用相关的预测模型,以历史数据作为输入,基于历史观察数据来预测未来的需求。如何找到并描述时间序列数据的变化规律,建立相应的预测模型从而降低模型的预测误差对时间序列数据预测至关重要。
技术实现要素:
本发明克服了上述现有的技术不足,提供一种基于深度时空神经网络的需求预测方法、系统及计算机可读存储介质。本发明结合实际需求数据突发性较强和时空依赖的特点进行模型训练和定量预测,其可以显著提高需求预测的精度。
为解决上述技术问题,本发明的技术方案如下:
一种基于深度时空神经网络的需求预测方法,包括以下步骤:
采集历史订单的需求序列数据,对采集历史订单的需求序列数据进行预处理,得到预处理后的历史订单的需求序列数据;
基于预处理后的历史订单的需求序列数据构建数据集,所述的数据集包括输入需求序列数据和预测结果序列数据;并数据集划分为训练数据子集和测试数据子集;所述的输入需求序列数据包括预处理后的历史订单的需求序列数据;
搭建基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型;
利用数据集对需求序列预测模型进行训练,得到训练后的需求序列预测模型;
通过预处理后的历史订单的需求序列数据,结合训练后的需求序列预测模型,得到未来的需求预测结果。
本发明中通过基于因果扩展卷积的神经网络模型实现对供应链需求的预测功能,有效的提高了预测准确性,并且当数据样本差异性较大时,基于因果扩展卷积的神经网络模型的优势更加显著。
在一种优选的方案中,所述的预处理包括以下子步骤:
对采集历史订单的需求序列数据中存在缺失信息的需求序列数据和存在错误的需求序列数据进行删除;
若时间节点缺乏对应的需求序列数据,则以上述时间节点周围的时间节点的同类需求的平均值进行填充到上述时间节点中。
在一种优选的方案中,所述的数据集包括以下内容:
预处理后的历史订单的需求序列数据采用滑动窗口方法,通过选择一个需求序列数据为一个周期进行滑窗,从而构建多个训练窗口,扩大训练集数量;最后的a个需求序列数据作为预测结果序列数据,剩余的需求序列数据作为输入需求序列数据;所述的a是预设值;
将数据集中x的需求序列数据作为训练数据子集,将数据集中y的需求序列数据作为测试数据子集,所述的p+q=1。
在一种优选的方案中,所述的p=0.8。
在一种优选的方案中,所述的“搭建基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型”中的需求序列预测模型包括以下内容:
需求序列预测模型的时空层包括β个inception模块,每个inception模块包含γ个分支,每个分支都包含因果卷积和扩展卷积。
本优选方案中,通过inception神经网络模块作为神经网络对数据进行训练,不仅灵活性高,且具备可移植性。
在一种优选的方案中,所述的β的取值范围是[3,7]。
在一种优选的方案中,所述的γ=5。
在一种优选的方案中,所述的“利用数据集对需求序列预测模型进行训练”包括以下内容:
inception模块的隐藏单元的输出值通过下式进行表达:
y=w·x+b
式中,所述的y表示输出值,所述的x表示输入值,所述的w表示权重值的矩阵,所述的b表示偏置值向量;
对输入数据进行训练时,通过损失函数评估需求序列预测模型的目标输出和实际输出的差距的函数,所述的函数值越小说明实际输出与目标输出的差值越小,表示权重值越合适;
通过adam算法对损失函数进行优化,定义初始学习率δ,对损失函数进行迭代更新。
在一种优选的方案中,所述的损失函数通过下式进行表达:
式中,所述的loss表示损失值;所述的y_result表示每次神经网络的输出值;所述的y_real表示实际的原始数据;所述的i表示输入的第i个需求序列数据;所述的n表示输入的需求序列数据的数量。
本优选方案中,将神经元的输出值y_result减去真实值y_real,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值。
在一种优选的方案中,所述的δ=0.001。
本发明还公开了一种基于深度时空神经网络的需求预测系统,包括采集模块、预处理模块、数据集模块、建模模块和预测模块,其中,
所述的采集模块用于采集历史订单的需求序列数据;
所述的预处理模块用于将采集模块的历史订单的需求序列数据进行预处理,得到预处理后的历史订单的需求序列数据;
所述的数据集模块通过预处理模块的预处理后的历史订单的需求序列数据构建数据集,所述的数据集包括输入需求序列数据和预测结果序列数据;并数据集划分为训练数据子集和测试数据子集;所述的输入需求序列数据包括预处理后的历史订单的需求序列数据;
所述的建模模块用于构建基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型;再通过数据集模块的数据集对需求序列预测模型进行训练,得到训练后的需求序列预测模型;
所述的预测模块根据建模模块的训练后的需求序列预测模型,结合预处理模块的预处理后的历史订单的需求序列数据,得到未来的需求预测结果。
本发明中通过基于因果扩展卷积的神经网络模型实现对供应链需求的预测功能,有效的提高了预测准确性,并且当数据样本差异性较大时,基于因果扩展卷积的神经网络模型的优势更加显著。
在一种优选的方案中,所述的预处理模块包括以下功能:
对采集历史订单的需求序列数据中存在缺失信息的需求序列数据和存在错误的需求序列数据进行删除;
若时间节点缺乏对应的需求序列数据,则以上述时间节点周围的时间节点的同类需求的平均值进行填充到上述时间节点中。
在一种优选的方案中,所述的数据集模块包括以下功能:
预处理后的历史订单的需求序列数据采用滑动窗口方法,通过选择一个需求序列数据为一个周期进行滑窗,从而构建多个训练窗口,扩大训练集数量;最后的a个需求序列数据作为预测结果序列数据,剩余的需求序列数据作为输入需求序列数据;所述的a是预设值;
将数据集中x的需求序列数据作为训练数据子集,将数据集中y的需求序列数据作为测试数据子集,所述的p+q=1。
在一种优选的方案中,所述的p=0.8。
在一种优选的方案中,所述的建模模块的需求序列预测模型包括以下内容:
需求序列预测模型的时空层包括β个inception模块,每个inception模块包含γ个分支,每个分支都包含因果卷积和扩展卷积。
在一种优选的方案中,所述的β的取值范围是[3,7]。
本优选方案中,通过inception神经网络模块作为神经网络对数据进行训练,不仅灵活性高,且具备可移植性。
在一种优选的方案中,所述的γ=5。
在一种优选的方案中,所述的建模模块中的中的训练包括以下内容:
inception模块的隐藏单元的输出值通过下式进行表达:
y=w·x+b
式中,所述的y表示输出值,所述的x表示输入值,所述的w表示权重值的矩阵,所述的b表示偏置值向量;
对输入数据进行训练时,通过损失函数评估需求序列预测模型的目标输出和实际输出的差距的函数,所述的函数值越小说明实际输出与目标输出的差值越小,表示权重值越合适;
通过adam算法对损失函数进行优化,定义初始学习率δ,对损失函数进行迭代更新。
在一种优选的方案中,所述的损失函数通过下式进行表达:
式中,所述的loss表示损失值;所述的y_result表示每次神经网络的输出值;所述的y_real表示实际的原始数据;所述的i表示输入的第i个需求序列数据;所述的n表示输入的需求序列数据的数量。
本优选方案中,将神经元的输出值y_result减去真实值y_real,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值。
本优选方案中,将神经元的输出值y_result减去真实值y_real,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值。
在一种优选的方案中,所述的δ=0.001。
本发明还公开了一种计算机可读存储介质,存储有一种基于深度时空神经网络的需求预测方法和/或一种基于深度时空神经网络的需求预测系统。
与现有技术相比,本发明技术方案的有益效果是:
本发明中通过基于因果扩展卷积的神经网络模型实现对供应链需求的预测功能,有效的提高了预测准确性,并且当数据样本差异性较大时,基于因果扩展卷积的神经网络模型的优势更加显著。
附图说明
图1为实施例的流程图。
图2为实施例的基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型图。
图3为实施例的inception模块图。
图4为需求序列数据示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例
如图1所示,一种基于深度时空神经网络的需求预测方法,包括以下步骤:
采集历史订单的需求序列数据(如图4所示),对采集历史订单的需求序列数据进行预处理,得到预处理后的历史订单的需求序列数据;
基于预处理后的历史订单的需求序列数据构建数据集,数据集包括输入需求序列数据和预测结果序列数据;并数据集划分为训练数据子集和测试数据子集;输入需求序列数据包括预处理后的历史订单的需求序列数据;
搭建基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型;
利用数据集对需求序列预测模型进行训练,得到训练后的需求序列预测模型;
通过预处理后的历史订单的需求序列数据,结合训练后的需求序列预测模型,得到未来的需求预测结果。
本实施例中通过基于因果扩展卷积的神经网络模型实现对供应链需求的预测功能,有效的提高了预测准确性,并且当数据样本差异性较大时,基于因果扩展卷积的神经网络模型的优势更加显著。
在实施例中,还可以进行以下扩展:预处理包括以下子步骤:
对采集历史订单的需求序列数据中存在缺失信息的需求序列数据和存在错误的需求序列数据进行删除;
若时间节点缺乏对应的需求序列数据,则以上述时间节点周围的时间节点的同类需求的平均值进行填充到上述时间节点中。
在实施例及上述改进实施例中,还可以进行以下扩展:数据集包括以下内容:
预处理后的历史订单的需求序列数据采用滑动窗口方法,通过选择一个需求序列数据为一个周期进行滑窗,从而构建多个训练窗口,扩大训练集数量;最后的a个需求序列数据作为预测结果序列数据,剩余的需求序列数据作为输入需求序列数据;a是预设值;
将数据集中x的需求序列数据作为训练数据子集,将数据集中y的需求序列数据作为测试数据子集,p+q=1。
在实施例及上述改进实施例中,还可以进行以下扩展:a的取值范围是[6,16]。
在实施例及上述改进实施例中,还可以进行以下扩展:p=0.8。
在实施例及上述改进实施例中,还可以进行以下扩展:“搭建基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型”中的需求序列预测模型包括以下内容:
需求序列预测模型的时空层(如图2所示)包括β个inception模块,每个inception模块包含γ个分支,每个分支都包含因果卷积和扩展卷积。
本扩展实施例中,通过inception神经网络模块作为神经网络对数据进行训练,不仅灵活性高,且具备可移植性。
在实施例及上述改进实施例中,还可以进行以下扩展:γ=5,其中,
每个inception模块包含5个因果和扩展卷积的分支,在分支前和分支后将多个数据矩阵按深度链接起来,参见图3。
5个因果和扩展卷积的分支具体包括:
在实施例及上述改进实施例中,还可以进行以下扩展:β的取值范围是[3,7]。
在实施例及上述改进实施例中,还可以进行以下扩展:γ=5。
在实施例及上述改进实施例中,还可以进行以下扩展:“利用数据集对需求序列预测模型进行训练”包括以下内容:
inception模块的隐藏单元的输出值通过下式进行表达:
y=w·x+b
式中,y表示输出值,x表示输入值,w表示权重值的矩阵,b表示偏置值向量;
对输入数据进行训练时,通过损失函数评估需求序列预测模型的目标输出和实际输出的差距的函数,函数值越小说明实际输出与目标输出的差值越小,表示权重值越合适;
通过adam算法对损失函数进行优化,定义初始学习率δ,对损失函数进行迭代更新。
在实施例及上述改进实施例中,还可以进行以下扩展:损失函数通过下式进行表达:
式中,loss表示损失值;y_result表示每次神经网络的输出值;y_real表示实际的原始数据;i表示输入的第i个需求序列数据;n表示输入的需求序列数据的数量。
本改进方案中,将神经元的输出值y_result减去真实值y_real,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值。
在实施例及上述改进实施例中,还可以进行以下扩展:δ=0.001。
本优选法方案中,初始学习率为0.001,迭代1000回合,每隔50回合,学习率变为原来的0.1倍。训练完毕后寻找损失最小的模型作为特征生成器模型,从而得到神经网络的模型参数。
一种基于深度时空神经网络的需求预测系统,包括采集模块、预处理模块、数据集模块、建模模块和预测模块,其中,
采集模块用于采集历史订单的需求序列数据;
预处理模块用于将采集模块的历史订单的需求序列数据进行预处理,得到预处理后的历史订单的需求序列数据;
数据集模块通过预处理模块的预处理后的历史订单的需求序列数据构建数据集,数据集包括输入需求序列数据和预测结果序列数据;并数据集划分为训练数据子集和测试数据子集;输入需求序列数据包括预处理后的历史订单的需求序列数据;
建模模块用于构建基于注意力机制和因果扩展卷积的神经网络的需求序列预测模型;再通过数据集模块的数据集对需求序列预测模型进行训练,得到训练后的需求序列预测模型;
预测模块根据建模模块的训练后的需求序列预测模型,结合预处理模块的预处理后的历史订单的需求序列数据,得到未来的需求预测结果。
本发明中通过基于因果扩展卷积的神经网络模型实现对供应链需求的预测功能,有效的提高了预测准确性,并且当数据样本差异性较大时,基于因果扩展卷积的神经网络模型的优势更加显著。
在实施例中,还可以进行以下扩展:预处理模块包括以下功能:
对采集历史订单的需求序列数据中存在缺失信息的需求序列数据和存在错误的需求序列数据进行删除;
若时间节点缺乏对应的需求序列数据,则以上述时间节点周围的时间节点的同类需求的平均值进行填充到上述时间节点中。
在实施例及上述改进实施例中,还可以进行以下扩展:数据集模块包括以下功能:
预处理后的历史订单的需求序列数据采用滑动窗口方法,通过选择一个需求序列数据为一个周期进行滑窗,从而构建多个训练窗口,扩大训练集数量;最后的a个需求序列数据作为预测结果序列数据,剩余的需求序列数据作为输入需求序列数据;a是预设值;
将数据集中x的需求序列数据作为训练数据子集,将数据集中y的需求序列数据作为测试数据子集,p+q=1。
在实施例及上述改进实施例中,还可以进行以下扩展:a的取值范围是[6,16]。
在实施例及上述改进实施例中,还可以进行以下扩展:p=0.8。
在实施例及上述改进实施例中,还可以进行以下扩展:建模模块的需求序列预测模型包括以下内容:
需求序列预测模型的时空层包括β个inception模块,每个inception模块包含γ个分支,每个分支都包含因果卷积和扩展卷积。
在实施例及上述改进实施例中,还可以进行以下扩展:β的取值范围是[3,7]。
本优选方案中,通过inception神经网络模块作为神经网络对数据进行训练,
不仅灵活性高,且具备可移植性。
在实施例及上述改进实施例中,还可以进行以下扩展:γ=5。
在实施例及上述改进实施例中,还可以进行以下扩展:建模模块中的中的训练包括以下内容:
inception模块的隐藏单元的输出值通过下式进行表达:
y=w·x+b
式中,y表示输出值,x表示输入值,w表示权重值的矩阵,b表示偏置值向量;
对输入数据进行训练时,通过损失函数评估需求序列预测模型的目标输出和实际输出的差距的函数,函数值越小说明实际输出与目标输出的差值越小,表示权重值越合适;
通过adam算法对损失函数进行优化,定义初始学习率δ,对损失函数进行迭代更新。
在实施例及上述改进实施例中,还可以进行以下扩展:损失函数通过下式进行表达:
式中,loss表示损失值;y_result表示每次神经网络的输出值;y_real表示实际的原始数据;i表示输入的第i个需求序列数据;n表示输入的需求序列数据的数量。
本优选方案中,将神经元的输出值y_result减去真实值y_real,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值。
本优选方案中,将神经元的输出值y_result减去真实值y_real,再进行平方,最后使用计算平均计算得到方差;得到的方差也就是损失函数的损失值。
在实施例及上述改进实施例中,还可以进行以下扩展:δ=0.001。
在上述具体实施方式的具体内容中,各技术特征可以进行任意不矛盾的组合,为使描述简洁,未对上述各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。