江龍艷
(湖南萬(wàn)源評(píng)估咨詢(xún)有限公司,長(zhǎng)沙410007)
我國(guó)是一個(gè)鋅礦資源十分豐富的國(guó)家,也是世界上鋅生產(chǎn)和消費(fèi)的大國(guó)[1]。隨著我國(guó)現(xiàn)代化進(jìn)程的加快,鋅的應(yīng)用范圍和需求量也不斷擴(kuò)大和增加。鋅的價(jià)格變化直接影響了人民生產(chǎn)和生活的各個(gè)領(lǐng)域。因此,分析鋅市場(chǎng)價(jià)格變化情況,預(yù)測(cè)鋅產(chǎn)品價(jià)格變化趨勢(shì),對(duì)減小鋅價(jià)格變化對(duì)鋅行業(yè)的負(fù)面影響,保障國(guó)民經(jīng)濟(jì)快速發(fā)展有重要意義。
目前,國(guó)內(nèi)專(zhuān)門(mén)針對(duì)鋅價(jià)格預(yù)測(cè)的研究還很少。但針對(duì)礦產(chǎn)品、現(xiàn)貨價(jià)格預(yù)測(cè),國(guó)內(nèi)研究人員做了大量研究。孫繼湖、王立杰等[2-3]建立ARIMA時(shí)間序列模型,將隨機(jī)論、概率論、線(xiàn)性差分方程應(yīng)用到煤炭市場(chǎng)價(jià)格預(yù)測(cè),對(duì)煤炭?jī)r(jià)格的未來(lái)走勢(shì)進(jìn)行分析和判斷。魏毅等[4]提出采用灰色預(yù)測(cè)模型對(duì)煤炭?jī)r(jià)格指數(shù)在中、短期的變化進(jìn)行預(yù)測(cè)。郭熊娃等[5]利用WTI原油現(xiàn)貨價(jià)格月度數(shù)據(jù) ,將分?jǐn)?shù)階差分與非參數(shù)自回歸模型相結(jié)合,建立了WTI原油現(xiàn)貨價(jià)格序列的基于分?jǐn)?shù)階差分的非參數(shù)自回歸預(yù)測(cè)模型。這些模型方法都可以引用到鋅價(jià)格變化趨勢(shì)預(yù)測(cè)中,但是時(shí)間序列建模時(shí),隨機(jī)擾動(dòng)項(xiàng)的非高斯性質(zhì)造成傳統(tǒng)的時(shí)序模型的估計(jì)和預(yù)測(cè)偏誤[6];利用灰色系統(tǒng)和回歸模型對(duì)鋅價(jià)格進(jìn)行預(yù)測(cè)時(shí),都存在預(yù)測(cè)精度不高、誤差較大的情況。
隨著人工智能技術(shù)的發(fā)展,研究者開(kāi)始將BP神經(jīng)網(wǎng)絡(luò)的方法運(yùn)用于價(jià)格預(yù)測(cè)中,曾濂、顧孟鈞等[7-10]提出一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)建立黃金期貨價(jià)格仿真預(yù)測(cè)模型;張坤、丁睿等[11-12]利用改進(jìn)的神經(jīng)網(wǎng)絡(luò),預(yù)測(cè)了國(guó)際鈾資源的價(jià)格變化。這些方法對(duì)鋅價(jià)格預(yù)測(cè)的研究有著很好的啟發(fā)作用。但是利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行鋅價(jià)格預(yù)測(cè)時(shí),存在無(wú)法確保是否收斂到了全局最小點(diǎn)及收斂速度慢等問(wèn)題。因此本文以2008年11月至2011年10月我國(guó)南方鋅精礦價(jià)格統(tǒng)計(jì)數(shù)據(jù)為基礎(chǔ),引入改進(jìn)的量子粒子群算法(QPSO)對(duì)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法進(jìn)行優(yōu)化,提高了預(yù)測(cè)結(jié)果的精確度和預(yù)測(cè)過(guò)程的穩(wěn)定性,為鋅資源的開(kāi)發(fā)利用和回收投資提供了科學(xué)的參考依據(jù)。
量子粒子群優(yōu)化(Quantum-behaved Particle Swarm Optimization)算法[13]是一種基于群智能全局優(yōu)化的技術(shù),在量子空間中,粒子聚集性是通過(guò)其運(yùn)動(dòng)中心的吸引勢(shì)產(chǎn)生的束縛態(tài)進(jìn)行描述的,束縛態(tài)下的粒子以一定的概率密度在空間任何點(diǎn)出現(xiàn),滿(mǎn)足聚集態(tài)的粒子能在整個(gè)可行解的空間進(jìn)行搜索,且不會(huì)發(fā)散至無(wú)窮遠(yuǎn)處,從而找到最優(yōu)解。
基于δ勢(shì)阱的量子粒子群算法(QPSO)首先用波函數(shù)Ψ(X,t)來(lái)描述粒子的狀態(tài),其中,X為粒子i的三維空間位置向量,波函數(shù)的模的平方等于粒子在空間中某一點(diǎn)出現(xiàn)的概率密度。然后采用逆變換法(蒙特卡羅法)得到粒子的位置方程:
式中,t—離散時(shí)間;L—δ勢(shì)阱的特征長(zhǎng)度;收斂點(diǎn)p在實(shí)際的算法運(yùn)行中為隨機(jī)變量;u(t)在(0,1)上的均勻分布。
將上述結(jié)果擴(kuò)展到N維的搜索空間,對(duì)于粒子i(粒子位置坐標(biāo)xi,j,j=1,2,…,N),第j維的坐標(biāo)的基本進(jìn)化方程為:
文獻(xiàn)[15]證明了N維空間中,單個(gè)粒子的位置收斂性可歸結(jié)為一維空間粒子的收斂性。引入平均最好位置(mean best position)C(t),
則粒子的進(jìn)化公式為:
其中,Li,j(t)=2a|Cj(t)-Xi,j(t)|。α為擴(kuò)張—收縮因子,它是QPSO算法除了種群規(guī)模和迭代次數(shù)外,唯一的參數(shù)。
傳統(tǒng)QPSO將參數(shù)α隨時(shí)間變化,從1線(xiàn)性減小到0.5。隨著時(shí)間t的增加,粒子經(jīng)歷個(gè)體的最優(yōu)位置pbest逐漸接近群體最佳位置gbest,平均最好位置mbest與每個(gè)粒子位置的差距也將逐漸變小,導(dǎo)致粒子實(shí)際搜索范圍減小,粒子群進(jìn)化趨于停滯。本文采用文獻(xiàn)[14]提出的方法,將α從0.6增加到0.9,延緩整個(gè)粒子群存在的早熟趨勢(shì)。
其中,maxiter為最大迭代次數(shù)。
在算法的搜索后期,即使α增加至0.9,仍有粒子所經(jīng)歷的pbest與gbest十分接近,導(dǎo)致δ勢(shì)阱的特征長(zhǎng)度L很小。因此,針對(duì)每個(gè)粒子,本文采用文獻(xiàn)[15]中的第二種方法,對(duì)參數(shù)L進(jìn)行改進(jìn)。
BP神經(jīng)網(wǎng)絡(luò)是一種基于誤差的反向傳遞(back propagation)算法。結(jié)構(gòu)如圖1所示。
在訓(xùn)練BP網(wǎng)絡(luò)時(shí),給定樣本輸入向量I,實(shí)際輸出向量D可以表示為:式中,W—鏈接權(quán)值的矩陣;V—閾值向量;f—S型函數(shù)或者線(xiàn)性函數(shù)。
給定目標(biāo)輸出向量T,將誤差函數(shù)作為適應(yīng)度函數(shù)fitness,可表示為:
式中,P—樣本總數(shù);N—輸出節(jié)點(diǎn)數(shù),di,j、ti,j分別是第i個(gè)樣本的第j個(gè)輸出節(jié)點(diǎn)的實(shí)際輸出和目標(biāo)輸出。
神經(jīng)網(wǎng)絡(luò)外推能力用泛化能力來(lái)進(jìn)行評(píng)價(jià)。泛化能力是指衡量預(yù)測(cè)值與實(shí)測(cè)值之間差別的變量,用平均相對(duì)變動(dòng)值 (Average Relative Variance,ARV)表示[16],ARV值越小,網(wǎng)絡(luò)泛化能力越強(qiáng)。
式中,N—檢驗(yàn)樣本數(shù);x—實(shí)際值;x~—實(shí)際值;x-—平均值。
圖1 BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)Fig.1 Topology of BPneural network
BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的過(guò)程主要是權(quán)值和閾值更新過(guò)程,將網(wǎng)絡(luò)權(quán)值與閾值編碼成粒子群位置向量,則每一個(gè)粒子代表了網(wǎng)絡(luò)的一組權(quán)值與閾值,以誤差函數(shù)作為改進(jìn)QPSO算法適應(yīng)度函數(shù),通過(guò)優(yōu)化搜索得到滿(mǎn)足適應(yīng)度函數(shù)值最小的一組粒子,即為訓(xùn)練網(wǎng)絡(luò)的一組最優(yōu)的參數(shù)。其基本流程[16-17]為:
1)給定輸入向量和期望輸出向量
(1)數(shù)據(jù)劃分。采用滾動(dòng)的方式對(duì)樣本進(jìn)行重構(gòu),即前N個(gè)值來(lái)預(yù)測(cè)后M個(gè)原始序列的值。數(shù)據(jù)劃分方法見(jiàn)表1。
表1 數(shù)據(jù)劃分Table 1 Data partition
(2)原始數(shù)據(jù)序列x(t)歸一化。min(t)與max(t)分別是數(shù)據(jù)序列中的最小值與最大值。
2)確定神經(jīng)網(wǎng)絡(luò)輸入層、隱含層、輸出層節(jié)點(diǎn)數(shù);
3)粒子群初始化。設(shè)定粒子數(shù)M,粒子向量X的長(zhǎng)度L、目標(biāo)適應(yīng)度值fitness、最大迭代次數(shù)maxiter和粒子速度向量維數(shù)D。
(1)粒子數(shù)。對(duì)于一般優(yōu)化問(wèn)題,粒子數(shù)取20~40即可得到較好的結(jié)果。
(2)粒子向量X的長(zhǎng)度L。計(jì)算公式為L(zhǎng)=(s1+s3)×(s2+1),其中,s1為輸入樣本的維數(shù),s2為隱含層節(jié)點(diǎn)數(shù),s3為輸出結(jié)果維數(shù)。
(3)粒子維度。其值與神經(jīng)網(wǎng)絡(luò)的連接權(quán)值與閾值有關(guān),計(jì)算公式為D=w+v+h+n,w=m×h,v=h×n,其中,D為速度向量的維數(shù);w為輸入層到隱含層的連接權(quán)值的個(gè)數(shù);v為隱含層到輸出層的連接權(quán)值的個(gè)數(shù);m為輸入層節(jié)點(diǎn)數(shù);h為隱含層節(jié)點(diǎn)數(shù);n為輸出層節(jié)點(diǎn)數(shù)。迭代次數(shù)N初始值為1。
4)適應(yīng)度函數(shù)的確定。用公式(6)計(jì)算適應(yīng)度函數(shù)fitness,來(lái)評(píng)價(jià)粒子的搜索性能。
5)當(dāng)種群的最優(yōu)適應(yīng)度值滿(mǎn)足目標(biāo)適應(yīng)度值或達(dá)到最大迭代次數(shù)時(shí),學(xué)習(xí)過(guò)程結(jié)束;否則,令N=N+1,返回步驟(4)繼續(xù)迭代。
6)設(shè)置網(wǎng)絡(luò)的訓(xùn)練誤差最大值g。若fitness>g,則采用所得連接權(quán)值與閾值作為網(wǎng)絡(luò)訓(xùn)練的初始值,然后用訓(xùn)練好的網(wǎng)絡(luò)對(duì)新輸入的樣本進(jìn)行預(yù)測(cè);若fitness≤g則直接對(duì)新樣本數(shù)據(jù)進(jìn)行預(yù)測(cè)。
在MATLAB R2010a的環(huán)境中進(jìn)行試驗(yàn),為了提高預(yù)測(cè)的效率,將訓(xùn)練與預(yù)測(cè)過(guò)程設(shè)計(jì)成一個(gè)程序。數(shù)據(jù)來(lái)自南方50%鋅精礦2008年11月至2011年10月的價(jià)格統(tǒng)計(jì),見(jiàn)表2。
將表2樣本集的數(shù)據(jù),按照表1進(jìn)行數(shù)據(jù)劃分,令N=3,K=28,M=1,分為30個(gè)長(zhǎng)度為4的數(shù)據(jù)段,按公式(8)對(duì)數(shù)據(jù)進(jìn)行歸一化處理;網(wǎng)絡(luò)輸入節(jié)點(diǎn)數(shù)為3,根據(jù)隱含層數(shù)量公式:ni=2n+1,選擇隱含層節(jié)點(diǎn)數(shù)為7,輸出節(jié)點(diǎn)為鋅價(jià)預(yù)測(cè)值,因此,網(wǎng)絡(luò)結(jié)構(gòu)為3—7—1型;訓(xùn)練和測(cè)試網(wǎng)絡(luò)的過(guò)程中,訓(xùn)練樣本的組數(shù)越多,可以提高網(wǎng)絡(luò)的預(yù)測(cè)精度,即前35組數(shù)據(jù)作為訓(xùn)練的樣本,后3組數(shù)據(jù)作為測(cè)試的樣本。將樣本處理后輸入至網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
由神經(jīng)網(wǎng)絡(luò)5-11-1型結(jié)構(gòu)確定需要優(yōu)化的參數(shù)為1 560個(gè),即
取粒子數(shù)目為20,粒子向量X的長(zhǎng)度L為66,粒子速度向量維數(shù)為78;最大迭代步數(shù)100。參數(shù)優(yōu)化過(guò)程如圖2所示。優(yōu)化后的粒子位置向量、由向量解碼成的網(wǎng)絡(luò)權(quán)值、閾值如下:
表2 預(yù)測(cè)模型的訓(xùn)練樣本Table 2 Training Samples of prediction model
圖2 適應(yīng)度優(yōu)化曲線(xiàn)Fig.2 Optimal curve of fitness
將用QPSO優(yōu)化后的網(wǎng)絡(luò)參數(shù)代入BP神經(jīng)網(wǎng)絡(luò),作為參數(shù)的初始值,滿(mǎn)足訓(xùn)練精度或最大訓(xùn)練次數(shù)后,進(jìn)行預(yù)測(cè)。從表3中可以看出,模型預(yù)測(cè)結(jié)果的相對(duì)誤差的絕對(duì)值最大為2.54%,最小為0.006%。預(yù)測(cè)結(jié)果較好,但是具有一定的隨機(jī)性。
表3 QPSO-BP模型預(yù)測(cè)結(jié)果Table 3 Prediction results of QPSO-BP model
為了進(jìn)一步檢驗(yàn)QPSO-BP模型在預(yù)測(cè)中的有效性,采用平均絕對(duì)百分比誤差(mean absolute percentage error,MAPE)來(lái)衡量預(yù)測(cè)精度。另外做了2組試驗(yàn)(參數(shù)設(shè)置見(jiàn)表4),分別用2種模型進(jìn)行預(yù)測(cè),每組10次。
表4 PSO與QPSO參數(shù)設(shè)置Table 4 Parameter setting of PSO and QPSO
圖3 QPSO適應(yīng)度優(yōu)化曲線(xiàn)Fig.3 Fitness optimal curve of QPSO
圖4 PSO適應(yīng)度優(yōu)化曲線(xiàn)Fig.4Fitness optimal curve of PSO
對(duì)比2種網(wǎng)絡(luò)預(yù)測(cè)結(jié)果(表5,鑒于篇幅有限,只列出每個(gè)模型每組的第一個(gè)預(yù)測(cè)值)與多次試驗(yàn)的結(jié)果(表6)。結(jié)果表明,試驗(yàn)1QPSO-BP模型的MAPE均值為 0.0100 7%,最大精度為 0.0198 4%。試驗(yàn)2PSO-BP模型的MAPE均值為0.041 844 078%,最 大 精 度 為 0.069 891 626%。顯 然,QPSO的預(yù)測(cè)精度較好。
模型的泛化能力按公式(7)可以計(jì)算出PSO-BP,QPSO-BP模型的ARV分別為2.907 4,0.002 5。未進(jìn)行優(yōu)化的BP模型需要較多的迭代次數(shù)進(jìn)行權(quán)值與閾值的更新,泛化能力較差;而ARV值QPSO-BP模型遠(yuǎn)遠(yuǎn)小于PSO-BP模型,因此,QPSO-BP模型的泛化能力最強(qiáng)。
表5 QPSO與PSO模型預(yù)測(cè)值比較Table 5 Predictive value comparison between QPSO and PSO model
表6 QPSO與PSO模型MAPE比較Table 6 MAPEcomparison between QPSO and PSO model
1)建立鋅價(jià)格QPSO-BP模型的歷史數(shù)據(jù)是在各種相關(guān)因素的宏觀作用下形成的,可認(rèn)為經(jīng)濟(jì)因素具有相對(duì)穩(wěn)定性,變動(dòng)趨勢(shì)以及對(duì)鋅價(jià)格影響規(guī)律短期不變,利用鋅價(jià)格的歷史數(shù)據(jù)進(jìn)行短期預(yù)測(cè)能保證一定的精度。
2)用量子粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,建立改進(jìn)的量子粒子群BP模型,對(duì)網(wǎng)絡(luò)的初始權(quán)值與閾值快速優(yōu)化,在一定程度上能解決粒子群早熟、網(wǎng)絡(luò)收斂速度慢、容易陷入局部最優(yōu)的問(wèn)題。
3)利用上述模型對(duì)鋅價(jià)格進(jìn)行預(yù)測(cè),精度高于傳統(tǒng)BP模型與粒子群優(yōu)化BP模型,能較好地解決鋅價(jià)格預(yù)測(cè)精度的問(wèn)題;泛化能力指標(biāo)平均相對(duì)變動(dòng)值為0.0025,泛化能力高;相對(duì)誤差分布集中,預(yù)測(cè)結(jié)果穩(wěn)定。
4)鋅產(chǎn)品價(jià)格的變化直接決定了鋅礦項(xiàng)目的價(jià)值,采用改進(jìn)QPSO-BP模型能對(duì)鋅價(jià)格進(jìn)行精確預(yù)測(cè),降低礦業(yè)投資決策的風(fēng)險(xiǎn),還可用于類(lèi)似的礦產(chǎn)品的價(jià)格預(yù)測(cè),應(yīng)用前景廣闊。
[1] 趙翠青 .當(dāng)前中國(guó)鋅工業(yè)的發(fā)展形勢(shì)與思考[J].中國(guó)金屬通報(bào),2005(23):4-5.
[2] 孫繼湖,彭建萍.時(shí)間序列分析技術(shù)在煤炭?jī)r(jià)格預(yù)測(cè)中的應(yīng)用[J].地質(zhì)技術(shù)經(jīng)濟(jì)管理,2000,22(3):33-40.
[3] 王立杰,劉志東.經(jīng)濟(jì)時(shí)間序列分析技術(shù)在煤炭?jī)r(jià)格預(yù)測(cè)中的應(yīng)用[J].煤炭學(xué)報(bào),2001,26(1):109-112.
[4] 魏 毅,程 躍,車(chē)永才.灰色理論在煤炭產(chǎn)品價(jià)格預(yù)測(cè)中的應(yīng)用[J].中國(guó)煤炭,2006,32(6):19-21.
[5] 郭熊娃,張德生 .基于非參數(shù)自回歸模型的WTI原油價(jià)格預(yù)測(cè)[J].山東理工大學(xué)學(xué)報(bào):自然科學(xué)版,2012(12):69-73.
[6] 郭 帥,來(lái) 鵬 .時(shí)間序列混合模型及其在原油價(jià)格預(yù)測(cè)中的應(yīng)用[J].南京信息工程大學(xué)學(xué)報(bào):自然科學(xué)版,2010,2(3):280-283.
[7] 曾 濂,馬丹頔,劉宗鑫 .基于BP神經(jīng)網(wǎng)絡(luò)改進(jìn)的黃金價(jià)格預(yù)測(cè)[J].計(jì)算機(jī)仿真,2010,27(9):200-203.
[8] 顧孟鈞,張志和,陳 友 .基于BP神經(jīng)網(wǎng)絡(luò)的國(guó)際黃金價(jià)格預(yù)測(cè)模型[J].商場(chǎng)現(xiàn)代化,2008(9):35.
[9] 徐向超,趙 瑞 .基于BP神經(jīng)網(wǎng)絡(luò)的世界黃金價(jià)格預(yù)測(cè)[J].科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì),2010,27(9):200-203.
[10] 張延利,張德生,劉常明,等 .基于BP神經(jīng)網(wǎng)絡(luò)的黃金價(jià)格非線(xiàn)性組合預(yù)測(cè)模型[J].黃金,2011,32(9):5-8.
[11] 張 坤,趙 玉 .國(guó)際市場(chǎng)中鈾的價(jià)格變化規(guī)律及對(duì)我國(guó)核電發(fā)展的啟示[J].東華理工大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2011(4):315-317.
[12] 丁 睿 .基于神經(jīng)網(wǎng)絡(luò)的鈾礦國(guó)際市場(chǎng)價(jià)格預(yù)測(cè)[D].長(zhǎng)沙:中南大學(xué),2009.
[13] 孫 俊 .量子行為粒子群優(yōu)化算法研究[D].無(wú)錫:江南大學(xué),2009.
[14] 王 鵬 .網(wǎng)絡(luò)流量預(yù)測(cè)技術(shù)研究[D].無(wú)錫:江南大學(xué),2009.
[15] SUN Jun.Adaptive parameter control for quantum-behaved particle swarm optimization on individual level[C]//IEEE International Conference on Systems,Man and Cybernetics,2005:3049-3054.
[16] 潘玉民,鄧永紅,張全柱,等 .基于QPSO-RBF的瓦斯涌出量預(yù)測(cè)模型[J].中國(guó)安全科學(xué)學(xué)報(bào),2012,22(12):29-34.
[17] 劉成軍,楊 鵬,呂文生,等.灰色—馬爾科夫復(fù)合模型在黃金價(jià)格預(yù)測(cè)中的應(yīng)用[J].有色金屬(礦山部分),2013,65(1):7-11.