李珊珊,何棟煒,林丹楠,許 萍,任 艷
(福建商學(xué)院 1.財務(wù)與會計學(xué)院;2.信息工程學(xué)院,福建 福州 350012;3.廈門大學(xué) 信息學(xué)院,福建 廈門 361005;4.福州大學(xué) 經(jīng)濟(jì)與管理學(xué)院,福建 福州 350003;5.新疆財經(jīng)大學(xué) 信息管理學(xué)院,新疆 烏魯木齊 830012)
財務(wù)運營情況關(guān)系著企業(yè)的未來發(fā)展。由于市場競爭的存在,企業(yè)不僅要時刻關(guān)注自身經(jīng)營狀況,還需要緊密聯(lián)系市場大環(huán)境中本行業(yè)領(lǐng)域的整體經(jīng)營數(shù)據(jù),特別是上市公司的整體經(jīng)營數(shù)據(jù)。財務(wù)的預(yù)測分析作為財務(wù)管理的先驗手段[1],可以有效規(guī)避運行風(fēng)險,根據(jù)預(yù)測結(jié)果提前采取應(yīng)對策略,所以預(yù)測分析既對自身幫助巨大,同時也便于監(jiān)管層對上市的經(jīng)營情況進(jìn)行有效監(jiān)測。由于運行所涉及的數(shù)據(jù)復(fù)雜且數(shù)據(jù)量大,因此通過大數(shù)據(jù)分析和深度學(xué)習(xí)算法來解決財務(wù)的預(yù)測分析問題顯得非常有意義[2]。
預(yù)測離不開經(jīng)營過程中產(chǎn)生的大量關(guān)鍵財務(wù)指標(biāo)數(shù)據(jù),通過對指標(biāo)數(shù)據(jù)進(jìn)行準(zhǔn)確提取和有效處理,為預(yù)測提供數(shù)據(jù)支持,然后采用大數(shù)據(jù)處理算法對樣本數(shù)據(jù)進(jìn)行深度挖掘。當(dāng)前,采用深度學(xué)習(xí)方法對危機(jī)預(yù)測的研究成果較多。劉子君等[3]采用支持向量機(jī)分類器來對財務(wù)狀況進(jìn)行預(yù)測,能夠?qū)崿F(xiàn)簡單指標(biāo)的經(jīng)營預(yù)測,預(yù)測準(zhǔn)確率對指標(biāo)數(shù)量的依賴性強(qiáng);張亞男等[4]采用極限學(xué)習(xí)機(jī)進(jìn)行預(yù)測分析,并對極限學(xué)習(xí)機(jī)進(jìn)行粒子群優(yōu)化,以提高預(yù)測準(zhǔn)確率,此方法對樣本的時間段選擇要求高,預(yù)測準(zhǔn)確率受時間因素影響顯著,預(yù)測準(zhǔn)確率的穩(wěn)定性有待加強(qiáng)。上述研究結(jié)果均指出財務(wù)危機(jī)預(yù)測是根據(jù)歷史時間段的經(jīng)營數(shù)據(jù)經(jīng)過算法訓(xùn)練后獲得的結(jié)果,有較強(qiáng)的時間跟蹤性,而且指標(biāo)復(fù)雜多變。前者的財務(wù)預(yù)測準(zhǔn)確率受限于財務(wù)預(yù)測指標(biāo),對全面指標(biāo)評價預(yù)測性能不高,而后者的預(yù)測準(zhǔn)確率又隨著財務(wù)樣本的時間序列選擇不同而出現(xiàn)震蕩。
因此,為了獲得準(zhǔn)確的危機(jī)預(yù)測結(jié)果,需要對當(dāng)前時間前的若干時間段進(jìn)行分析處理,且能夠處理復(fù)雜多維預(yù)測指標(biāo)特征。在處理時間序列訓(xùn)練較復(fù)雜的問題時,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)表現(xiàn)出了一定的優(yōu)勢,因為RNN能夠更加自由和動態(tài)地獲取輸入的信息,而不受到定長輸入空間的限制。因此,本文引入RNN來訓(xùn)練樣本,并采用差異化時間序列的賦權(quán)策略,記憶不同歷史時間序列對RNN預(yù)測分析的影響。本文的主要創(chuàng)新之處在于:RNN的性能十分依賴歷史時間序列權(quán)重,此參數(shù)的選取直接影響其最終的預(yù)測精度。因此,為了進(jìn)一步提高RNN應(yīng)對大量財務(wù)指標(biāo)數(shù)據(jù)的適應(yīng)度,采用人工蜂群(Artificial bee colony,ABC)算法對RNN的歷史時間序列權(quán)重進(jìn)行優(yōu)化改進(jìn),通過反向傳播優(yōu)化各時間序列的權(quán)重矩陣,獲得穩(wěn)定的財務(wù)危機(jī)預(yù)測模型。最后通過試驗,將所提算法和常用預(yù)測算法對比,驗證所提算法的預(yù)測準(zhǔn)確率,證明其有效性。
財務(wù)預(yù)測分析的關(guān)鍵問題是指標(biāo)的合理選取與精準(zhǔn)的分析模型,兩者缺一不可,而且均對分析預(yù)測的準(zhǔn)確率有顯著影響。經(jīng)營過程中產(chǎn)生的數(shù)據(jù)較多,選擇能夠全面反映運行情況的重要指標(biāo)和關(guān)鍵數(shù)據(jù)是危機(jī)預(yù)測分析的基礎(chǔ),通過多篇文獻(xiàn)參考,選取了影響財務(wù)狀況的關(guān)鍵指標(biāo)如表1所示[5]。
表1 財務(wù)預(yù)測指標(biāo)
表1中提取了財務(wù)運行過程中的17個核心指標(biāo)。通過對比發(fā)現(xiàn),這些指標(biāo)中,有些指標(biāo)存在著強(qiáng)關(guān)聯(lián)性,因此在實際分析時,可以進(jìn)一步采取去耦合分析和弱關(guān)聯(lián)策略[6]。一方面是降低強(qiáng)關(guān)聯(lián)指標(biāo)所帶來的重復(fù)運算而降低分析效率;另一方面,高維特征訓(xùn)練分析會無形提升財務(wù)危機(jī)預(yù)測模型的復(fù)雜度。去耦合操作后x6和x7之間僅保留x6,x3和x4之間僅保留x3,從而進(jìn)一步精簡了參與RNN的運算變量。
獲取財務(wù)指標(biāo)后,需要對指標(biāo)進(jìn)行預(yù)處理,對一任意指標(biāo)xi,其處理方法為
(1)
式中:xmin和xmax分別為該指標(biāo)的最小和最大值。
在完成財務(wù)分析指標(biāo)的選擇及去耦合處理后,預(yù)測模型的數(shù)據(jù)樣本還要充分考慮數(shù)據(jù)的時間效應(yīng),利用歷史數(shù)據(jù)分析未來財務(wù)的運營狀況時,應(yīng)充分挖掘歷史數(shù)據(jù)的影響。在對歷史數(shù)據(jù)分析時,需要考慮到歷史數(shù)據(jù)的時間段長度。本文選擇了RNN算法,RNN算法的特點是能夠充分利用歷史數(shù)據(jù)進(jìn)行預(yù)測分析。
設(shè)有n個點xi(i=1,2,…,n)經(jīng)過RNN的輸入權(quán)重化及偏置處理后,可得到[7]
(2)
式中:wi(i=1,2,…,n)為各個節(jié)點所對應(yīng)的權(quán)重系數(shù),b為偏置常量。
將激活函數(shù)作用于經(jīng)過權(quán)重化和偏置處理后的節(jié)點得到
(3)
RNN的核心思想便是其隱藏層的循環(huán)結(jié)構(gòu)。設(shè)x和o分別為RNN的輸入與輸出,s為隱藏層激活后的結(jié)果,具體循環(huán)結(jié)構(gòu)見圖1。
圖1 RNN結(jié)構(gòu)
圖1中ot的值不僅與xt有關(guān),還與st-2、st-1有關(guān),而st-2和st-1分別來自于xt-2和xt-1所對應(yīng)的隱藏層輸出。這種t時刻的輸出不僅來自于t時刻的輸入,還受到t時刻前若干時刻隱藏層輸出的影響,通過隱藏層輸出的時間序列疊加處理,這正是RNN的核心內(nèi)涵。圖1中U、V和W表示各隱藏層的連接權(quán)重矩陣,設(shè)樣本xt經(jīng)過隱藏層之后,同時結(jié)合前一時刻的輸出,經(jīng)過激勵后為[8]
st=f(Uxt+Wst-1+ht)
(4)
式中:f(·)和ht分別為隱藏層激勵和偏置。s(t)經(jīng)過輸出g(·)激勵后,得到[9]
ot=g(Vst+bo)
(5)
式中:偏置bo為偏置常量。
結(jié)合式(2)和式(3),從t時刻進(jìn)行前向迭代,而迭代過程中ht和bo作為常量不用參與,則有[10]
ot=g(Vst)=Vf(Uxt+Wst-1)=
Vf(Uxt+Wf(Uxt-1+Wst-2))=
Vf(Uxt+Wf(Uxt-1+Wf(Uxt-2+Wst-3)))=
Vf(Uxt+Wf(Uxt-1+Wf(Uxt-2+
Wf(Uxt-3+…))))
(6)
RNN通過不斷循環(huán)迭代求解,對t時刻前的數(shù)據(jù)進(jìn)行權(quán)重化循環(huán)求解,從而提高輸出的時間記憶性,提高深度網(wǎng)絡(luò)訓(xùn)練的有效性。
采用RNN運算,第k個節(jié)點的輸出為yk,則誤差δk為[11]
δk=(dk-yk)yk(1-yk)
(7)
式中:dk為實際值。
RNN的權(quán)重更新為[12]
(8)
式中:η為學(xué)習(xí)率,hj表示輸出。當(dāng)前權(quán)重wjk(n)調(diào)整后的權(quán)重wjk(n+1)為
wjk(n+1)=wjk(n)+Δwjk(n)
(9)
偏置Δbk(n)的更新方式為
(10)
式中:α為更新步長,一般設(shè)置α=1。
當(dāng)前偏置bk(n)調(diào)整后的偏置bk(n+1)為
bk(n+1)=bk(n)+Δbk(n)
(11)
所有節(jié)點誤差E為
(12)
當(dāng)E滿足設(shè)定的閾值,迭代停止,按照此法繼續(xù)反向求解V、bo和U,W表示前時間序列對當(dāng)前時刻的權(quán)重影響,可靈活設(shè)置,本文設(shè)置為參與計算的時間序列的倒數(shù)。確定了U、V、W和bo之后,便獲得了穩(wěn)定的RNN模型。
ABC算法主要是根據(jù)蜜源的搜尋路徑來尋找最優(yōu)解,現(xiàn)對ABC算法進(jìn)行數(shù)學(xué)描述,設(shè)蜜源為i,引領(lǐng)探測蜂在第d維的初始隨機(jī)位置為Xid,其位置具體為[13]
Xid=L〗d+rand(0,1)(Ud-Ld)
(13)
式中:Ud與Ld分別為蜜源在第d維搜索的邊界上下限范圍,d∈{1,2,…,D},D表示總維度。
探測蜂在Xid處展開蜜源搜索,新蜜源為Vid,其搜索方式為[11]
Vid=Xid+φ(Xid-Xjd)
(14)
式中:j≠i,φ取值范圍為[1,1],Xjd為搜索范圍內(nèi)第d維除了Xid外的任意位置。
當(dāng)探測蜂探測到新蜜源時,會將新舊蜜源進(jìn)行質(zhì)量對比,對比方式為計算兩者的適應(yīng)度值,新蜜源Vi=[Vi1,Vi2,…,Vid]的適應(yīng)度值fiti的計算方法為[12]
(15)
式中:fi為新蜜源的質(zhì)量。若Vi的適應(yīng)度值優(yōu)于Xi,則用新蜜源替換掉原蜜源。
探測蜂將蜜源數(shù)據(jù)傳達(dá)至跟隨蜂,而跟隨蜂選擇其偏好的蜜源概率pi為[13]
(16)
探測蜂搜索蜜源的策略為:當(dāng)?shù)蝨rial達(dá)到最大次數(shù)Itrmax時,則重新跳轉(zhuǎn)至式(13),否則繼續(xù)找最優(yōu)蜜源。
(17)
在RNN網(wǎng)絡(luò)的反向傳播過程中歷史時間序列權(quán)重的更新通常采用梯度下降算法,存在易陷入局部極小值的缺點,無法獲得全局最優(yōu)的訓(xùn)練目標(biāo)。因此,本文采用具有較強(qiáng)的全局尋優(yōu)性能的ABC算法對深度RNN網(wǎng)絡(luò)的權(quán)重進(jìn)行優(yōu)化,優(yōu)化的關(guān)鍵內(nèi)容在于將RNN網(wǎng)絡(luò)輸出值與預(yù)測值的均方誤差作為ABC的適用度函數(shù)。ABC適用度函數(shù)的值越小表示所對應(yīng)粒子的尋優(yōu)性能越好,這里選用均方誤差(Mean-squared error,MSE)表示
(18)
根據(jù)財務(wù)指標(biāo)數(shù)據(jù)獲取危機(jī)預(yù)測樣本,然后按照式(1)對所有樣本的指標(biāo)進(jìn)行預(yù)處理,最后通過ABC-RNN訓(xùn)練獲得危機(jī)預(yù)測模型,具體流程如圖2所示。
圖2 基于ABC-RNN的財務(wù)危機(jī)預(yù)測流程
為了驗證ABC-RNN在財務(wù)危機(jī)預(yù)測中的性能,進(jìn)行實例仿真。仿真數(shù)據(jù)來源為某投資管理平臺中的上市公司,其主要結(jié)構(gòu)如表2所示。首先對危機(jī)預(yù)測結(jié)果進(jìn)行可視化,其次對不同時間因素影響的危機(jī)預(yù)測性能進(jìn)行仿真,最后采用常用危機(jī)預(yù)測算法和本文算法進(jìn)行比較,分別驗證其預(yù)測性能。特殊處理(Special treatment,ST)類型的公司是指連續(xù)兩年虧損的公司。
表2 樣本集
ABC-RNN的財務(wù)狀況正常預(yù)測標(biāo)簽為0,否則為1。默認(rèn)選擇T-2年度對T年進(jìn)行預(yù)測分析。
首先采用ABC-RNN對258個訓(xùn)練樣本進(jìn)行預(yù)測訓(xùn)練,獲得穩(wěn)定的RNN模型,然后對86個測試集進(jìn)行財務(wù)危機(jī)預(yù)測,其可視化結(jié)果如圖3所示。
從圖3可清楚得到86個測試樣本的財務(wù)預(yù)測結(jié)果,通過觀察發(fā)現(xiàn),大部分樣本的期望值和預(yù)測值吻合,但也出現(xiàn)了8個期望值和預(yù)測值不相同的樣本,表明這8個樣本預(yù)測錯誤。兩類的預(yù)測結(jié)果統(tǒng)計如表3所示。
圖3 財務(wù)危機(jī)預(yù)測結(jié)果可視化
表3 預(yù)測結(jié)果
從表3知,非ST公司的預(yù)測達(dá)到了92.8%,而ST公司的預(yù)測僅為81.25%,這表明算法對ST公司的預(yù)測準(zhǔn)確率不是特別高,這可能是因為選擇預(yù)測歷史數(shù)據(jù)導(dǎo)致的。因為大部分ST公司主要是近2年的財務(wù)數(shù)據(jù)差造成的,而本文選擇的參與RNN循環(huán)的時間樣本正好是T-2年數(shù)據(jù),可能造成預(yù)測偏差。因此下面將選擇不同時間段的樣本進(jìn)行ABC-RNN仿真。
為了驗證樣本時間段選擇對ABC-RNN財務(wù)危機(jī)預(yù)測的影響,分別選擇不同年度運行數(shù)據(jù)作為樣本訓(xùn)練,其86個測試樣本的預(yù)測結(jié)果統(tǒng)計如表4所示。
表4 不同時間段的預(yù)測結(jié)果
從表4可知,從不同時間段獲取的財務(wù)運行樣本對RNN財務(wù)危機(jī)預(yù)測結(jié)果影響較大,特別是對ST的預(yù)測結(jié)果影響較大。這表明相對于非ST,ST的財務(wù)預(yù)測對樣本的時間序列影響更敏感。為了深入分析不同時間段對財務(wù)危機(jī)預(yù)測的具體影響,分別對預(yù)測準(zhǔn)確率及其均方誤差、F值、曲線下面積(Area under curve,AUC)性能進(jìn)行仿真,結(jié)果如表5所示。
表5 不同時間段的預(yù)測性能對比
對比得到,在預(yù)測準(zhǔn)確率方面,選擇T-4~T-2年的指標(biāo)時各類樣本數(shù)據(jù)進(jìn)行RNN預(yù)測效果最好,達(dá)到了96.51%,T-3~T-2年的預(yù)測準(zhǔn)確率次之,為95.35%,T-5~T-2年預(yù)測效果最差,僅為89.53%。這表明樣本時間段的選擇對RNN的危機(jī)預(yù)測效果影響顯著,在采用RNN對危機(jī)預(yù)測時,既要充分挖掘歷史數(shù)據(jù)對當(dāng)前預(yù)測的影響,也要排除過長歷史數(shù)據(jù)對當(dāng)前預(yù)測的干擾。對比T-4~T-2年和T-3~T-2年的結(jié)果發(fā)現(xiàn),兩者的均方誤差和F值性能非常接近,而在財務(wù)危機(jī)預(yù)測準(zhǔn)確率方面,前者更優(yōu)。但是在AUC性能方面,后者更優(yōu),表5表明選擇T-3~T-2年進(jìn)行分析更容易獲得財務(wù)是否出現(xiàn)危機(jī)預(yù)測分類結(jié)果。因此在選擇歷史年份數(shù)據(jù)進(jìn)行危機(jī)預(yù)測時,需要更充分考慮。
為了對比不同算法的財務(wù)危機(jī)預(yù)測性能,分別采用反向傳播神經(jīng)網(wǎng)絡(luò)(Back propagation neural network,BPNN)[14]、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network,CNN)[15]、RNN[16]和ABC-RNN算法對數(shù)據(jù)進(jìn)行仿真,歷史數(shù)據(jù)均選擇T-3~T-2年,其結(jié)果如圖4所示。
圖4 4種算法的預(yù)測準(zhǔn)確率
從圖4可以看出,ABC-RNN算法對表2中的樣本預(yù)測準(zhǔn)確率最高,達(dá)到穩(wěn)定時約為0.95,RNN算法次之,BPNN算法最差,僅為0.88。從預(yù)測時間方面來看,BPNN預(yù)測效率最高,大約需16 s,ABC-RNN和RNN次之,CNN最差。
下面繼續(xù)對4種預(yù)測算法的AUC性能進(jìn)行仿真,將BPNN、CNN、RNN和ABC-RNN編號為1、2、3和4,分別進(jìn)行10次仿真求解其AUC值,結(jié)果如圖5所示。
圖5 4種算法的AUC性能
從圖5知道,ABC-RNN算法的AUC值最高,約為0.95左右,RNN次之,BPNN最差。從AUC的穩(wěn)定性看,ABC-RNN算法的多個AUC值更聚集,BPNN和CNN算法AUC值較分散,而RNN算法的AUC值有個跳變點,表明此算法的預(yù)測分類穩(wěn)定性有待加強(qiáng),這一結(jié)果驗證了本文開頭對典型RNN穩(wěn)定性有待改善的分析,這是因為RNN網(wǎng)絡(luò)的反向傳播過程中歷史時間序列權(quán)重的更新通常采用梯度下降算法,存在易陷入局部極小值的缺點,無法獲得全局最優(yōu)的訓(xùn)練目標(biāo)。然而,本文提出的ABC-RNN解決了這個問題,借助ABC較強(qiáng)的全局尋優(yōu)性能并通過合理選擇適應(yīng)度函數(shù),最終獲得了穩(wěn)定且準(zhǔn)確的預(yù)測結(jié)果。
采用ABC-RNN算法對數(shù)據(jù)樣本進(jìn)行訓(xùn)練,可以獲得預(yù)測結(jié)果,根據(jù)預(yù)測值可實現(xiàn)對財務(wù)預(yù)判。相比常用深度學(xué)習(xí)算法,RNN算法能更充分利用時間序列的循環(huán)計算優(yōu)勢,提高了危機(jī)預(yù)測準(zhǔn)確率。此外,為了進(jìn)一步提高RNN應(yīng)對大量財務(wù)指標(biāo)數(shù)據(jù)的適應(yīng)度,采用ABC算法對RNN的歷史時間序列權(quán)重進(jìn)行優(yōu)化改進(jìn),通過反向傳播優(yōu)化各時間序列的權(quán)重矩陣,獲得穩(wěn)定的財務(wù)危機(jī)預(yù)測模型。結(jié)果表明,和常用預(yù)測算法對比,所提ABC-RNN算法的預(yù)測準(zhǔn)確率更高,且AUC值更高。后續(xù)研究將進(jìn)一步優(yōu)化RNN算法的隱藏層數(shù)和參與運算的各歷史時間序列權(quán)重,以優(yōu)化RNN的危機(jī)預(yù)測效率,提高RNN算法在財務(wù)危機(jī)預(yù)測中的適用度。