[摘 要] 本文應(yīng)用BP神經(jīng)網(wǎng)絡(luò)方法的基本原理, 以公司的現(xiàn)金流量因素狀況為研究對(duì)象,建立了公司現(xiàn)金流量分析的神經(jīng)網(wǎng)絡(luò)模型,并進(jìn)行了實(shí)證研究。
[關(guān)鍵詞] BP神經(jīng)網(wǎng)絡(luò);現(xiàn)金流量;實(shí)證研究
[中圖分類(lèi)號(hào)]F232;F275[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2008)06-0039-02
一、神經(jīng)網(wǎng)絡(luò)反向傳播算法(BP算法)的基本原理
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法有許多種,比如反向傳播(BP)算法、Hopfield算法等。其中在非線性分類(lèi)中最常用的是BP算法。其學(xué)習(xí)的目的就是對(duì)某一特定的輸入產(chǎn)生一個(gè)希望的輸出,這就需要網(wǎng)絡(luò)不斷地調(diào)整連接線的權(quán)值。一般說(shuō)來(lái),BP算法的步驟如下 :(1)對(duì)全部連接線的權(quán)值進(jìn)行初始化,一般設(shè)置成較小的隨機(jī)數(shù),以保證網(wǎng)絡(luò)飽和或反常的情況;(2)取一組訓(xùn)練數(shù)據(jù)輸入網(wǎng)絡(luò),并計(jì)算出網(wǎng)絡(luò)的輸出值;(3)計(jì)算該輸出值與期望值之間的偏差,然后從輸出層反向計(jì)算到第一隱含層,向著減少該偏差的方向調(diào)整各條線的權(quán)值;(4)對(duì)訓(xùn)練集中的每一組訓(xùn)練數(shù)據(jù)都重復(fù)步驟(2)、(3),直到整個(gè)訓(xùn)練的偏差達(dá)到能被接受的程度為止。
二、現(xiàn)金流量分析的輸入向量與輸出向量的設(shè)計(jì)
按財(cái)務(wù)分析理論,現(xiàn)金流量因素分析指標(biāo)體系一般包括以下5個(gè)指標(biāo):現(xiàn)金流量總值、經(jīng)營(yíng)活動(dòng)現(xiàn)金流量、投資活動(dòng)現(xiàn)金流量、籌資活動(dòng)現(xiàn)金流量以及非經(jīng)常性項(xiàng)目活動(dòng)現(xiàn)金流量,這5個(gè)指標(biāo)即為輸入指標(biāo)。現(xiàn)金活動(dòng)流量因素的輸出共有兩種,分別為:充足、不足。
在現(xiàn)金流量的分析中,僅僅考慮現(xiàn)金流量的組成與來(lái)源是不夠的,還要考慮時(shí)間的因素,即要考慮時(shí)間序列分析,而且,行業(yè)因素也是不可忽略的因素,所以本文采用以下形式的數(shù)據(jù)標(biāo)準(zhǔn)化方法:BP網(wǎng)絡(luò)輸入值=企業(yè)實(shí)際值/行業(yè)標(biāo)準(zhǔn)值。由于行業(yè)的標(biāo)準(zhǔn)值是隨時(shí)間變化的,因此通過(guò)這樣的變換,可以兼顧行業(yè)和時(shí)間因素。一個(gè)指標(biāo)對(duì)應(yīng)一個(gè)輸入結(jié)點(diǎn),則輸入結(jié)點(diǎn)數(shù)定為5個(gè)。現(xiàn)金流量分析的輸出結(jié)果有兩個(gè),即充足和不足。這樣一個(gè)輸出對(duì)應(yīng)于一個(gè)輸出節(jié)點(diǎn),則輸出節(jié)點(diǎn)定為兩個(gè)。一般說(shuō)來(lái),中間節(jié)點(diǎn)的個(gè)數(shù)應(yīng)該小于輸入節(jié)點(diǎn)數(shù),而大于輸出節(jié)點(diǎn)數(shù),所以無(wú)需通過(guò)公式計(jì)算,中間節(jié)點(diǎn)的個(gè)數(shù)定為3個(gè)。

本文準(zhǔn)備的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)及結(jié)果如表1所示,本文的目的是分析公司5的現(xiàn)金流量狀況如何。
由于公司現(xiàn)金流量狀況包括兩種模式,因此可采用如下的形式來(lái)表示輸出:充足:(1,0);不足:(0,1)。
三、BP神經(jīng)網(wǎng)絡(luò)模型對(duì)現(xiàn)金流量因素分析的Matlab程序?qū)崿F(xiàn)
按問(wèn)題的要求,公司1,2,3,4為訓(xùn)練數(shù)據(jù),公司5為測(cè)試數(shù)據(jù),筆者編制如下神經(jīng)網(wǎng)絡(luò)優(yōu)化算法分類(lèi)程序存放在M文件wl.m中。
%神經(jīng)網(wǎng)絡(luò)優(yōu)化wl.m文件
%P中的數(shù)據(jù)為訓(xùn)練數(shù)據(jù)
P=[0.9208633091 0.702005731 1 0.667857143;1 0.759689922 0.535816619 0.659793814 1;0.762589928 0.483204134 1 0.728522337 0.832142857;0.111510791 0.105943152 0.080229226 0.199312715 0.260714286]';
%T中的數(shù)據(jù)為分類(lèi)數(shù)據(jù),(1,0)表示充足 ,(0,1)表示不足。
T=[1 0;1 0;1 0;0 1]';
%cs表示神經(jīng)網(wǎng)絡(luò)的輸入向量的最大值和最小值,即范圍為[0,1]
cs=[0 1;0 1;0 1;0 1;0 1];
%創(chuàng)建神經(jīng)網(wǎng)絡(luò),輸出層為2個(gè),隱含層為3個(gè)(注意:這個(gè)數(shù)可不斷地用計(jì)算機(jī)來(lái)測(cè)試,這里選3),隱含層的神經(jīng)元的傳遞函數(shù)采用S型正切函數(shù)tansig,輸出層的神經(jīng)元的傳遞函數(shù)采用S型對(duì)數(shù)函數(shù)logsig,這是由于輸出模型是(0,1),正好滿足網(wǎng)絡(luò)的輸出要求。
net=newff(cs,[3,2],{'tansig','logsig'},'trainlm');
%網(wǎng)絡(luò)的訓(xùn)練次數(shù)
net.trainParam.epochs=1000;
%網(wǎng)絡(luò)訓(xùn)練的精確度為1%
net.trainParam.goal=0.01;
%網(wǎng)絡(luò)的學(xué)習(xí)速率為0.1
LP.lr = 0.1;
%開(kāi)始訓(xùn)練
net = train(net,P,T);
%測(cè)試數(shù)據(jù)
P_test= [0.154676259 0.074935401 0.077551020.140893471 0.207142857]';
%模擬仿真結(jié)果
Y=sim(net,P_test)
在Matlab狀態(tài)下執(zhí)行m文件,得到如下結(jié)果:
TRAINLM, Epoch 0/1000, MSE 0.305416/0.01, Gradient 1.30641/1e-010
TRAINLM, Epoch 2/1000, MSE 0.00596585/0.01, Gradient 0.0610003/1e-010
TRAINLM, Performance goal met.
Y =(0.005 3,0.987 9)
可見(jiàn),經(jīng)過(guò)2次訓(xùn)練,網(wǎng)絡(luò)的性能就達(dá)到了要求,如圖1所示。收斂速度快的一個(gè)重要原因在于學(xué)習(xí)速率LP.lr = 0.1的設(shè)定值比較大。

結(jié)論分析:經(jīng)過(guò)測(cè)試,人工神經(jīng)網(wǎng)絡(luò)的輸出結(jié)果
(0.005 3,0.987 9)與目標(biāo)值(0,1)的誤差在0.01允許范圍內(nèi),效果較好,結(jié)論表明:公司5的現(xiàn)金流量不足。
主要參考文獻(xiàn)
[1] 朱順泉. 統(tǒng)計(jì)與優(yōu)化應(yīng)用[M]. 北京:清華大學(xué)出版社,2007.
[2] 飛思研發(fā)中心. 神經(jīng)網(wǎng)絡(luò)理論與Matlab 7實(shí)現(xiàn)[M]. 北京:清華大學(xué)出版社,2005.