李詠凱, 連蓮, 劉譯聰, 趙朋
(國網(wǎng)冀北電力有限公司物資分公司, 北京 100075)
目前的大多數(shù)企業(yè)主要通過常規(guī)經(jīng)驗(yàn)進(jìn)行招標(biāo)物料采購價(jià)格的估算,由于市場的極不穩(wěn)定特性,僅憑經(jīng)驗(yàn)預(yù)判市場易導(dǎo)致估算結(jié)果與實(shí)際價(jià)格相差甚遠(yuǎn),可能造成成本增加,資源浪費(fèi),削弱產(chǎn)品競爭力,客戶流失等情況的發(fā)生[1-2]。如何合理預(yù)測物料采購需求,是很多專家和學(xué)者的主要研究方向:陳辰等[3]利用偏差預(yù)測模型展開的提升藥品采購計(jì)劃準(zhǔn)確度研究,通過對歷史采購數(shù)據(jù)的相對標(biāo)準(zhǔn)偏差進(jìn)行分類,將權(quán)重引入不同時期的物料消耗量,與標(biāo)準(zhǔn)偏差相結(jié)合構(gòu)建物料采購預(yù)測模型,實(shí)現(xiàn)藥品精準(zhǔn)采購計(jì)劃的制定;韓素敏等[4]基于雙重不確定信息研究的采購計(jì)劃方法,通過構(gòu)建采購一次和雙源采購決策模型后進(jìn)行最優(yōu)求解,通過所得數(shù)值獲取物料采購需求的合理預(yù)測。
雖然上述方法都能有效實(shí)現(xiàn)物料采購需求的預(yù)測和挖掘,但是預(yù)測結(jié)果往往與實(shí)際情況的差距較大,導(dǎo)致企業(yè)不能最大利益化地實(shí)現(xiàn)對物料采購的評估。深度循環(huán)神經(jīng)網(wǎng)絡(luò)(DRNN)具備良好的提取目標(biāo)、聲音識別、機(jī)器翻譯等優(yōu)勢,為此,本文提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)的物料采購需求智能化挖掘方法,充分利用DRNN的序列預(yù)測能力,基于小波分解方法,構(gòu)建DRNN物料采購需求挖掘模型,實(shí)現(xiàn)企業(yè)的智能化挖掘物料采購需求,確保企業(yè)與供應(yīng)商之間保持博弈均衡的狀態(tài)。
1.1.1 小波變換
為了獲取企業(yè)與供應(yīng)商之間實(shí)時通信的時頻信號,在最短的時間內(nèi),將物料采購需求的閾值由3衰減至0,構(gòu)建小波變換函數(shù)[5],描述公式為
(1)
其中,Ua,b(t)和U(t)分別表示子小波和基小波。
如果約束矩陣{Ua,b}能夠滿足式(1),則能量有限信號f(t)∈L2(R),該信號的小波變化公式為
(2)
式(2)驗(yàn)證了小波變換能夠根據(jù)不同尺度分解信號,等同于利用不同濾波器對企業(yè)與供應(yīng)商之間實(shí)時通信信號進(jìn)行濾波處理。
假設(shè)f(iΔt)為離散信號,其中Δt表示采購公告取樣的間隔時間,當(dāng){i=1,2,…,n}時,式(2)的離散表達(dá)式為
(3)
1.1.2 小波分解與重構(gòu)
假設(shè){x(t)}表示中標(biāo)公司的具體需求序列,D0(t)=x(t),則分解算法為
(4)
Mi(t)=Di-1(t)-Di(t)(i=1,2,…)
(5)
其中,h(k)表示低通濾波器的離散化輸出信號,在尺度為i的條件下時,Di-1(t)和Mi(t)分別表示企業(yè)與供應(yīng)商之間實(shí)時通信約束參數(shù)Di(t)的尺度和小波系數(shù)序列。則在尺度為j的條件下,離散小波變換為{M1,M2,M3,…,Mj,Dj}。
利用對離散小波{M1,M2,M3,…,Mj,Dj}的分析進(jìn)行所有采購單價(jià)序列特征的識別,經(jīng)重構(gòu)后的初始序列為
(6)
為了獲取企業(yè)采購量斷層式需求,將自反饋神經(jīng)元代入循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),促使RNN能夠產(chǎn)生記憶數(shù)據(jù)的功能,以此對物料采購需求樣本相關(guān)特征通過已有時序和當(dāng)前時序的相關(guān)性檢測實(shí)現(xiàn)挖掘[6-8]。
深度循環(huán)神經(jīng)網(wǎng)絡(luò)時序結(jié)構(gòu)如圖1所示。
圖1 RNN時序結(jié)構(gòu)示意圖
圖1中,t、t-1、t+1分別為RNN訓(xùn)練的持續(xù)時間狀態(tài)點(diǎn),Xt∈RN+1為t時刻的輸入向量,ht∈RM+1為隱層向量,Yt∈RL+1為輸出向量。N、M、L分別表示3個向量的維度,權(quán)重矩陣:輸入層→隱層Vxh∈RM×N,隱層→隱層Vhh∈RN×M,隱層→輸入層Vhy∈RL×M。3個向量在不同時刻時連接共享彼此的貨物描述權(quán)值Vh,能夠有效降低RNN參數(shù)量。
通過輸出值Xt神經(jīng)元和t-1時刻的隱層神經(jīng)元決定了當(dāng)前時刻的隱層值ht,即:
ht=f(Xt,ht-1,b)=f(VxhXt+Vhht-1+b)
(7)
通常在沒有初始值的條件下,需要設(shè)置不同的型號、編號來進(jìn)行標(biāo)識物資,相關(guān)函數(shù)為
(8)
h0=f(VxhXt+b)
(9)
其中,f(·)表示激活函數(shù),b表示偏置向量。
選取整流線性單元激活函數(shù),即:
(10)
特征向量利用Softmax函數(shù)轉(zhuǎn)化為類別概率分布,則:
Yt=Vhyht+c
(11)
(12)
通過多層級聯(lián)的形式將所有隱層單元構(gòu)建成DRNN網(wǎng)絡(luò)[9],在網(wǎng)絡(luò)中代入采購需求權(quán)重矩陣Vhihi+1∈RM×M,將采購需求權(quán)重共享進(jìn)行層內(nèi)向?qū)娱g的擴(kuò)展,則DRNN時序結(jié)構(gòu)見圖2。
圖2 DRNN時序結(jié)構(gòu)示意圖
此時
(13)
Yt=Vhihi+1+c
(14)
通過小波分析分解和重構(gòu)預(yù)處理初始序列,獲取存在差異的高、低頻序列,利用新序列重構(gòu)網(wǎng)絡(luò)相空間,將新生成的數(shù)據(jù)用于DRNN的訓(xùn)練數(shù)據(jù),構(gòu)建基于DRNN的物料采購需求智能化挖掘模型。構(gòu)建該模型的具體步驟如下。
第一步:選取企業(yè)的年均歷史采購數(shù)據(jù)進(jìn)行歸一化處理,對其中的最小值和最大值進(jìn)行保存處理。
第二步:隨著年份的增長,每種型號、編號物料的采購價(jià)格基本呈現(xiàn)一個上升的走勢,針對年均采購序列選取適宜的成本預(yù)估函數(shù)進(jìn)行小波分解,根據(jù)分解尺寸進(jìn)行單支重構(gòu),以此獲取重構(gòu)序列的相關(guān)系數(shù),再對系數(shù)重復(fù)進(jìn)行單支重構(gòu)處理,則獲取不同的高、低頻序列,其中,高頻序列保存信息[10],低頻序列描述初始序列變化趨勢。
第三步:設(shè)置重構(gòu)的延遲數(shù)值,重構(gòu)高、低頻序列,生成物料采購需求相關(guān)的訓(xùn)練數(shù)據(jù)。
針對初始物料采購需求序列{x(t)}用于模型挖掘時,先采取相空間重構(gòu)處理,將該序列進(jìn)行矩陣轉(zhuǎn)換,轉(zhuǎn)換為成nin×mre,其中nin表示數(shù)據(jù)緯度,mre表示樣本數(shù)值,該值為m-nin,則矩陣結(jié)構(gòu)為
(15)
(16)
其中,X和Y分別表示輸入和輸出矩陣。
第四步:針對深度循環(huán)神經(jīng)網(wǎng)絡(luò),以價(jià)格最低的物料為約束條件,進(jìn)行相關(guān)學(xué)習(xí)速率、層數(shù)和節(jié)點(diǎn)數(shù)的設(shè)定,利用多組訓(xùn)練數(shù)據(jù)訓(xùn)練DRNN挖掘模型。
第五步:利用訓(xùn)練完成的模型對樣本進(jìn)行挖掘,疊加所有挖掘值,即完成物料采購需求智能化的挖掘。
物料采購需求智能化挖掘模型結(jié)構(gòu)如圖3所示。
圖3 物料采購需求智能化挖掘模型結(jié)構(gòu)示意圖
選取某物資分公司2016年至2020年期間的水泥桿招標(biāo)采購價(jià)格為研究對象,經(jīng)過詳細(xì)分析后發(fā)現(xiàn)非預(yù)應(yīng)力的錐形水泥桿為重點(diǎn)的采購物料,由于采購量較少的水泥桿類型累計(jì)數(shù)據(jù)無法滿足挖掘需求,數(shù)據(jù)樣本較少,同時,為了避免實(shí)驗(yàn)樣本差異較大,影響實(shí)驗(yàn)精度,選取同一批非預(yù)應(yīng)力的錐形水泥桿其中的5種型號進(jìn)行物料需求智能化挖掘相關(guān)實(shí)驗(yàn),分別以1#、2#、3#、4#、5#進(jìn)行標(biāo)識,最大程度上減少實(shí)驗(yàn)樣本差異對實(shí)驗(yàn)精度的影響。從2016年至2020年間共3 800組采購數(shù)據(jù)中劃分出100組數(shù)據(jù)作為測試集,其余則全部為訓(xùn)練集,減少實(shí)驗(yàn)結(jié)果的偶然概率。
由于不同型號的水泥桿采購量有不同程度的差距,采用歸一化處理方式對數(shù)據(jù)進(jìn)行加速處理,處理方法為
(17)
其中,xmin和xmax分別表示初始序列的最小值和最大值。
選取小波6對初始序列進(jìn)行小波分級和單支重構(gòu)的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 高頻序列對比示意圖
由圖4可知,經(jīng)過分解和重構(gòu)后的高頻序列能夠捕捉到初始序列中的擾動,不僅能夠有效降低參數(shù)量,提升收斂效率,還能保留初始序列中存在突發(fā)或隱藏的有價(jià)值信息。
非預(yù)應(yīng)力的錐形水泥桿的需求逐年增大,將數(shù)據(jù)樣本代入DRNN挖掘模型進(jìn)行訓(xùn)練,根據(jù)訓(xùn)練集和樣本集進(jìn)行5類水泥桿采購價(jià)格變化挖掘的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 非預(yù)應(yīng)力的錐形水泥桿價(jià)格變化趨勢示意圖
根據(jù)采用本文方法挖掘的非預(yù)應(yīng)力的錐形水泥桿五年以來的價(jià)格變化結(jié)果,根據(jù)實(shí)際統(tǒng)計(jì)結(jié)果進(jìn)行比較,統(tǒng)計(jì)挖掘精度結(jié)果如表6所示。
由圖6可知,針對5種類型的價(jià)格變化挖掘準(zhǔn)確率均達(dá)90%以上,其中,挖掘精度最高的為2#預(yù)應(yīng)力的錐形水泥桿,其值高達(dá)98.62%,其余的非預(yù)應(yīng)力的錐形水泥桿挖掘精度結(jié)果依次為5#97.15%、3#96.89%、4#94.27%、1#93.94%,以上結(jié)果均在誤差可接受范圍以內(nèi),該結(jié)果表明,該模型已具備良好的挖掘能力,為采購需求智能化挖掘奠定堅(jiān)實(shí)的基礎(chǔ)。
圖6 價(jià)格變化挖掘結(jié)果示意圖
采用本文方法分別與文獻(xiàn)[3]的基于偏差預(yù)測模型的挖掘方法和文獻(xiàn)[4]的基于雙重不確定信息的挖掘方法進(jìn)行物料采購需求智能化挖掘效果對比試驗(yàn)。以訓(xùn)練樣本和測試樣本為基礎(chǔ)進(jìn)行相關(guān)試驗(yàn),試驗(yàn)結(jié)果如圖7所示。
(a) 訓(xùn)練誤差對比結(jié)果
由圖7可知,在進(jìn)行物料采購需求樣本訓(xùn)練和測試過程中,采用本文方法進(jìn)行的訓(xùn)練和測試誤差最小,訓(xùn)練誤差平均值為3.02%、測試誤差平均值為2.61%,訓(xùn)練誤差平均值比文獻(xiàn)[3]方法和文獻(xiàn)[4]方法分別低9.48%和10.35%,測試誤差平均值分別降低7.17%和12.22%,表明本文具備良好的物料采購需求智能化挖掘應(yīng)用價(jià)值。
采用3種方法對5種類型的非預(yù)應(yīng)力的錐形水泥桿進(jìn)行采購價(jià)格智能化挖掘的對比試驗(yàn),試驗(yàn)結(jié)果如表1所示。
表1 水泥桿采購需求智能化挖掘?qū)Ρ冉Y(jié)果
由表1可知,本文方法比2種對比方法具有更好的物料采購需求智能化挖掘能力,5種型號的挖掘誤差均遠(yuǎn)小于文獻(xiàn)[3]方法和文獻(xiàn)[4]方法所得結(jié)果,本文方法絕對誤差平均值為0.58%,相對誤差平均值為3.82%,比2種對比方法的絕對誤差平均值低3.38%和3.65%,相對誤差平均值分別低6.48%和4.78%。
采用基于循環(huán)神經(jīng)網(wǎng)絡(luò)的物料采購需求智能化挖掘方法,利用小波變換對初始需求序列進(jìn)行分解和重構(gòu),然后分別代入到循環(huán)神經(jīng)網(wǎng)絡(luò)DRNN模型中展開數(shù)據(jù)訓(xùn)練,構(gòu)建物料采購需求智能化挖掘模型,該方法具備更好的容錯性能,更強(qiáng)的逼近能力和抗入侵能力,能夠較好地減少挖掘誤差,提升挖掘精度,具有良好的挖掘及泛化能力。