孫 藝, 宋振銘, 趙佳琪
(1. 北京郵電大學(xué) 軟件學(xué)院, 北京 100876; 2. 中國標(biāo)準(zhǔn)化研究院 標(biāo)準(zhǔn)評估部, 北京 100191)
近年來, 因為全球經(jīng)濟(jì)逐步一體化、 導(dǎo)致金融領(lǐng)域的創(chuàng)新層出不窮, 國內(nèi)金融市場發(fā)展迅速, 財富膨脹的同時也伴隨著各種危機(jī), 大多數(shù)的金融機(jī)構(gòu)受到多方不利因素的影響。因此很多研究人員基于多方面的考慮提出了不同的金融風(fēng)險預(yù)測模型, 試圖在金融系統(tǒng)的各個方面, 最大程度地降低風(fēng)險。目前金融行業(yè)中, 普遍采用的風(fēng)險評估模型有以下3種: 決策樹、 支撐向量機(jī)和基于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)預(yù)測方法。相對而言粒子群算法實現(xiàn)較為簡單, 優(yōu)化比較方便, 并且參數(shù)少, 優(yōu)點相對突出, 所以經(jīng)常被用于多個經(jīng)濟(jì)領(lǐng)域。例如在供應(yīng)鏈領(lǐng)域的金融信用風(fēng)險評價[1]、 在經(jīng)濟(jì)調(diào)度問題中的應(yīng)用[2]、 證券市場分析[3]、 求解經(jīng)濟(jì)負(fù)荷分配[4]、 金融風(fēng)險預(yù)警[5]和產(chǎn)銷不平衡現(xiàn)象領(lǐng)域[6]。在粒子群算法中, 每個粒子個體的位置被設(shè)置為一個問題的可優(yōu)化解, 并且站在整個群體的角度下, 采取信息共享和合作方式, 按照有序的方式和規(guī)律引導(dǎo)粒子逐步演化, 從而得到最優(yōu)解。
以往傳統(tǒng)方法中, 大多是以線性分析方法為基礎(chǔ)的金融理論, 很多沒有考慮金融系統(tǒng)的非線性, 對金融系統(tǒng)中存在的相互作用的復(fù)雜程度和內(nèi)部的不穩(wěn)定性都沒有明確考量, 導(dǎo)致對金融風(fēng)險無法進(jìn)行有效的預(yù)測和控制。而且粒子群算法會隨著迭代次數(shù)的增多, 容易出現(xiàn)種群多樣性降低、 陷入局部最優(yōu)、 收斂速度減慢和全局收縮能力降低等問題, 因此在傳統(tǒng)金融風(fēng)險模型中, 粒子群算法的應(yīng)用方式是無法確定其最大參數(shù)比的[7]。筆者通過對隨機(jī)慣性權(quán)重的調(diào)整、 個體位置的變異等方式, 提出了一種改進(jìn)的算法, 并基于文獻(xiàn)[7]將改進(jìn)后的粒子群優(yōu)化算法應(yīng)用于金融風(fēng)險系統(tǒng)中, 通過實驗說明筆者算法的最優(yōu)參數(shù)配比, 從而降低金融系統(tǒng)的總風(fēng)險值。
針對系統(tǒng)風(fēng)險的演變, 提出了一種新穎的金融風(fēng)險系統(tǒng)[8]。設(shè)定3個階段: 第1階段存在兩種影響, 分別來源系統(tǒng)內(nèi)部和外部; 第2階段對系統(tǒng)的影響來源不同金融網(wǎng)絡(luò)之間的傳染效應(yīng); 第3階段的影響來源各種金融機(jī)構(gòu)對市場的變化和監(jiān)管機(jī)構(gòu)對金融風(fēng)險的控制。該模型的動力學(xué)方程為
(1)
其中x表示系統(tǒng)內(nèi)部和外部影響下的風(fēng)險值;y表示第2階段金融系統(tǒng)網(wǎng)絡(luò)之間傳染總風(fēng)險值;z表示第3階段對金融系統(tǒng)的風(fēng)險控制值。a、b分別表示前兩個階段的風(fēng)險程度,c表示第3階段的控制力度,a,b∈R+,c>1。由于c表示金融監(jiān)管機(jī)構(gòu)針對金融市場的調(diào)控力度, 根據(jù)模型可以看出, 隨著c值的逐步降低, 系統(tǒng)會逐漸進(jìn)入混沌狀態(tài), 當(dāng)調(diào)控力度較小時, 系統(tǒng)容易進(jìn)入一種失穩(wěn)狀態(tài), 嚴(yán)重影響系統(tǒng)運行。由于x變動較大, 導(dǎo)致與之相關(guān)的周期運動狀態(tài)下的總風(fēng)險值變化的規(guī)律無法明確, 進(jìn)而無法確定c的最優(yōu)值。最大程度降低系統(tǒng)的總風(fēng)險值的關(guān)鍵就是確定一個最優(yōu)值, 由于x是不斷變化的, 文獻(xiàn)[7]提出把目標(biāo)函數(shù)x的均方根和最大值設(shè)置為加權(quán)函數(shù), 則
L=ρ1rms(x)+ρ2max(x)
(2)
其中, rms代表均方值根, max代表最大值,ρ1,ρ2代表加權(quán)系數(shù)。
傳統(tǒng)的粒子群優(yōu)化算法主要源于對生物種群行為的研究, 通過分析個體之間行為的相互作用, 從而搜索種群空間中的最優(yōu)位置。每個粒子代表一種潛在可行的解決方案, 并且每個粒子有兩個屬性: 當(dāng)前位置xi和速度vi, 把個體粒子最優(yōu)位置記為pbest(i),gbest(i)表示整個群體的最優(yōu)位置。由此得出每個粒子位置和速度之間的關(guān)系如下
vi+1=ωvic1rand(j)(pbest(i)-xi)+c1rand(j)(gbest(i))
(3)
xi=xi+vi
(4)
其中c1,c2是常量, 代表粒子的影響因子, rand()隨機(jī)取值,j定義域在[0,1],ω代表慣性權(quán)重, 可以反映粒子的慣性與速度之間的關(guān)系。在前期階段, 為了增大全局搜索能力, 分配較大的慣性權(quán)重, 但后期階段的目的是局部搜索的精度, 所以采用較小的權(quán)重, 根據(jù)ω的變化策略, 提高搜索能力, 則ω的表達(dá)式為
(5)
其中ωend=0.4,ωstart=0.9, 當(dāng)前的迭代次數(shù)記為t,Tmax為迭代過程中允許的最大迭代次數(shù)。
假設(shè)在a、b固定的情況下, 通過引入粒子群算法從而尋找一組最優(yōu)的控制參數(shù)c, 得到最小化的風(fēng)險總值, 獲取最小化目標(biāo)函數(shù)。為明確表示粒子群和式(1)中的金融風(fēng)險模型的映射關(guān)系, 筆者提出將粒子群中每個個體的位置表示為一組可控的參數(shù)c, 通過不斷迭代, 粒子可以找尋到最優(yōu)位置, 從而搜索出一組最優(yōu)參數(shù)c, 最終實現(xiàn)風(fēng)險值x的最小化, 起到對金融風(fēng)險非線性系統(tǒng)模型優(yōu)化的目的。
標(biāo)準(zhǔn)粒子群算法雖然有諸多優(yōu)點, 但在迭代過程中, 當(dāng)粒子對代表自身的迭代參數(shù): 自身的位置、 單體歷史最優(yōu)位置、 整個群體最優(yōu)解等都采用同樣的更新方式時, 粒子容易出現(xiàn)后期停滯, 或是過早找到最優(yōu)解等問題, 由此導(dǎo)致金融風(fēng)險模型中的參數(shù)無法快速地產(chǎn)生下一個最優(yōu)結(jié)果。因此筆者提出更改慣性權(quán)重設(shè)置方法, 采用隨機(jī)數(shù)動態(tài)的代表慣性權(quán)重, 并引入鴿群算法對粒子位置的變異進(jìn)行表示, 從而推斷參數(shù)c跳出最優(yōu)位置, 不僅有利于跳出局部最優(yōu), 而且在最大程度上保證種群的多樣性, 同時避免出現(xiàn)過早收斂的結(jié)果。
通過式(3)可以推斷, 歷史信息對迭代更新的影響程度, 由慣性權(quán)重控制, 而傳統(tǒng)算法中, 慣性權(quán)重大多采用線性遞減策略, 導(dǎo)致搜索效率低下、 過早的引起局部最優(yōu)。為了改善這些問題, 很多學(xué)者提出了多種方式: 采用固定慣性權(quán)重[9]、 權(quán)值遞減策略[10-11]、 模糊慣性權(quán)值策略[12]、 隨機(jī)慣性權(quán)重策略[13]、 基于冪函數(shù)的非線性權(quán)值遞減策略[14]、 動態(tài)慣性權(quán)值策略[15]及改進(jìn)粒子群優(yōu)化的BP(Back Propagation)算法[16]等。這些方式中, 隨機(jī)性策略較為優(yōu)秀, 在保持種群多樣性的基礎(chǔ)上, 針對性地提高了算法的全局搜索能力, 使粒子跳出局部最優(yōu), 避免粒子陷入早熟收斂。隨機(jī)權(quán)重的定義為
(6)
其中ωmax表示隨機(jī)權(quán)重最大值,ωmin代表最小值,t為當(dāng)前的迭代次數(shù),Tmax為最大迭代次數(shù), rand(j)為[0,1]均勻分布的隨機(jī)數(shù),σ為方差, rand(j)為正態(tài)分布的隨機(jī)數(shù)。
在PSO(Particle Swarm Optimization)算法中, 不同粒子的最優(yōu)位置變化趨勢會隨著迭代次數(shù)的增加描繪出一條軌跡鏈, 可表示最優(yōu)位置值, 但粒子過多的聚集與局部區(qū)域, 會出現(xiàn)過早收斂現(xiàn)象, 所以此時算法的搜索能力較弱。筆者通過改變粒子位置的變異策略, 完成粒子跳出局部最優(yōu), 由此提出一種改進(jìn)鴿群算法。
鴿群算法使粒子的搜索方向明確、 提升搜索速度, 且具有計算精度高等優(yōu)點, 但其中的地圖羅盤算子和地標(biāo)算子變異策略不夠清晰, 這兩個算子處于兩個不同的運行階段; 地圖羅盤算子引入的目的是初始階段的粒子位置和速度; 而地標(biāo)算子的作用是針對遠(yuǎn)離目標(biāo)的粒子, 每次迭代過程對這些粒子減半去除[17]。因為地圖羅盤算子是一種平衡因子, 是關(guān)聯(lián)搜索速度和開發(fā)能力的, 所以具有針對性的提出了一種優(yōu)化方式[18], 引入了線性變異策略, 可以動態(tài)表示地圖羅盤算子的變化趨勢
(7)
其中Rmax,Rmin代表羅盤因子的最大值和最小值,pr表示線性變異概率。在此基礎(chǔ)上, 提出了一種搜索算子
(8)
為了避免粒子在迭代后期出現(xiàn)局部最優(yōu)的現(xiàn)象, 引入表示位置變化的變異因子。因為虹吸效應(yīng), 導(dǎo)致大量粒子聚集出現(xiàn)在某個最優(yōu)位置, 則對其中符合變異條件的粒子進(jìn)行操作: 將變異粒子單獨劃出, 這不僅保證了種群的多樣性, 而且增加了全局搜索能力。對式(8)改進(jìn)后如下
(9)
c=min(b1-a1,b2-a2,…,bn-an)
(10)
其中c代表變異過程中的變異因子, 閾值范圍在所有粒子中最小, 第i個粒子的定義域用bn-an代表。粒子變異率用pm表示。為了解決粒子在后期種群多樣性較低的問題, 保證種群多樣性和全局能力, 將迭代初期的變異率設(shè)置較高, 將迭代后期的變異率設(shè)置較低[19], 變異率的計算公式為
(11)
其中pm,min,pm,max分別代表最小和最大變異率, 迭代次數(shù)用k表示, 最大迭代次數(shù)使用N表示。
在解決粒子過早收斂問題的過程中, 引入了機(jī)電學(xué)科概念[20]中的類電磁機(jī)制, 提出了一種混合集中的優(yōu)化算法EMPSO(Expectation Maximization and Particle Swarm Optimization)。用電荷量的值分別表示個體最優(yōu)粒子和群體最優(yōu)粒子, 從而可明確表示粒子間相互作用, 避免出現(xiàn)過早收斂情況。具體電荷量和合力計算方法如下
(12)
(13)
結(jié)合鴿群算法式(8)得到個體最優(yōu)位置的計算方式為
(14)
其中RRNG為一個代表可行步長的向量, 其分量分別表示對應(yīng)的面向上邊界或下邊界移動。
改進(jìn)后的算法首先對各個參數(shù)進(jìn)行初始化, 確定粒子最優(yōu)點以及種群最優(yōu)點, 然后進(jìn)行更新, 并與變異率比較, 判斷是否需要變異、 是否滿足條件, 進(jìn)而決定繼續(xù)迭代還是結(jié)束算法。改進(jìn)后的算法流程如下。
步驟1) 對粒子的屬性: 大小、 位置, 速度、 慣性權(quán)重和迭代次數(shù)初始化后, 可以確定粒子的變異率;
步驟2) 確定各個粒子的最優(yōu)點pbest, 并表示“最好”的粒子位置gbest;
步驟3) 根據(jù)式(4)更新粒子的權(quán)重;
步驟4) 根據(jù)式(9)更新粒子的變異率, 然后和rand(j)比較, 若大于rand(j), 使用式(7)更新對粒子的位置進(jìn)行變異; 若小于rand(j), 采用標(biāo)準(zhǔn)粒子群算法更新位置;
步驟5) 根據(jù)式(10), 式(11)計算粒子q以及作用力, 重新計算粒子最優(yōu)位置, 比較前后兩次最優(yōu)位置, 取較優(yōu)的p;
步驟6) 判斷停止條件, 如果滿足, 則停止迭代; 否則轉(zhuǎn)到步驟3), 繼續(xù)迭代。
為驗證改進(jìn)后算法對性能方面的影響, 采用測試函數(shù): Sphere函數(shù)、 Rastrigrin函數(shù)、 Sumsquares函數(shù)和Zakharov函數(shù)分別對兩種算法進(jìn)行仿真實驗, 驗證兩種算法的性能。4個基準(zhǔn)函數(shù)的標(biāo)準(zhǔn)定義如下。
Sphere函數(shù)
(15)
Rastrigrin函數(shù)
(16)
Sumsquares函數(shù)
(17)
Zakharov函數(shù)
(18)
Sphere是單峰二次函數(shù),f(x)=0表示全局最小值, 因為只有一個極小值點, 所以在尋優(yōu)上比較困難; Rastrigrin是多峰函數(shù), 可以采集大量的局部極值點; Sumsquares和Zakharov函數(shù)同樣都是具有多峰的函數(shù)。對于實驗仿真過程, 慣性權(quán)重的變換范圍為[0.4,0.9],pmax=0.6,pmin=0.3, 隨機(jī)函數(shù)的閾值為(0,1), 迭代次數(shù)最高100次。Spehe、 Sumsquares、 Rastrigrin、 Zakharov函數(shù)非常清晰地表示了迭代次數(shù)與適應(yīng)值之間的趨勢變換, 如圖1~圖4所示。
圖1 Sphere函數(shù)適應(yīng)值變化趨勢 圖2 Rastrigrin函數(shù)適應(yīng)值變化趨勢 Fig.1 The change trend of the adaptation Fig.2 Variation trend of fitness value of the Sphere function value of Rastrigrin function
圖3 Sumsquares函數(shù)適應(yīng)值變化趨勢 圖4 Zakharov函數(shù)適應(yīng)值變化趨勢 Fig.3 Variation trend of fitness Fig.4 Variation trend of fitness value of Sumsquares function value of Zakharov function
從圖1~圖4的結(jié)果中可以看出, 優(yōu)化后的算法具備更快的收斂速度, 在很大程度上解決了陷入局部最優(yōu)的問題。從圖1中可以看出, PSO算法相較于改進(jìn)后的算法較慢的達(dá)到最優(yōu)適應(yīng)值。從圖2中可以看出, 在傳統(tǒng)的算法中, 開始階段下降較快, 局部最優(yōu)現(xiàn)象也很快出現(xiàn), 但改進(jìn)后的算法通過對慣性權(quán)重等值的改進(jìn), 使粒子很快跳出了局部最優(yōu)陷阱, 從而更快地達(dá)到了最優(yōu)。在圖3中, PSO算法在開始階段適應(yīng)值較低, 但收斂速度較慢。而改進(jìn)后的算法雖然陷入了局部最優(yōu), 但很快通過變異策略跳出, 從而加快了收斂速度, 在圖4中效果更為明顯。
從仿真結(jié)果得出, 筆者采用的策略粒子慣性權(quán)重的改變力度、 粒子位置變異方式以及種群中粒子最優(yōu)位置的變化, 很大程度上能幫助粒子跳出局部最優(yōu)、 解決后期收斂減慢的問題, 并且表現(xiàn)了較好的收斂性。
筆者在傳統(tǒng)方法的基礎(chǔ)上, 在金融風(fēng)險模型中引入粒子群算法, 通過對粒子的屬性: 慣性權(quán)重, 個體位置、 個體最優(yōu)位置變異等關(guān)系的優(yōu)化, 找出粒子群算法中的粒子位置和風(fēng)險模型中控制因子c的映射關(guān)系, 獲取最優(yōu)的控制因子, 在最大程度上降低風(fēng)險系統(tǒng)中的總風(fēng)險值, 使粒子群在保持種群多樣性的基礎(chǔ)上, 不但解決了局部最優(yōu)的問題, 而且在后期依然能保持良好的速度。