基于MATLAB的BP神经网络企业财务模型优化分析
2018-03-05章银平
章银平
(安徽财贸职业学院,安徽合肥 230601)
企业财务管理是整个企业资金运行控制中心,其运行状况与整个企业运转密切相关,随着经济一体化不断发展,企业经营过程中存在的不确定性逐渐增强,在此基础上导致的财务风险不断增多,因此需要对财务管理进行有效管理,降低财务困境出现的可能性[1]。大数据背景下需要通过计算机技术对企业财务管理进行仿真分析,建立企业财务模型,在其运行过程中对企业未来财务运行多种情况进行综合性分析,并制定对应预警措施,降低企业未来运转过程中可能存在的风险[2]。
1 模型构建理论
BP神经网络是一种智能化算法,其结构一般包括三层或以上的网络结构,层与层之间通过神经元实行权相连,即该结构中所有单元与上层单元均实现连接,而每层各神经元之间并无相互连接。通过BP神经网络可实现对所有问题的游侠训练,在实际运行过程中向网络中输入样本,通过一定算法对其进行训练处理,求解对应问题。图1为当前使用最为广泛的网络结构,其结构部分主要包括输入层、输出层、隐层构成,其中输入层和输出层分别代表样本输入和结果输出,隐层可以是一层,也可是多层。
图1 BP神经网络结构示意图
本研究模型通过BP神经网络对企业财务模型的运行过程进行分析,系统实际运行流程步骤如下:
步骤一:首先对其网络权值以及阈值等进行初始化处理。
步骤二:计算出参数总误差,其计算公式可表达为:
(1)
(2)
步骤三:取一个样本作为网络输入,将其按照公式(3)进行数据处理,
(3)
其中,Oj表示输出,并规定O0=-1,woj=θ(阈值),i和j表示的是信号源方向相邻层节点。之后按照输入到输出的顺序进行所有连接权值wij的修正处理,可将该过程表示为:
wij(t+1)=w(t)+ηδjOi.
(4)
(5)
对于不同节点而言,在其输出侧有连接的节点个数,在神经网络算法中通过δj表示节点j的误差,其在计算过程中主要由于算法在实际运行过程中需进行下述步骤:
(6)
(7)
当其为中间节点时,可将其表示为:
(8)
对输入到系统中的所有样本数据进行重复处理,之后进入步骤二。
2 基于MATLAB的BP神经网络模型构建
2.1 构建模型
图2 BP神经网络企业财务模型
企业财务模型如图2所示,在实际运行过程将样本输入到系统中,样本主要来自于企业经营过程中的各项财务报表,所有与财务相关的信息均可作为样本,并可将该系统连接至互联网,通过数据挖掘获取最新市场信息,均可将这些信息作为企业财务模型决策的依据。样本输入到系统后经过初步学习过程进行数据格式化以及有效化处理,在通过神经网络学习对其进行训练处理,使之成为系统决策基础,之后便可对企业财务进行预警、预决策等。本系统在构建过程中主要设定以下参数:
①财务管理系统的软件开发的硬件环境,是通过应用服务器、数据库服务器和高性能的PC组成一个B/S的三层架构方式,同时通过路由器建立企业内部的局域网。
②系统平台财务管理系统采取的三层体系架构,是基于J2EE的web的服务器平台。
数据库服务器:Oracle;
服务器端操作系统:Windows 2016 Advance Server;
应用服务器:Tomeat 6.0;
客户端浏览器:Mierosoft IE 6.0以上。
③开发环境
操作系统:Window 2016;
数据库:Oracle;
开发语言:J2EE。
2.2 拓扑结构
网络拓扑结构的设计主要包括隐层数、隐层节点数及输入输出层节点数的确定。在构建网络拓扑结构过程中采用3层网络结构,结构中仅仅含有一个隐层。该结构中输入输出层节点数主要由财务模型问题决定。构建的BP神经网络企业财务模型如图3所示,其中(xt,xt+1,…,xt+n-1)表示的是n个输入,xt+n-1表示的是输出,其隐层节点数为r(1 图3 BP神经网络企业财务模型拓扑结构 图4 企业财务网络功能层次模型 企业财务网络功能层次模型如图4所示,该模型主要由3个层次构成,该结构在处理企业财务数据过程中具有较高效率,并且可实现对众多数据的有效分析,以上网络层次可有效提升整个系统运行效率,尤其是在数据训练过程中可有效减少单个周期的循环时间,在指定时间内完成相应训练[3]。 系统中的数据库主要采用Oracle系统作为基础,数据库中的数据需经过中间层处理,用户可通过数据库对各种数据进行访问和存储,其余财务管理所有数据均可存储于数据库中。为保证企业财务数据的安全性,在设计数据库过程中采用分层数据库模式,设定一般数据库、核心数据库两种模式,其中一般数据库主要存储一般信息,核心数据库则用于存储企业机密财务信息,并具备较高级别安全系数。 图5 数据库结构 如图5所示,在数据库结构中可与用户终端连接起来,为用户提供多种财务管理服务方案,并且在实际分析过程中还可结合用户访问系统的历史生成管理日志,结合BP神经网络进行数据训练,并结合Web进一步提升数据训练效果。同时,该数据库还设有外接端口,可对其进行容量扩展和功能扩展,促进系统能够适应后续需求变化和技术变化,不至于在短时间内无法满足发展需求[4]。 MATLAB中的数据类型一般表示为矩阵形式,其本质是一种数学软件,可通过数学表达方式将各种数据表达出来,具有简化数据运算过程的优点。尤其是在重复结算数据方面具有无可比拟的优点。本研究构建基于MATLAB的BP神经网络企业财务模型,通过MATLAB中的trainbpx实现BP神经网络企业财务模型的算法运行过程。一般而言,在实际运行过程中并不能清晰了解神经元个数,因此在数据处理过程中对不同神经元进行训练处理,结合共轭梯度对隐单元个数的求解,可将其表示为[5]: (Si+1)Sh-(Sh-1)So=npSo. (9) 其中,Si为输入单元数量;Sh为隐单元数;So为输出单元数量;np为训练样本数量。在系统运行过程中需要对算法进行修正,本研究选择δ学习规则,主要运行步骤如下: 步骤一:设定一组数据初始权值wij(0); 步骤二:计算某输入模式下的实际输出及期望输出误差值; 步骤三:对数据权值进行有效更新,更新公式为: wij(t+1)=wji(t)=η[dj-yj(t)]xj(t). (10) 其中,η表示学习因子,通过dj和yj表示系统中对应j编号的神经元输出,分别为期望输出和实际输出,xj表示神经元输入部分。 步骤四:完成以上步骤后再返回步骤二,直至完成所有数据的训练。 在构建模型过程中通过MATLAB构建出人机交互系统环境,系统中数据处理为矩阵形式,运用该种方式可提升系统运行效率,通过MATLAB中的trainbpx可随意更换多种算法程序,满足实际需求。结合BP神经网络算法,对激活函数以及其训练函数进行有效编程: Net=newff(minmax(p),{},{’myfunc’,’purelin’},’mytrainfunc’) Net.trainparam.epochs=20000; Ner, trainparam. goal=0.0002; Ner=train(net,p.t); 在该系统程序中,myfunc和mytrainfunc表示优化后的函数,该程序便是优化后的程序部分。将前文设定的几项财务指标输入到系统中,并对相应算法进行更新处理,在系统中进行自适应学习和训练后便可进行有效收敛,之后将得到的矩阵输出至隐含层。 系统在实际运行过程中需要具备财务数据处理、统计分析等功能,通过该软件可对财务数据进行有效性分析,消除无效数据,并对总数据进行汇总分析,提炼出数据精华部分。当出现危机情况时,系统便会根据相应信息制定出预警方案,并将提醒发送至客户终端,最大限度地降低企业受到的损失。 基于MATLAB的BP神经网络财务模型可对企业运行中的各项决策进行分析,对企业财务状态进行时间点探究。当前,众多企业为保证自身利益,在财务管理过程中会出现一些漏洞,企业财务决策者往往无法从中发现有效信息。本研究建立的财务模型不仅可实现数据分析,还能在数据分析的基础上实现预警,对未来可能出现的某些情况进行预测。 为研究经济模型的有效性,通过网络收集证券交易所的财务数据信息,进行数据分析。选择2013-2015年数据作为样本,并对2015年之后的两到三年进行预测。选择5家上市公司作为研究对象,并选择另外5家作为对比对象,因此本研究选择的总样本数量为10家。根据这10家企业的实际运行情况,将其分为常规状态企业以及危机状态企业。设置常规状态企业编号为01~05,危机状态企业编号为A~E。 在前文建立的网络模型基础上构建可反映以上财务指标的财务模型,该模型在实际构建过程中主要包括输入层、隐含层、输出层3个方面,一共有8个财务指标,并在模型输出层设置两个节点,通过节点主要是研究对象的输出部分。在财务模型中不同层次代表相应参数,其中输入层表示的是财务指标,隐含层表示警情指标,输出层表示企业财务状态。由此可见,在模型运行过程中可通过BP神经网络建立财务预警系统,并设定三层神经网络结构,通过MATLAB进行有效仿真。将总资产收益率、流动比率、速动比率、总资产周转率、应收账款周转率、资产负债率、经营净现金比率、净利润增长率8个指标分别表示为a~h。在模型仿真过程中输入到系统中的数据如表1和表2所示,其中表1表示的是常规状态企业的财务数据,表2表示的是危机状态企业的财务数据。 表1 常规状态企业的财务数据 表2 危机状态企业的财务数据 在实际运行过程中系统主要通过共轭梯度进行分析,并通过式(9)进行隐单元个数的求解,解出隐含层神经元个数为14个,选择学习因子η=0.1,结合实际情况设定期望误差为0.0002,以Tansig作为特征函数,设置矩阵形式分别为8×14和14×2两种,并且满足整体函数需求,设定函数运行循环最大次数为18000次,并设定运行间隔为50。 系统采用MATLAB 6.5进行神经网络系统的有效分析,首先建立对应的M-File文件,之后建立对应连续函数,在MATLAB中采用Premnux函数进行数据处理,通过共轭梯度进行数据训练。本次系统运行一共展开15200个学习周期便达到其对应的期望误差,系统运行最终结果见图6。 (a)网络误差性能曲线 (b)运行2500次迭代结果 (c)152000次训练后结果图6 系统运行情况 从图6(a)可发现该网络误差性能曲线具有收敛性,并且从运行情况来看其运行结果的期望误差小于0.0001,本研究设定的经济模型较为合理。再对其运行2500迭代以及152000次训练如图6(b)和图6(c)所示,其运行结果均满足实际情况,因此可将该模型应用于实际财务分析。 对数据进行训练得出网络层权值以及阈值,设定输入层—隐含层权值矩阵表示为w1,阈值矩阵为b1;隐含层—输入层权值矩阵表示为w2,阈值矩阵为b2。在此基础上可展开训练,对其进行预判处理,得到最终结果见表3。 表3 BP神经网络财务模型判别结果 通过模型分析可得出在2015年之后的企业发展状况,这些企业的预期输出与实际输出较为一致,即通过本模型可对企业运行状况进行有效研究,并可对企业未来运行情况进行预测分析,具有良好的预警效果。 本研究建立基于MATLAB的BP神经网络企业财务模型,对企业财务运行情况进行有效分析。模型运行过程中基于BP神经网络构建出数据处理结构,通过MATLAB进行仿真。收集历史数据作为测试样本数据,针对5家常规状态企业和5家危机状态企业展开测试。研究结果表明,预期输出与实际输出较为一致,该模型具有一定实用性,可为企业财务运行预警提供有效参考。 [1]刘斌.基于Matlab的BP神经网络环渤海动力煤价格指数预测模型[J].神华科技,2015,13(6):3-6. [2]师宁焉.Matlab仿真平台下大坝位移BP神经网络模型研究[J].东北水利水电,2015,33(5):49-50. [3]王娟,杨雪.基于BP神经网络的房地产业上市公司财务绩效评价模型研究[J].商,2015(11):127. [4]周建强,李玉娜,屈卫东,等.基于风速时空信息的BP神经网络超短期风速预测研究[J].电网与清洁能源,2015,31(1):109-112. [5]陈勇.基于遗传神经网络成绩预测的研究与实现[J].现代电子技术,2016,39(5):96-100.2.3 数据库结构
2.4 基于MATLAB的企业财务模型仿真
3 模型运行实证研究分析
3.1 研究对象及数据来源
3.2 模型测试
4 结语