前言:企业陷入财务风险是一个循序渐进的过程,不同程度的财务风险,其症状和表现不一。随着大数据时代的到来,信息的重要性越来越受到决策者的重视。我国上市公司在飞速发展的同时,也不断地受到各种外界风险的冲击,如何能够对上市公司的财务风险进行有效预警,是许多决策者和研究者面临的难题。本文介绍智能财务风险预警方法BP神经网络。“大数据与人工智能环境下的智能财务风险预警方法”系列推文二:BP神经网络
近年来,AlphaGo击败了人类职业围棋选手,激起了全球范围内对人工智能的关注。作为目前最接近实现人工智能的算法,机器学习随之兴起形成热潮。可以看出随着学习程度的深入AlphaGo的技术变得更为高级,甚至变得更为“人性化”的有的放矢。其实在其他领域也是一样,随着神经网络学习数据库的范围变大,学习程度的深入,使得神经网络在更多领域得到运用,神经网络正在成为一种有效的工具。由于财务风险预警的复杂性以及对决策的重要影响,国内外有大量的研究预测工作,采用各种方法来优化财务风险预警模型。大数据时代到来,IT技术发展使得信息化程度越来越高,各种信息涌向企业,在激烈的市场竞争中,谁的信息化管理水平高,谁就能掌握主动权
1.BP神经网络原理
人工神经网络是一种数学模型,它具有人类神经网络的一些特质,并且有自学习的能力,一般由MATLAB软件来实现。与传统统计方法不同之处是神经网络是通过训练实验来找到解决问题的路径。神经网络的训练过程,由特定的算法构成,提供了理想的学习样本,训练后,输入和输出足够数量的例子,知道达到收敛。直至使神经网络的输出和理想输出之间的误差达到极小的状态。就可以将经过训练的模型用于解决相同类型的问题了。人工神经网络各层结构之间的关系是非线性的映射。非线性等的分类问题也可以通过神经网络来解决。人工神经网络有着优秀的自学习能力,可以任意精度逼近我们所设定的非线性函数关系。神经网络的传播方式有两种,即正向和反向。正向传播是指神经网络从输入层到隐藏层,经过信号传播到输出层,将输出层得到的结果与期望值对比,如果是最后所希望的结果,则该算法终止,否则反向传播。反向传播是逆运算,误差信号输出样本和网络出口按原连接路径通道以前权值和阈值调整,误差信号将描述采用一般梯度下降法来计算反向连接,用于调节还原。BP神经网络模型一般的结构有三层包括输入(input)、、输出(output layer)和隐层(hide layer)。如图所示:
反向传播是通过一个层级来计算每层级中的输出误差输出层神经元已经从第一层开始,误差梯度下降算法调整每一层和阈值的功率,因此,对网络内部的不断修正可使最终输出可以接近到预期。
2.BP神经网络的优势与不足
构建企业的智能财务风险预警模型,可以使企业尽可能的避免财务风险带来的损失,预防经营失败的情况出现。相比于以往的财务风险预警方法,BP神经网络准确性高,误差更小,BP神经网络更可贵的一点是它具有收敛性,可以让系统误差达到任何我们所要求的精度。
通过对目标数据的学习,不断调整模型内各个参数,找到最优参数组合,达到稳定的低误差状态,而正是这种自学习能力使研究避免了人为赋权等非客观因素的出现,大大提高了预测的准确性、科学性。BP神经网络具备非线性映射能力,实质上实现了一个从输入到输出的映射功能,数学理论证明三层的神经网络就能够以任意精度逼近任何非线性连续函数。这使得其特别适合于求解内部机制复杂的问题。
此外BP神经网络在训练时,能够通过学习自动提取输出、输出数据间的“合理规则”,并自适应的将学习内容记忆于网络的权值中。即BP神经网络具有高度自学习和自适应的能力。还可以进行动态性预测,如果需要随时加入或者减少比较样本,该模型可以进一步学习并且进行动态跟踪比较。
随着应用范围的逐步扩大,BP神经网络也暴露出了越来越多的缺点和不足,比如局部极小化问题,从数学角度看,传统的 BP神经网络为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整的,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上BP神经网络对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是很多学者每次训练得到不同结果的根本原因。
BP 神经网络算法的收敛速度慢:由于BP神经网络算法本质上为梯度下降法,它所要优化的目标函数是非常复杂的,因此,必然会出现“锯齿形现象”,这使得BP算法低效;又由于优化的目标函数很复杂,它必然会在神经元输出接近0或1的情况下,出现一些平坦区,在这些区域内,权值误差改变很小,使训练过程几乎停顿;BP神经网络模型中,为了使网络执行BP算法,不能使用传统的一维搜索法求每次迭代的步长,而必须把步长的更新规则预先赋予网络,这种方法也会引起算法低效。以上种种,导致了BP神经网络算法收敛速度慢的现象。
除此之外,还存在结构选择不一、预测能力和训练能力的矛盾、对样本依赖性等问题。
虽然神经网络模型的理论较为抽象,科学性和准确性有待提高,以及会出现局部极小化、收敛速度慢等问题,但诸多学者的研究已经证明了神经网络方法所构建的模型比多元判别分析模型、逻辑模型以及决策树模型等具有更精确、更稳定的特点,而且没有严格假设,有很强的容错性、学习能力和纠错能力。因此,在构建智能财务风险预警模型时选择使用BP神经网络能够克服传统集成预测方法的不足,为公司高管提供有效的决策信息。
3.BP神经网络的设计和创建
与多数神经网络不同,BP神经网络是多隐含层的,隐层至少在一个或者一个以上,而其他大部分神经网络是给定网络结构层数的,搭建一个完整的BP 神经网络一般需要对六个方面明确,分别是输入层、输入层与隐含层之间的传递函数、隐含层、隐含层与输出层之间的传递函数、输出层和网络参数。
首先,设计输入层 ,BP神经网络的输入层节点个数一般等于输入向量的维数,网络的各个输入数据常常具有不同的物理意义和不同的量纲,变化范围各异,尺度变换使网络训练一开始就给各输入分量以同等重要的地位,一般来说,输入量的选取对输出量影响大而且能够检测。
输出层代表系统要实现的目标功能,实际上是网络训练的期望输出,分类问题中的输出变量多为语言变量。设计智能财务风险预警模型,可以将企业财务状况划分为财务正常、财务危机两种状态,则可以将输出层的节点数目设定为1,输出“1”代表公司存在财务危机,输出“0”代表公司财务正常。
隐含层单元数并没有统一的理论指导,只能通过反复调试最终确定。节点太少,不能体现样本中的规律;节点过多,又可能出现“过度吻合”的现象,需要对 BP 神经网络反复调试。理论分析已经证明,在不限制隐层节点的前提条件下,具有单隐层的前馈神经网络可以映像所有连续函数。在设计多层前馈网络时,一般来说先考虑设计一个隐层。虽然说增加隐层数可以降低网络误差,提高精度,但是也会使网络复杂化,从而增加了网络的训练时间甚至有“过拟合”的倾向。但是实际上,我们可以同时增加隐层的节点来改善这个问题,不需要多设置一个隐层。隐含层节点的作用是从样本中提取并储存其内在的规律,每个节点有若干个权值,而每个权值都是增强网络映像能力的一个参数。一般来说,如果一个神经网络的隐含层包含有无数隐含层节点,那么该神经网络可以实现从输入到输出的任意精度的非线性映像。但是现实中我们无法实现无数个隐含层节点,我们必需根据需要确定隐含层节点数。一方面,如果节点数设置的太少,网络从样本中获取信息的能力就差,不足以概括和体现训练集中的样本规律;另一方面,隐含层节点数量过多,则有可能把非规律性的内容,如噪音也学会记牢,从而出现“过拟合”的现象,反而降低了神经网络的泛化能力。此外,隐含层节点数量太多还会增加训练时间。因此,设置多少个隐含层节点取决于训练样本的多少、样本噪声的大小以及样本中蕴含规律的复杂程度。确定最佳隐含层节点数的一个常用的方法成为试凑法,可以先设置较少的隐含节点训练网络,然后逐渐增加隐含层节点数,用同一样本集进行训练,从中确定网络误差最小时对应的隐含层节点数。在适用试凑法的时候,可以用一些确定隐含层节点数的经验公式。
传递函数:神经元的传递函数反映了神经元输出与其启动状态之间的关系,例如tansig,其功能是正切sigmoid传递函数,而purelin是纯线性传递函数。BP神经网络的学习规则,即权值和闭值的调节规则采用的是误差反向传播算法。算法实际上是一算法在多层前向神经网络中的推广网络的权值和闭值,通常是沿着网络误差变化的负梯度方向进行调节,最终使网络误差达到极小值或最小值,即在这一点误差梯度为零。限于梯度下降算法的固有缺陷,标准的BP学习算法通常具有收敛速度慢、易陷入局部极小值等缺点。MATLAB神经网络工具箱提供了一系列快速学习算法,一类是采用启发式学习算法,如引入动量因子的学习算法函数(traingdm)、变学习速率学习算法(traingda)和“弹性”学习算法(trainrp)等。另一类则是采用更有效的数值优化算法,该算法优点是收敛最快,占用空间又小,但性能只随网络训练误差减小而变差。如共轭梯度学习算法(包括traincgf、traincgp、trainscg、traincgb),quasi-Newton算法包括trainlm等,其中trainlm算法优点在于收敛快且误差小,但占用存储空间较大,性能随网络规模增大而变差。
设计网络参数,即对目标误差、学习速率、训练最大循环迭代次数进行确定。最后用MATLAB语言构建一个的BP神经网络结构作为财务预警模型。
4.BP神经网络的训练和检验
设计完成预警模型之后,就需要将样本用于训练和检测。神经网络的性能与训练用的样本密切相关,设计一个好的训练样本集既要注意样本规模,又要注意样本质量。第一,训练样本数的确定。一般来说训练样本越多,训练结果越能正确反映其内在的规律。但样本的收集整理又往往受到客观条件的限制。此外,当样本数量多到一定程度的时候,网络的精度也很难再提高。实践表明,网络训练所需样本数取决于输入输出非线性映像的复杂程度,映像关系越复杂,样本中含的噪声就越大,为保证一定映像精度,所需要的样本数就越多,而网络的规模也越大。因此,一般训练样本应当是网络连接权总数的五倍到十倍。第二,样本的选择与组织。一个待建模系统的输入输出就是神经网络的输入输出变量。训练和检验的样本要具有一定的代表性,在尽可能考虑样本模式间的平衡前提下,正确评价网络模型的性能和泛化能力。通过对神经网络模型进行学习和仿真,对检验样本得到综合正确率的理想效果,通过检验结果,判断模型对公司的财务风险识别效果。
BP算法程序流程图如下:
5.BP神经网络应用于智能财务风险预警
智能财务风险预警体系,首先要建立起预警指标体系。建立科学有效的财务预警功能的关键在于找出哪些财务指标能够揭示或预示公司财务状况的变化。在多指标体系中,各个指标之间具有不同的单位、不同的数量级,所以基于这种情况是不能直接用来比较分析的,所以在处理数据的第一步就是将原始数据进行标准化处理,使之具有相同可比的数量级,有了这个基础,才能顺利地进行后续的研究。
通常在偿债能力、盈利能力、营运能力、现金相关指标、资本结构、资产管理能力、扩张能力、市场价值维度、公司治理指标等方面以及引入非财务因素选择一级指标。根据构建智能风险预警模型的思路筛选指标,也可以通过一些科学方法对指标进行筛选,例如运用Kruskal-Walis H检验指标对于公司财务风险的预测是否显著。最后从总项目抽取相应的指标,组成智能财务风险预警指标体系。通过层次聚类分析法将公司的财务风险等级进行分类,并通过显著性检验。BP神经网络的结构设计主要是确定输入输出层节点数和网络的隐层数、隐层节点数。隐层数及隐层节点数的选择要视指标而定,避免进行局部最小,由指标选择数确定输入层节点数,通过综合功效系数所在的警度区间选择输出节点数。对于多层前馈网络来说,隐层节点数的确定是成败的关键。若数量太少,则网络所能获取的用以解决问题的信息太少;若数量太多,不仅增加训练时间,更重要的是隐层节点过多还可能出现所谓“过渡吻合”(Overfitting)问题,即测试误差增大导致泛化能力下降,因此合理选择隐层节点数非常重要。关于隐层数及其节点数的选择比较复杂,一般原则是:在能正确反映输入输出关系的基础上,应选用较少的隐层节点数,以使网络结构尽量简单。假设有 n 个输入节点,m 个输出节点,则根据经验公式选择隐层节点数为:
式中: a 为 1 到 10 之间的常数。
传递函数是一个神经元及网络的核心,网络解决问题的能力与功效除了与网络的结构有关,在很大程度上取决于所采用的传递函数。通过上文介绍的方法,找到最佳参数组合之后,对设计的BP神经网路模型进行检验,经过多次迭代,将每次得出的结果进行统计,最后分析 BP 神经网络模型用于公司的智能财务风险预警的准确率及可行性。财务风险的预警有助于投资者进行投资决策、有助于企业管理层加强内部控制并改善经营管理。智能财务风险预警体系利用BP神经网络的非线性映射能力和自学习能力,通过分析历史财务指标数据,进行风险预警,也很好的解决了对指标赋权过于主观化的不足。
经邦大数据致力于数字赋能用户,实现风险可控下的运营价值最大化。目前已经在集团企业决策支持平台、AI分析建模平台、移动应用平台和大数据集成平台上取得丰硕成果,司企共建一批全国样板客户案例,获得业界良好口碑。基本企业全面风险管控体系的基础内控系统建设梳理与咨询指导、核心风控系统的开发建设与实施落地、评价优化系统的监督评价与优化改进等服务,最终实现企业风控目标与战略目标的统一。