段軍,張雪妮,宋廣宇,辛立偉
(1.內蒙古科技大學 礦業(yè)研究院,內蒙古 包頭 014010;2.內蒙古科技大學 信息工程學院,內蒙古 包頭 014010;3.包頭市聯(lián)方信息自動化有限責任公司,內蒙古 包頭 014010)
目前,煤礦企業(yè)對于備件的管理,總體情況是種類較多,庫存結構不合理,資金大量占用等[1].為保證企業(yè)生產順利進行,精確的備件消耗預測非常關鍵.
關于備件預測的大量研究,主要集中在4個方面:一是回歸分析法.文獻[2]提出一種機器備用零件預測方法.其不足之處是當前期樣本數據較少時,預測誤差較大.二是統(tǒng)計分析法.文獻[3]用指數平滑方法預測裝備維修備件的需求量.統(tǒng)計分析方法基于歷史統(tǒng)計數據,并根據歷史數據的變化趨勢預測未來一段時間的數據.這種方法需要大樣本數據構建預測模型.三是灰色預測法.此種方法適合對數據變化幅度不大的樣本進行預測,否則預測效果較差.四是人工神經網絡.文獻[4]提出一種改進的BP神經網絡預測導彈備件消耗量的方法.但人工神經網絡預測模型由于過分克服學習錯誤而使模型的泛化能力不強,其預測效果并不是很滿意.
針對以上預測方法的不足,構建一種RBF神經網絡與馬爾科夫鏈相結合的預測模型.從預測結果可以看出,該模型預測的備件消耗量準確度更高.
第一層為輸入層.其作用是對數據之間的信息進行傳遞.作為信號源,其自身則不發(fā)生變化.
第二層為隱含層.隱含層的數量根據所要解決問題的模型而確定.隱含層在RBF神經網絡結構中起到關鍵作用,隱含層的數量關系到預測模型的準確度.
第三層為輸出層.其輸出所有輸入參數計算后的結果.輸出層與隱含層所執(zhí)行的任務不同,因此它們的學習方法也不同.其結構圖如圖1所示.
從神經網絡結構圖中可以看出,模型在訓練過程中主要分為2個步驟:第一步是指在機器學習時,不需要人為的干預,自己可以監(jiān)督自己來進行學習;第二步是指在系統(tǒng)完成建模之后,將會得到1個標準作為衡量,稱之為有監(jiān)督學習[5].各個參數的表達及計算方法如下:
(1)確定參數:
①確定輸入向量X,X=[x1,x2,…,xn]T,n為輸入層單元數.
②確定輸出向量Y,Y=[y1,y2,…,ym]T,m是輸出層單元數.
③確定連接權值,W=[w1,w2,…,wm]T,m是輸出層單元數.
(2)計算隱含層輸出值:
(1)
式中:kj是指在隱含層中第j個神經元距離中心的值,Dj為在隱含層中第j個神經元的寬度向量.‖x-kj‖2稱為歐式距離.
(3)計算輸出層神經元的輸出:
Y=[y1,y2,…,ym]T,
(2)
y(m)=wTZ=w1Z1+w2Z2+…+wmZj.
(3)
RBF網絡可以很好地處理所有非線性函數,解決一些使系統(tǒng)崩潰的問題,并且具有結構簡單,訓練速度快的優(yōu)勢.所以,通常數據具有非線性特點時,都會選擇用RBF網絡來進行仿真.RBF神經網絡具有獨特的優(yōu)勢,使得它已經應用到了生活的許多方面.
馬爾科夫鏈是一個數列,即X1,X2,X3,…,Xn,這些序列都是隨機產生的,在這個數列中可能取到的集合,稱之為“一個狀態(tài)的空間”.n所對應的條件概率狀態(tài)是Xn+1的函數,則
P(Xn+1|Xn,Xn-1,…,X1,X0)=P(Xn+1|Xn) .
(4)
式中,X1,X2,X3,…,Xn即為馬爾科夫鏈.
馬爾科夫鏈是指從1個狀態(tài)轉移到另1個狀態(tài)的過程.這個過程在模型中是隨機產生的,具有無記憶性.通常情況下,在已知現(xiàn)在狀態(tài)的情況下,并不會知道未來的狀態(tài)和過去的狀態(tài),這3者是相互獨立的[6].在馬爾科夫鏈的每個步驟中,系統(tǒng)都會根據條件概率維持現(xiàn)有狀態(tài)或切換到其它狀態(tài).則:
P(Xn|Xn-1,…,X1,X0)=P(Xn|Xn-1) , (5)
比較直觀的定義是:令:
A=Xn-1指過去,
B=X1指現(xiàn)在,
C=X0指未來,
則馬爾科夫的性質為:
P(C|AB)=P(C|B) .
(6)
由上可知,馬爾科夫鏈是對時間和區(qū)間序列均適用的典型隨機過程.其僅與當前狀態(tài)有關,與所有過去狀態(tài)無關[7].通過現(xiàn)已知所有信息可以預測未來.
神經網絡在預測時,對樣本數據的要求較大,樣本數據決定了預測效果.但通常在預測的時候,并不能取得大量的樣本數據,因此,在預測備件消耗時,為了提高備件消耗量預測的準確度,提出了使用馬爾科夫鏈模型對其進行修改的方案,以使預測結果更接近于實際消耗量.馬爾科夫鏈預測的目的是使動態(tài)系統(tǒng)隨機變化.這樣可以縮短預測間隔,并對于長期預測和易失隨機數據序列的預測具有更好的效果.因此,建立馬爾科夫鏈預測模型,并對RBF神經網絡預測的備件消耗量進行修改,最后形成其與RBF神經網絡的固定組合.它不僅可以揭示數據序列的發(fā)展和變化,而且可以提高預測模型的準確度,使預測結果更加精準.由馬爾科夫鏈修改的RBF神經網絡預測模型過程如圖2所示.
馬爾科夫鏈作為一種預測方法,可以通過構造初始狀態(tài)概率分布矩陣和狀態(tài)轉移概率矩陣[8],預測出事情發(fā)生概率所處的狀態(tài).然后根據特定的系統(tǒng)模型校準結果,對系統(tǒng)進行預測,通過系統(tǒng)狀態(tài)的變化來達到預測未來的目的.
具體的方法如下所示:
(1)馬爾科夫鏈狀態(tài)劃分方法.
在用馬爾科夫鏈建立預測模型之前,狀態(tài)的劃分對系統(tǒng)建模非常重要,會影響后期轉移概率矩陣的構造.利用RBF神經網絡預測出的備件消耗量和實際備件消耗量之間的相對誤差,求得相對誤差的均值,從而可以對相對誤差的狀態(tài)進行劃分,并將分成S個狀態(tài).
(2)構造狀態(tài)轉移概率矩陣
(7)
構成轉移概率矩陣時,通常情況下只考慮經過一步時的矩陣,即:
(8)
(3)計算修正后的預測值:
G(x)=m+g(x) ,
(9)
式中:m為預測的相對誤差所處狀態(tài)的平均值;g(x)為RBF神經網絡預測的備件消耗量值.
該預測方法應用于神華某煤炭公司的高頻消耗備件.該公司的備件管理數據庫中有2009年7月至2019年12月的數據.鑒于時間較長的數據參考價值不大,取2015年到2019年的備件出庫量進行統(tǒng)計.經過統(tǒng)計可以發(fā)現(xiàn),備件的出庫量大部分是以3個月為1個周期進行統(tǒng)計,前期對備件消耗較大的高頻備件展開預測,此處取其中1種備件進行預測.表1是某備件2015年到2019年的出庫量統(tǒng)計.
表1 某備件出庫量統(tǒng)計表
結合RBF神經網絡預測模型,通過Matlab編程,將樣本數據分為訓練數據和測試數據,進而確定神經網絡層和節(jié)點數目的大致范圍.利用2015年3月到2018年12月的數據進行訓練和測試.運用滾動預測的方法將2015年3月到2016年3月n條數據作為網絡的輸入,2016年6月k條數據為網絡的輸出;以此類推組成訓練樣本.其中n=5,k=1.
在訓練RBF神經網絡預測模型時,首先,對備件出庫量的樣本數據進行歸一化處理.然后對歸一化后的數據進行訓練,即可得到預測備件消耗量值,同時經過計算可以得出相對誤差值.將RBF神經網絡訓練得到的樣本備件消耗量的相對誤差分為4個狀態(tài)S1=(-5.2,-2.52],S2=(-2.52,0.16],S3=(0.16,2.84],S4=(2.84,5.52].具體劃分狀態(tài)見表2.
表2 RBF神經網絡預測值表
由表2可知,RBF神經網絡預測的備件消耗量有較大誤差,因此,為了使預測值更加準確,引入馬爾科夫鏈來修正預測值.
根據表2可以得到,在某一時刻該序列所處狀態(tài)集的具體劃分,然后,根據式(7)和(8)計算得到轉移概率矩陣.通常情況下,計算時只需考慮一步狀態(tài)的轉換矩陣,轉換矩陣如下:
由式(9)可以得出修正后的預測結果,并應用此方法可以預測2019年3月到2019年12月的備件消耗量.其結果如表3所示,包括測試集數據以及預測驗證集數據.備件消耗量預測結果的對比圖如圖3所示.
從修正結果可以看出馬爾科夫鏈修正的RBF神經網絡模型提高了備件消耗量預測的準確度,使修正值更加接近于實測值.
表3 對比RBF神經網絡和馬爾科夫鏈修正值結果表
結合煤炭企業(yè)高頻消耗性備件的需求預測問題,首先用RBF神經網絡預測神華某煤炭公司的備件消耗量,預測顯示RBF神經網絡的預測值誤差較大.為了提高預測的準確度,然后對RBF神經網絡的預測值進行優(yōu)化,選擇用馬爾科夫鏈修正誤差殘值的方法,構建了一種RBF神經網絡與馬爾科夫鏈相結合的預測模型.從對比上述示例的預測結果可以看出,與傳統(tǒng)的RBF神經網絡預測方法相比,基于改進的RBF神經網絡預測模型的預測值更加接近于實際的備件消耗量值.同時將該模型引入神華某煤炭公司高頻消耗備件預測中,并將該方法應用到該公司的備件管理系統(tǒng)中.結果表明,該預測模型預測準確度高,而且在系統(tǒng)預測時,速度較快,對神華某煤炭公司來說,具有一定的應用價值.