丁紅衛(wèi),王文果,萬 良,羅 劍
(1.貴州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,貴州 貴陽 550025;2.貴州電網(wǎng)有限責(zé)任公司物流服務(wù)中心,貴州 貴陽 550025)
隨著南方電網(wǎng)公司信息化、智能化管理水平的不斷提高,給各省電網(wǎng)公司的物資管理提出了更高的要求。通過調(diào)研后發(fā)現(xiàn),各級的電網(wǎng)部門普遍存在物資需求上報準確率、物資浪費嚴重等問題,因此,如何使各級電力部門合理上報物資需求計劃是省級電網(wǎng)公司亟待解決的問題。目前,各級電力部門上報物資需求計劃時并沒有統(tǒng)一的標準,主要根據(jù)項目初期計劃或者需求計劃編制人員的項目經(jīng)驗來完成需求的上報。但是,由于需求編制人員的經(jīng)驗參差不齊、項目初期的計劃內(nèi)容不完整甚至存在錯誤等原因,導(dǎo)致需求計劃制定時存在錯報、漏報等情況。如何能夠提高物資需求計劃的準確率,減少物資浪費,是各省級電網(wǎng)公司急需解決的問題。因此,研究電網(wǎng)物資需求的供應(yīng)模式、預(yù)測電網(wǎng)物資的供應(yīng)需求對于省級電網(wǎng)公司統(tǒng)籌安排采購計劃具有重要意義。
國外智能化物資管理起步較早,許多學(xué)者使用了不同方法對物資需求預(yù)測問題進行了研究。Heinecke G提出了間斷需求的Croston模型,用于物資倉儲和物資規(guī)劃問題[1]。Elragal H提出一種基于模糊遺傳算法的神經(jīng)網(wǎng)絡(luò)模型,使用該模型對間歇性物資供應(yīng)問題進行了研究,并使用了真實數(shù)據(jù)對模型效果進行了驗證,證明模型效果良好[2]。Behera R等基于遺傳算法構(gòu)建了一種電力系統(tǒng)物資需求預(yù)測模型,對未來較長一段時間的物資需求情況進行預(yù)測,并且與其他幾種方法進行了對比,證明該模型預(yù)測效果較好[3]。
國內(nèi)對物資需求預(yù)測問題的研究雖然起步較晚,但是近年來國內(nèi)學(xué)者也對其做了大量研究。楊超等提出了一種預(yù)分類方法的備件需求預(yù)測模型,首先對備件進行預(yù)分類,基于分類的結(jié)果構(gòu)建多元線性回歸方程,以預(yù)測最優(yōu)的備件采購量[4]。張冬等基于BP神經(jīng)網(wǎng)絡(luò)設(shè)計了一種備件需求的預(yù)測模型,根據(jù)備件歷史數(shù)據(jù)的時間序列對未來需求量進行預(yù)測[5]。董蒙等通過研究后發(fā)現(xiàn),根據(jù)經(jīng)驗的預(yù)測準確度較低,因此設(shè)計了基于主成分分析-BP神經(jīng)網(wǎng)絡(luò)的模型預(yù)測備件需求情況[6]。趙一鵬等提出了一種BP神經(jīng)網(wǎng)絡(luò)誤差修正的電力物資時間序列預(yù)測方法,該方法在ARIMA對電力物資需求預(yù)測的基礎(chǔ)上,融合BP網(wǎng)絡(luò)進行誤差修正,以全面提取物資序列中的復(fù)合特征,有效提高了電力物資預(yù)測精度[7]。牛慶松等以物資需求特性為基礎(chǔ),建立了NPCA-SOFM的電力物資分類模型,實驗結(jié)果表明該算法可為電力物資運營決策提供有效的參考依據(jù)[8]。宋斌等提出了一種基于人工魚群算法的電網(wǎng)物資需求預(yù)測,通過支持向量機和人工魚群的混合算法構(gòu)建了物資需求預(yù)測模型,有效解決了電網(wǎng)項目物資需求預(yù)測的問題[9]。Yang等對電力企業(yè)的物資消耗情況進行了分析,認為電力物資需求數(shù)據(jù)存在不均衡和訓(xùn)練樣本數(shù)量少的問題,因此提出了結(jié)合改進的AdaBoost和SVM的方法來解決該問題,在實際應(yīng)用中取得了較好的效果[10]。Pan等針對電力系統(tǒng)在突發(fā)情況下物資的需求問題進行了研究,并提出了一種RVM模型,該模型可以利用少量的歷史數(shù)據(jù)進行訓(xùn)練,并且對突發(fā)情況下電力物資的需求預(yù)測較為準確,為電力系統(tǒng)搶修提供了可靠依據(jù),具有很強的實用意義[11]。
通過上述國內(nèi)外學(xué)者的研究成果可以看出,電網(wǎng)系統(tǒng)的物資需求預(yù)測工作已經(jīng)取得了豐碩的成果,但是物資預(yù)測主要集中在備件需求和間歇性物資需求兩方面,對于整體項目物資需求預(yù)測問題的研究較少。研究整體項目物資需求預(yù)測可以在項目規(guī)劃階段對物資的需求情況進行預(yù)測,從而指導(dǎo)物資申報,減少物資浪費。因此,研究并建立電網(wǎng)物資需求的預(yù)測模型十分必要。
電網(wǎng)物資是指在電網(wǎng)建設(shè)過程中所需要的直接物資、間接物資及各種輔助物資的總和。根據(jù)國家電網(wǎng)公司制定的物資分類標準,電網(wǎng)物資總共分為20個大類,253個中類和2 921個小類。電網(wǎng)物資種類繁多,根據(jù)項目種類的不同,對物資的需求也各不相同。文中通過研究國家電網(wǎng)的物資分類標準,按照物資的用途大致將物資的需求歸納為兩類:項目類物資和非項目類物資,其中項目類物資又可劃分為:基建項目物資、大修項目物資和技改項目物資;非項目類物資可以劃分為:運輸物資、應(yīng)急物資和低值易耗品物資。
基建項目是指國家電網(wǎng)公司根據(jù)用電需求、用電規(guī)劃以及用電安全而展開的一系列基礎(chǔ)建設(shè)項目。基建項目工程包括:變電站、開關(guān)站、輸配電線路工程以及配網(wǎng)工程項目等部分,基建項目工程具有施工周期長、投資大、項目獨立性高、易受地勢環(huán)境因素影響的特點。項目施工部門通常需要在項目的規(guī)劃設(shè)計階段對物資的需求進行預(yù)測和申報,通過實地調(diào)研國家電網(wǎng)公司項目物資管理現(xiàn)狀后發(fā)現(xiàn),基建類項目是電網(wǎng)項目中物資需求量最大的項目,也是物資申報過程中誤差最大的部分,因為物資申報誤差造成的資源浪費問題十分嚴重。研究基建項目物資需求問題具有十分重要的現(xiàn)實意義,準確的預(yù)測結(jié)果可以指導(dǎo)施工部門合理上報物資需求,從而減少資源浪費,節(jié)約項目成本。因此,文中就基建項目的物資需求問題展開研究。
基建類項目的項目類別主要依據(jù)電力系統(tǒng)的電壓等級來分類,國內(nèi)電力系統(tǒng)電壓等級主要包括交流1 100 kV、750 kV、500 kV、330 kV、220 kV、110 kV、63 kV、35 kV、10 kV以及直流±1 100 kV、±800 kV、±660 kV、±500 kV等。根據(jù)用電需求的不同,往往需要建立不同電壓等級的電網(wǎng)系統(tǒng),如:農(nóng)村、城市等的工業(yè)、生活區(qū)域需要建設(shè)63 kV、35 kV、10 kV的配電網(wǎng)絡(luò),發(fā)電站之間需要建設(shè)220 kV、110 kV的配電網(wǎng)絡(luò),跨省、跨國家的大型輸電系統(tǒng)需要建設(shè)交流1 100 kV、750 kV、500 kV、330 kV、直流±1 100 kV、±800 kV、±660 kV的配電網(wǎng)絡(luò)。
由于用電需求不同,各個級別基建項目的物資需求也不盡相同,使用一種模型對所有項目的物資需求展開預(yù)測顯然不合理,因此需要尋找合適的項目展開預(yù)測研究。通過統(tǒng)計國家電網(wǎng)公司ERP系統(tǒng)中項目建設(shè)情況后發(fā)現(xiàn),110 kV基建項目是電網(wǎng)公司的主要建設(shè)項目,累積了較多的歷史數(shù)據(jù)。且110 kV基建項目主要集中在省內(nèi),省內(nèi)的地理環(huán)境因素差異較小,物資需求的相似程度較高,可以通過挖掘不同項目中物資的數(shù)量關(guān)系尋找物資需求規(guī)律,因此,研究110 kV基建項目物資需求預(yù)測問題具有較高的可行性。
BP神經(jīng)網(wǎng)絡(luò)是通過模擬人腦的神經(jīng)系統(tǒng)結(jié)構(gòu)提出的一種智能化算法,是目前最成熟的算法之一[12]。BP神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),BP算法分為向前傳播和向后傳播兩個過程。在向前傳播過程中,輸入信息從輸入層經(jīng)過逐層的計算,傳向輸出層,得到實際輸出值,如果實際輸出值與期望值之間的誤差沒有滿足期望的要求,就轉(zhuǎn)入反向傳播過程。反向傳播過程,就是從輸出層通過誤差逐層修改網(wǎng)絡(luò)權(quán)值和閾值向輸入層傳播的過程,然后再通過更新的權(quán)值和閾值進行正向傳播。通過循環(huán)的正向和反向傳播訓(xùn)練得到最優(yōu)的權(quán)值和閾值就是神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程。圖1所示是一個典型的三層BP神經(jīng)網(wǎng)絡(luò)。
圖1 三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖1是一個三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其中x1,…,xi,…,xn為輸入層的輸入,w1j,…,wij,…,wnj為輸入層節(jié)點與隱藏層的第j個節(jié)點之間的網(wǎng)絡(luò)權(quán)重。BP神經(jīng)網(wǎng)絡(luò)算法步驟如下:
(1)初始化權(quán)重和閾值:隨機初始化-1到1之間,每個單元有一個閾值。
(2)由輸入層向前傳播。
隱含層輸入計算公式為:
(1)
其中,θj為隱藏層第j個神經(jīng)元的閾值。
隱藏層的實際輸出計算公式為:
(2)
其中,f為激勵函數(shù)。
同樣的方法可以得到輸出層的輸出值。
(3)根據(jù)誤差反向傳播。
輸出層的實際值和預(yù)測值之間的誤差公式為:
Errk=Ok(1-Ok)(Tk-Ok)
(3)
其中,Ok為預(yù)測值;Tk為真實值。
隱藏層的誤差可以通過式4進行計算。
(4)
其中,Oj為隱藏層的輸出值;Errk為輸出層的誤差;Wjk為隱藏層神經(jīng)元與輸出層神經(jīng)元之間的權(quán)重。
權(quán)重和閾值通過式5和6進行更新。
Wij=Wij+ΔWij=Wij+(L)ErrjOj
(5)
θj=θj+Δθj=θj+(L)Errj
(6)
其中,L為學(xué)習(xí)率,0 (4)重復(fù)步驟2和步驟3。 (5)達到期望的誤差或最大迭代次數(shù),則算法結(jié)束。 3.2.1 優(yōu)化算法選擇 在傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)中,為了求解代價函數(shù),需要使用優(yōu)化算法,如梯度下降法、共軛梯度法、LBGFS等。目前最常用的優(yōu)化算法是梯度下降算法,該算法的核心是最小化目標函數(shù),在每次迭代中,對每個變量按照目標函數(shù)在該變量梯度的相反方向更新對應(yīng)的參數(shù)值。雖然梯度學(xué)習(xí)算法在深度學(xué)習(xí)中取得了很不錯的成績,但也存在諸多待解決的問題: (1)選擇恰當(dāng)?shù)某跏紝W(xué)習(xí)率很困難。 (2)學(xué)習(xí)率的調(diào)整策略受限于預(yù)先指定的調(diào)整規(guī)則。 (3)相同的學(xué)習(xí)率被應(yīng)用于各個參數(shù)。 (4)高度非凸的誤差函數(shù)的優(yōu)化過程,如何避免陷入大量的局部次優(yōu)解或鞍點。 針對簡單的梯度下降算法存在的問題,John Duchi等發(fā)布了AdaGrad[13]優(yōu)化算法(adaptive gradient,自適應(yīng)梯度),能夠?qū)Σ煌膮?shù)調(diào)整不同的學(xué)習(xí)率,對于頻繁變化的參數(shù)以更小的步長進行更新,而稀疏的參數(shù)以更大的步長進行更新。Geoffrey Hinton教授提出了RMSProp算法,結(jié)合梯度平方的指數(shù)移動平均數(shù)來調(diào)節(jié)學(xué)習(xí)率的變化。能夠在不穩(wěn)定(non-stationary)的目標函數(shù)情況下進行很好的收斂。 Adam[14]優(yōu)化器是Kingma和Lei Ba兩位學(xué)者提出的優(yōu)化算法,結(jié)合了AdaGrad和RMSProp兩種優(yōu)化算法的優(yōu)點。Adam算法對梯度的一階矩估計(first moment estimation,即梯度的均值)和二階矩估計(second moment estimation,即梯度的未中心化的方差)進行綜合考慮,計算出更新步長。Adam優(yōu)化器主要包含以下幾個顯著的優(yōu)點: (1)實現(xiàn)簡單,計算高效,對內(nèi)存需求少。 (2)參數(shù)的更新不受梯度的伸縮變換影響。 (3)能夠自然地實現(xiàn)步長退火過程(自動調(diào)整學(xué)習(xí)率)。 (4)適用于解決包含很高噪聲或稀疏梯度的問題。 綜合來說,Adam在很多情況下都是比較優(yōu)秀的優(yōu)化器。因此,文中也將使用Adam作為實驗優(yōu)化器來代替?zhèn)鹘y(tǒng)的隨機梯度下降算法。 3.2.2 防止過度擬合 BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程主要是通過對歷史的物資需求數(shù)據(jù)進行訓(xùn)練,然后將訓(xùn)練完成的模型用于對未來物資數(shù)據(jù)的預(yù)測。但是,當(dāng)訓(xùn)練數(shù)據(jù)不足或過度訓(xùn)練時會導(dǎo)致過度擬合現(xiàn)象的發(fā)生。由于電網(wǎng)物資歷史數(shù)據(jù)較難獲取,因此很難得到充足的訓(xùn)練樣本,所以為了防止因樣本過少而導(dǎo)致的過擬合現(xiàn)象,文中采用L2正則化方法防止BP神經(jīng)網(wǎng)絡(luò)的過擬合。L2正則化是在代價函數(shù)后加上一個正則化項,公式為: (7) 其中,C0為原始的代價函數(shù);λ為正則項系數(shù),用來權(quán)衡正則項與原始的代價函數(shù)的比重;n為訓(xùn)練樣本集的大小。 文中基于改進的BP算法建立了電網(wǎng)物資預(yù)測模型,其預(yù)測過程如圖2所示。 圖2 物資分類預(yù)測過程 Setp1:數(shù)據(jù)預(yù)處理。 原始數(shù)據(jù)并不能直接用于模型的輸入,首先要通過屬性映射將字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型,然后進行歸一化處理,最后得到標準化數(shù)據(jù)。 Step2:數(shù)據(jù)分離。 將數(shù)據(jù)預(yù)處理之后的數(shù)據(jù)進行數(shù)據(jù)分離。將預(yù)處理之后的標準數(shù)據(jù)集分成訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。 Step3:模型訓(xùn)練。 (1)使用訓(xùn)練數(shù)據(jù)進行BP神經(jīng)網(wǎng)訓(xùn)練。 (2)觀察BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,待BP神經(jīng)訓(xùn)練完成,根據(jù)訓(xùn)練結(jié)果調(diào)整BP神經(jīng)網(wǎng)絡(luò)的參數(shù),直到模型達到最優(yōu)。 (3)得到一個最優(yōu)BP神經(jīng)網(wǎng)絡(luò)模型。 Step4:需求預(yù)測。 將需要測試的數(shù)據(jù)輸入訓(xùn)練完成的BP神經(jīng)網(wǎng)絡(luò)模型,從而可得出每條數(shù)據(jù)的預(yù)測結(jié)果。 文中采集了國家電網(wǎng)公司某分公司ERP系統(tǒng)的物資使用記錄,篩選了其中110 kV基建項目的物資使用清單作為研究對象。通過統(tǒng)計分析后發(fā)現(xiàn),110 kV基建項目共涉及了68種物資,但是由于受到地形、地勢和項目施工需求等因素的影響,并非所有項目都用到了這68種物資,某些物資使用頻率較低,累積的數(shù)據(jù)量較少,無法對其進行有效的預(yù)測。因此,選取了其中使用頻率較高的10種物資,物資種類如表1所示。 表1 110 kV基建項目物資種類 由于不同物資使用量的量綱有差別,需要先對數(shù)據(jù)進行歸一化處理,方法為: (8) 由于神經(jīng)網(wǎng)絡(luò)受到激活函數(shù)的限制,無法處理數(shù)值較大的數(shù)據(jù),通過歸一化方法使數(shù)據(jù)都分布在(0,1)之間,方便神經(jīng)網(wǎng)絡(luò)運算,且歸一化后的數(shù)據(jù)具有相同的量綱,消除了不同量綱對運算結(jié)果造成的影響。 項目物資的用量會受到地形的影響,在電網(wǎng)項目中,地形大致分為5種,分別為:平地、泥沼、丘陵、山地和高山,文中對這五種地形進行了賦值,作為模型的輸入變量。 除了地形因素,物資的使用情況還會受到其他因素的影響,如線路長度、線路回數(shù)等,文中將這些變量作為模型輸入,模型輸出為各種物資的使用量。 文中使用改進的BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計電網(wǎng)物資預(yù)測模型,使用110 kV基建項目的歷史數(shù)據(jù)作為數(shù)據(jù)集,從數(shù)據(jù)集中劃分出20條項目數(shù)據(jù)作為測試集,其余為訓(xùn)練集,模型的預(yù)測誤差結(jié)果對比如圖3和圖4所示,結(jié)果統(tǒng)計見表2。 圖3 訓(xùn)練誤差對比 圖4 測試誤差對比 表2 預(yù)測結(jié)果統(tǒng)計 物資類別原始BP神經(jīng)網(wǎng)絡(luò)改進BP模型平均訓(xùn)練誤差/%平均測試誤差/%平均訓(xùn)練誤差/%平均測試誤差/%鋼芯鋁絞線7.28.16.76.3鐵塔5.87.54.34.7接續(xù)金具-鋼芯鋼鋁絞線接續(xù)管8.46.15.45.8交流避雷器5.27.75.66.5聯(lián)結(jié)金具-聯(lián)板11.414.28.710.5聯(lián)結(jié)金具-直角掛板13.611.811.410.6聯(lián)結(jié)金具-U型掛環(huán)17.215.915.314.2聯(lián)結(jié)金具-碗頭掛板10.18.98.97.3聯(lián)結(jié)金具-球頭掛環(huán)19.516.716.414.9鋼管桿(樁)18.617.817.317.5 從表2的預(yù)測結(jié)果可以看出,鋼芯鋁絞線、鐵塔、接續(xù)金具-鋼芯鋼鋁絞線接續(xù)管和交流避雷器的預(yù)測精度較高,誤差在10%以內(nèi),其余物資的預(yù)測精度雖然較低一些,但是比起傳統(tǒng)的根據(jù)經(jīng)驗的預(yù)測方法,預(yù)測精度還是有較大的提升,對項目物資申報具有一定的指導(dǎo)意義。從算法角度來看,改進BP神經(jīng)網(wǎng)絡(luò)模型的精度整體要高于原始BP神經(jīng)網(wǎng)絡(luò)的精度,說明改進算法有效。 提出了使用改進的BP神經(jīng)網(wǎng)絡(luò)作為電網(wǎng)物資需求預(yù)測的算法模型。原始的BP神經(jīng)網(wǎng)絡(luò)模型易于陷入局部最優(yōu)解且易發(fā)生過度擬合,從而使模型的訓(xùn)練效果不佳,最終導(dǎo)致電網(wǎng)物資需求預(yù)測的誤差較大?;诖?,文中使用Adam優(yōu)化算法代替?zhèn)鹘y(tǒng)的隨機梯度下降算法,有效克服了模型容易陷入局部最優(yōu)的缺點,并加入L2正則化方法來防止BP神經(jīng)網(wǎng)絡(luò)的過度擬合。將改進后的BP神經(jīng)網(wǎng)絡(luò)模型用于電網(wǎng)物資預(yù)測,通過實驗證明,該模型相比較原始的BP神經(jīng)網(wǎng)絡(luò)在預(yù)測的誤差方面有了更好的提升效果。3.2 BP神經(jīng)網(wǎng)絡(luò)優(yōu)化
3.3 電網(wǎng)物資預(yù)測模型
4 實 驗
4.1 數(shù)據(jù)集
4.2 預(yù)測結(jié)果分析
5 結(jié)束語