BP神经网络在工程机械公司客户信用评级中的应用研究

BP神经网络在工程机械公司客户信用评级中的应用研究
BP神经网络在工程机械公司客户信用评级中的应用研究

BP神经网络在工程机械公司客户信用评级中的应用研究

颜菲

[摘要] 信用交易在给企业带来巨大的经济效益的同时,也给企业带来了巨大的经营风险,这就使得企业必须加强客户的信用管理。作为信用管理的第一步,如何对客户进行客观公正的信用评级一直是企业需要解决的问题。本文从企业目前的信用销售状况入手,应用神经网络技术创建客户信用评级模型,探寻与客户信用表现密切相关的因素。

[关键字] 指标体系信用评级 BP算法 LM算法

[作者简介] 颜菲,女,柳州运输职业技术学院信息工程系讲师。广西柳州,545007

一、绪论

我国加入WTO,不仅为国内的企业带来了发展的机遇,同时也使许多企业感受到了来自国内外的激烈竞争。在买方市场条件下,企业要想扩大销售、增强市场竞争力主要有三种手段:提高产品质量、降低产品价格和提供优惠的结算方式[1]。随着信息技术的快速发展,企业在产品质量和价格上的竞争空间变得越来越小,因此,采用提供优惠的结算方式便成为企业取得竞争优势的关键因素。也就是说企业要转向更具竞争力的信用销售方式。赊销是目前国内企业主要采取的信用销售方式。然而,赊销是把双刃剑,它在提高卖方企业竞争力的同时,也给卖方企业带来了巨大的信用风险。因此企业在进行赊销的同时,必须建立严格的信用管理制度,积极引进适合企业实际情况的客户信用评级模型,加强对客户的信用管理,从而帮助企业防范信用风险。

建立客户信用管理系统,最核心的是对客户信用进行评级。对客户进行信用评级本质上是属于综合评价中的分类与排序问题。在数据挖掘技术中最常用的分类方法有:贝叶斯、决策树、人工神经网络。其中神经网络技术可实现非线性关系的隐式表达,不需要建立复杂的线性关系和数学模型,并且容错性好,可以处理数据、信息不全的预测问题,即使在数据样本有缺失的情况下,也能较好地解决问题。

本文以柳州某工程机械公司(以下简称为L公司)为研究对象,运用BP神经网络技术,建立适合L公司的客户信用评级模型,帮助L公司加强对客户的信用管理,有效地挖掘客户资源,减少公司的信用风险。

二、BP神经网络

(一)BP算法

在人工神经网络技术中,能实现分类功能的主要是前馈神经网络。前馈神经网络是一种典型的分层结构,信息的处理是从输入层开始,经隐含层最后再到输出层。前馈神经网络通过“学习”,改变神经元与神经元之间的连接强度即连接权值,从而获得某种功能特性。前馈神经网络最经典的学习算法是BP算法。BP算法的主要思想是将学习过程分成正向传播和误差反向传播两个过程[2],BP算法具体过程可归纳如下[3]:

步骤1 选定n个样本,作为训练集;

步骤2 权值、阀值初始化,即对神经网络中所有的权值、阀值进行初始化,初始值通常设为(-1,1)之间的随机数;

对训练集中的每个样本进行如下的处理:

步骤3 将作为输入层的数据按照各个连接权重的大小加权输入至隐含层的激活函数,然后再得到新的值,按照各个连接权重的大小加权输入至输出层的激活函数,计算出输出层的输出

结果;

步骤4 如果输出结果与预期的结果有误差,计算训练误差;

步骤5 调整权值和阈值。

步骤6 按新权值与阈值计算各层的输出,直至训练集满足停止条件为止。

(二)BP 算法的改进

BP 算法由于自身的原因不可避免地具有收敛速度慢和极易陷入局部极小值等缺陷,因此,通常需要对BP 算法进行改进。对BP 算法进行改进的方法比较多,本文主要采用的是用LM 算法来改进BP 算法。LM 算法属于一种利用标准的数值优化技术的快速算法,其形式如下:

[

])()()()(1x e x J l x J x J x T -+-=?μ

式中,μ)0(>μ为比例系数,l 为单位矩阵,)(x J 为Jocobain 矩阵,即:

=)(x J n N

N N n n x x e x x e x x e x x e x x e x x e x x e x x e x x e ??????????????????)()()

()()()

()()()

(212221

212111

从上式可见,如果μ取值很大,则LM 算法接近梯度下降法。每迭代成功一步,则μ的值减少一些,在接近误差目标的时候,则逐渐与高斯-牛顿法相似。由于LM 算法利用了近似的二阶导数信息,因此它比梯度下降法快得多。

三、客户信用评级模型的创建

(一)建立客户信用评级指标体系

要对客户进行信用评级,首先要建立客户信用评级指标体系。在建立指标体系时要遵循全面性、针对性、科学性、公正性、合法性、可操作性等原则。本文在综合考虑以上的原则并参考了其他行业对客户进行信用评级所使用的指标,选取了适合L 公司的影响客户信用评级的指标,经过多次的实验,将那些对评级结果影响甚小的指标去掉,最后本文从历史信用表现、盈利能力、管理水平和发展潜力四个大的方面来考查客户的信用能力,主要因素如下所述:

(1)历史信用表现 主包括两个指标:经营时间和以往还款情况。

(2)盈利能力 包括了企业收入规模、资产负债率、应收账款周转率、速动比率、净资产收益率、流动比率、净利润率、总资产周转率、存货周转率等九个财务指标。

(3)管理水平 管理水平包括了领导者的信用状况、内部管理水平、信用管理水平三个指标。

(4)发展潜力 包括了服务质量和市场认可程度、市场份额两个指标。

(二)数据的收集

由于各指标对客户信用的影响程度不同,本文首先制定了客户信用评分标准。由于在建立的L 公司的客户信用评级指标体系中,盈利能力中9个指标和经营时间指标属于定量指标,可以从L 公司的客户财务报表中获得相关数据,再依照不同的计算公式计算得到。而服务质量和市场认可程度、市场份额、领导者的信用状况、内部管理水平、以往还款情况和信用管理水平属于定性指标,需要L 公司的销售业务人员对客户进行准确客观地评价。因此,本文制定了相应的L 公司客户信用评价调查表,并将调查表发给L 公司各区域总监和各处的办事处经理,由相应的区域总监和办事处经理分别给属于他们分管的区域的客户进行评分。将调查表收回后,将对同一

个客户进行评价的办事处经理与区域总监的评价调查表中相应指标的分值进行平均,即为该客户相应的指标分值。

(三)数据预处理

神经网络要求所有的输入变量都必须是0~1或者-1~+1之间的实数,因此必须对收集到的样本数据进行归一化处理。本文中采用的处理方法是最大最小归一化方法。该方法是对数据进行一种线性转换,能够将数据映射到0~1区间。设x min 、x max 分别为指标x 的最小值和最大值,对于指标x 中的值v 而言,将其映射到0~+1区间的公式为:

x

x x v v min max min '--= (四)确定客户信用评级模型的结构

三层BP 神经网络已具有令人满意的对连续映射的逼近能力,是可以满足客户信用评级的要求。三层BP 神经网络由输入层、隐含层和输出层组成。输入层神经元与客户进行信用评级的指标体系中的16个指标一一对应,因此,输入层神经元的个数为16个。输出层神经元的个数在本文中为1个,将其输出的值进行反归一化后,再判断客户的信用属于哪个级别。隐含层神经元的数目当前并没有统一的计算公司,其数目过多过少对网络的学习都会产生不好的影响。隐含层神经元的数目通常是根据设计者的经验而定或者通过实验比较来进行确定。一般情况下,在确定隐含层神经元的个数时,通常需要满足以下两个公式要求:

)10(R y x m ++=

y m >2

式中,m 为隐含层神经元个数,x 为输出层神经元个数,y 为输入层神经元个数。)10(R 表示1至10之间的任意整数。本文中的BP 网络模型输入层神经元个数为16,输出层神经元个数为1,因此同时满足上述两个公式的值范围是5~15。为了确定隐含层神经元个数,本文使用MATLAB 编写程序,用相同的测试集数据,对隐含层神经元依次取5,6,……,15进行实验。经过多次实验比较,在综合考虑客户信用评级误差与网络训练时间后,最后确定隐含层神经元个数为9。由此,本文建立的客户信用评级BP 神经网络的结构为16-9-1。

(五)转移函数的选取

因为客户信用评级模型中输入向量与输出向量之间不满足线性关系,又因为BP 神经网络要求神经元转移函数可微,而单极性S 型函数在值域(0,1)上是单调递增,并且该函数以及其导数都是连续的。因此,本文中选择单极性S 型函数作为神经元的转移函数。

至此,L 公司客户信用评级BP 神经网网络模型如下:

输入层:16个神经元,对应着客户信用指标体系中16个指标;

隐含层:9个神经元,采用单极性S 函数作转移函数;

输出层:1个神经元,采用单极性S 函数作转移函数;

学习算法:BP 算法

四、客户信用评级模型的评价

(一)训练集与测试集样本数据的确定

由于神经网络是通过学习才能获得相关知识,因此要将收集到的数据分为训练集和测试集。 本文在确定训练集中的样本数据个数时采用的是传统的方法,将收集到的样本数据分成两个彼此独立的集合,分别作为训练集和测试集。其中,样本数据总数的三分之二的数据作为训练集,用于训练神经网络,样本数据总数的三分之一的数据作为测试集,用于测试神经网络的精度。

(二)使用BP 网络对客户进行信用评级

根据以上所述的神经网络模型生成神经网络,设定学习率、学习次数和误差精度,输入训

练集中的样本数据,采用经典BP算法对神经网络进行训练,当训练结束后,对测试集中的数据进行仿真,将计算出的预测值与期望输出进行比较。

本文使用MATLAB编写程序进行仿真,主要代码如下:

…; %读入训练集中的数据

P=…;

P=P’; %进行矩阵转置

…;

T=…; %输入教师数据

threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;];

net=newff(threshold,[9, 1],{'logsig','logsig'},'traingd');%创建BP神经网络,设置转移函数为S型函数,训练函数为BP算法函数

net.trainParam.lr=0.01; %设置学习率为0.01

net.trainParam.epochs=100000; %设置最大的训练次数为100000次

net.trainParam.goal=0.005; %设置误差精度

net=init(net);

net=train(net,P,T); %根据训练集中的数据训练网络

… ; %读入测试集中的数据

P_test=… ;

P_test=P_test’;

… ;

T_test=…;

Y=sim(net,P_test); %对测试集中的数据进行仿真

error=Y-T_test;

perf=mse(error); %计算均方差

测试结果与误差分别如图2、图3所示。

图2 BP网络模型训练结果图3 BP网络模型误差图(三)使用LM-BP网络对客户进行信用评级

由于BP网络自身的缺陷使得网络训练时间较长。为了能更好地进行对比分析,本文在使用LM-BP算法网络模型对客户进行信用评级时,训练函数为trainlm,其它参数设置与BP算法相同。

使用相同的训练集中的样本数据对LM-BP网络进行训练,训练结果图4所示。

图4 LM-BP网络模型训练结果图5 LM-BP网络误差曲线图对比图2与图4可知,使用经典BP算法的神经网络需要经过29785次训练才能达到网络目标误差,所花费的时间比较长。在此基础上,本文使用LM算法进行优化,只需6次训练就能达到网络目标误差。但是从实验结果看,LM-BP网络的准确率只达到84%,并且出现了将客户信用等级“提高”的错误,这对企业来说是非常不利的。原因在于LM算法是一种快速收敛算法,它可以很快地使神经网络训练误差达到目标误差要求,但此时网络可能并没有达到收敛,所以网络的泛化误差较大。因此,需要对LM-BP网络进一步进行优化。

神经网络停止训练的准则通常为:一是达到训练目标误差;另一个是达到最大训练次数。由于LM算法能够使得BP网络快速达到训练误差,但此时神经网络可能还没有达到收敛,因此,本文将“达到最大训练次数”做为LM-BP网络停止训练的唯一条件。经过多次的试验,从程序运行情况看,LM-BP网络训练次数基本上不超过1200次时,网络训练误差不再减小或者是减小得非常缓慢。因此,本文中将训练次数设置为1200次,训练结果如图6-5所示。为了与前面的LM-BP网络区别,本文将“达到最大训练次数”做为训练结束条件的LM-BP网络称为LM-BP 网络Ⅱ。其训练次数与误差如图6所示。

图6 LM-BP网络Ⅱ训练结果图

从实验结果看,LM-BP网络Ⅱ准确率可达到92%。虽然网络的训练时间比设定网络训练误差为0.005的LM-BP网络长,但是,远远低于BP网络的训练时间。并且,对企业来说,在进行客户信用评级时,准确率以及不出现“升级”错误是最重要的。

五、结论

人工神经网络技术在分类技术中具有分类准确度高的特点。本文结合L公司客户信用评级问题,研究神经网络原理,运用BP神经网络建立了客户信用评级模型,实验结果表明,该模型从分类准确度及效率两方面来看,是符合企业的需要的。传统的BP算法属于梯度下降法,这导致神经网络训练速度慢。本文采用LM算法改进传统BP算法,实验表明,LM算法可提高网络的训练速度,但网络的泛化能力不太好,要解决这个问题,可将“达到指定训练次数”做为LM-BP

神经网络的结束条件,虽然网络训练时间增加,但精度较高。

参考文献

[1] 谭永智, 李淑玲. 企业信用管理实务[M],北京:中国方正出版社, 2004:5~10

[2] 高隽. 人工神经网络原理及仿真实例[M],北京:机械工业出版社, 2003:89~95

[3] 陈京民. 数据仓库原理、设计与应用[M],北京:中国水利水电出版社, 2004:163~164

BP神经网络预测的matlab代码

BP神经网络预测的matlab代码附录5: BP神经网络预测的matlab代码: P=[ 0 0.1386 0.2197 0.2773 0.3219 0.3584 0.3892 0.4159 0.4394 0.4605 0.4796 0.4970 0.5278 0.5545 0.5991 0.6089 0.6182 0.6271 0.6356 0.6438 0.6516

0.6592 0.6664 0.6735 0.7222 0.7275 0.7327 0.7378 0.7427 0.7475 0.7522 0.7568 0.7613 0.7657 0.7700] T=[0.4455 0.323 0.4116 0.3255 0.4486 0.2999 0.4926 0.2249 0.4893 0.2357 0.4866 0.2249 0.4819 0.2217 0.4997 0.2269 0.5027 0.217 0.5155 0.1918 0.5058 0.2395 0.4541 0.2408 0.4054 0.2701 0.3942 0.3316 0.2197 0.2963 0.5576 0.1061 0.4956 0.267 0.5126 0.2238 0.5314 0.2083 0.5191 0.208 0.5133 0.1848 0.5089 0.242 0.4812 0.2129 0.4927 0.287 0.4832 0.2742 0.5969 0.2403 0.5056 0.2173 0.5364 0.1994 0.5278 0.2015 0.5164 0.2239 0.4489 0.2404 0.4869 0.2963 0.4898 0.1987 0.5075 0.2917 0.4943 0.2902 ] threshold=[0 1] net=newff(threshold,[11,2],{'tansig','logsig'},'trainlm');

神经网络动态系统辨识与控制

神经网络动态系统的辨识与控制 摘要: 本论文表明神经网络对非线性动态系统进行有效的辨识与控制。本论文的侧重点是辨识与控制模型,并论述了动态反向传播以及静态反向传播方法在参数调节中的作用。在所介绍的模型中,加法器与重复网络结构的内部相连很独特,所以很有必要将他们统一起来进行研究。由仿真结果可知辨识与自适应控制方案的提出是可行的。整篇论文中都介绍到基本的概念和定义,也涉及了必须提出的学术性问题, 简介 用数学系统理论处理动态系统的分析与合成在过去的五十年里已经被列为应用广泛的权威科学原理了。权威系统理论最先进的地方定义于基于线性代数以及复合变量理论的先进技术线性操作器以及线性常微分方程。由于动态系统的设计技术与它们的稳定特性密切相关,线性时间不变系统的充分必要条件在上世纪已经产生了,所以已经建立了动态系统的著名设计方法。相反,只要在系统对系统基础上就可以基本上建立非线性系统的稳定性,因此对于大部分系统没有同时满足稳定性、鲁棒性以及良好动态响应的设计程序并不希奇。 过去三十年来,对线性、非时变和具有不确定参数的对象进行辨识与自适应控制的研究已取得了很大的进展。但是在这些研究中辨识器和控制器的结构选取和保证整个系统全局稳定性的自适应调参规律的构成等,都是建立在线性系统理论基础上的[1]。在本论文中,我们感兴趣的是神经网络非线性动态系统的控制与辨识。由于很少有可以直接应用的非线性系统理论结果存在,所以必须密切关注这个问题以及辨识器和控制器结构的选择和调整参数适应性规则的通用性问题。 在人工神经网络领域里,有两类网络今年来最引人注目:它们是(1)多层神经网络(2)回归神经网络。多层神经网络被证实在解决模式辨识问题[2]-[5]上非常成功。而回归神经网络则经常用于联想记忆以及制约优化问题的解决[[6]-[9]。从系统理论的观点来看,多层网络呈现静态非线性映射,而回归网络则通过非线性动态反馈系统显现。尽管两种网络存在外观上的不同外,但是很有必要将他们用统一成更一般化的网络。事实上,笔者确信将来会越来越多的用到动态因素以及反馈,这导致包括两种网络的复杂系统的产生。这样,将两个网络统一起来就成为必要。在本文的第三章,这个观点会得到进一步的阐述。 本文用了三个主要目标。第一个也是最重要的一个目标是在未知非线性动态系统中为自适应控制利用神经网络提出辨识以及控制器结构。当未知参数线性系

基于BP神经网络预测模型指南

基于BP神经网络的国际黄金价格预测模型 公文易文秘资源网顾孟钧张志和陈友2009-1-2 13:35:26我要投稿添加到百度搜藏 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型 [摘要] 为了寻找国际黄金价格与道琼斯工业指数、美国消费者指数,国际黄金储备等因素之间的内在关系,本文对1972年~2006年间的各项数据首先进行归一化处理,利用MATLAB神经网络工具箱进行模拟训练,建立了基于BP神经网络的国际黄金价格预测模型。 [关键词] MATLAB BP神经网络预测模型数据归一化 一、引言 自20世纪70年代初以来的30多年里,世界黄金价格出现了令人瞠目的剧烈变动。20 世纪70年代初,每盎司黄金价格仅为30多美元。80年代初,黄金暴涨到每盎司近700美元。本世纪初,黄金价格处于每盎司270美元左右,此后逐年攀升,到2006年5月12日达到了26年高点,每盎司730美元,此后又暴跌,仅一个月时间内就下跌了约160美元,跌幅高达21.9%。最近两年,黄金价格一度冲高到每盎司900多美元。黄金价格起伏如此之大,本文根据国际黄金价格的影响因素,通过BP神经网络预测模型来预测长期黄金价格。 二、影响因素 刘曙光和胡再勇证实将观察期延长为1972年~2006年时,则影响黄金价格的主要因素扩展至包含道琼斯指数、美国消费者价格指数、美元名义有效汇率、美国联邦基金利率和世界黄金储备5个因素。本文利用此观点,根据1972年~2006年各因素的值来建立神经网络预测模型。 三、模型构建

BP神经网络实验 Matlab

计算智能实验报告 实验名称:BP神经网络算法实验 班级名称: 2010级软工三班 专业:软件工程 姓名:李XX 学号: XXXXXX2010090

一、实验目的 1)编程实现BP神经网络算法; 2)探究BP算法中学习因子算法收敛趋势、收敛速度之间的关系; 3)修改训练后BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。 二、实验要求 按照下面的要求操作,然后分析不同操作后网络输出结果。 1)可修改学习因子 2)可任意指定隐单元层数 3)可任意指定输入层、隐含层、输出层的单元数 4)可指定最大允许误差ε 5)可输入学习样本(增加样本) 6)可存储训练后的网络各神经元之间的连接权值矩阵; 7)修改训练后的BP神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果。 三、实验原理 1 明确BP神经网络算法的基本思想如下: 在BPNN中,后向传播是一种学习算法,体现为BPNN的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN的网络构架 反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小 BPNN是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN会根据已经训练好的参数进行运算,得到输出结果 2 明确BP神经网络算法步骤和流程如下: 1初始化网络权值 2由给定的输入输出模式对计算隐层、输出层各单元输出 3计算新的连接权及阀值, 4选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

用matlab编BP神经网络预测程序加一个优秀程序

求用matlab编BP神经网络预测程序 求一用matlab编的程序 P=[。。。];输入T=[。。。];输出 % 创建一个新的前向神经网络 net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值 inputWeights=net_1.IW{1,1} inputbias=net_1.b{1} % 当前网络层权值和阈值 layerWeights=net_1.LW{2,1} layerbias=net_1.b{2} % 设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; % 调用TRAINGDM 算法训练BP 网络 [net_1,tr]=train(net_1,P,T); % 对BP 网络进行仿真 A = sim(net_1,P); % 计算仿真误差 E = T - A; MSE=mse(E) x=[。。。]';%测试 sim(net_1,x) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 不可能啊我2009 28对初学神经网络者的小提示

第二步:掌握如下算法: 2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:“最小二乘法”。 3.在第2步的基础上看Hebb学习算法、SOM和K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。 4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第15和16章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1算法小节中的算法. 4.BP算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社,Tom M. Mitchell著,中英文都有)的第4章和《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第11章。 BP神经网络Matlab实例(1) 分类:Matlab实例 采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。 % 例1 采用动量梯度下降算法训练BP 网络。 % 训练样本定义如下: % 输入矢量为 % p =[-1 -2 3 1 % -1 1 5 -3] % 目标矢量为t = [-1 -1 1 1] close all clear clc % --------------------------------------------------------------- % NEWFF——生成一个新的前向神经网络,函数格式: % net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes, % PR -- R x 2 matrix of min and max values for R input elements % (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的

神经网络控制

人工神经网络控制 摘要: 神经网络控制,即基于神经网络控制或简称神经控制,是指在控制系统中采用神经网络这一工具对难以精确描述的复杂的非线性对象进行建模,或充当控制器,或优化计算,或进行推理,或故障诊断等,亦即同时兼有上述某些功能的适应组合,将这样的系统统称为神经网络的控制系统。本文从人工神经网络,以及控制理论如何与神经网络相结合,详细的论述了神经网络控制的应用以及发展。 关键词: 神经网络控制;控制系统;人工神经网络 人工神经网络的发展过程 神经网络控制是20世纪80年代末期发展起来的自动控制领域的前沿学科之一。它是智能控制的一个新的分支,为解决复杂的非线性、不确定、不确知系统的控制问题开辟了新途径。是(人工)神经网络理论与控制理论相结合的产物,是发展中的学科。它汇集了包括数学、生物学、神经生理学、脑科学、遗传学、人工智能、计算机科学、自动控制等学科的理论、技术、方法及研究成果。 在控制领域,将具有学习能力的控制系统称为学习控制系统,属于智能控制系统。神经控制是有学习能力的,属于学习控制,是智能控制的一个分支。神经控制发展至今,虽仅有十余年的历史,已有了多种控制结构。如神经预测控制、神经逆系统控制等。 生物神经元模型 神经元是大脑处理信息的基本单元,人脑大约含1012个神经元,分成约1000种类型,每个神经元大约与102~104个其他神经元相连接,形成极为错综复杂而又灵活多变的神经网络。每个神经元虽然都十分简单,但是如此大量的神经元之间、如此复杂的连接却可以演化出丰富多彩的行为方式,同时,如此大量的神经元与外部感受器之间的多种多样的连接方式也蕴含了变化莫测的反应方式。 图1 生物神经元传递信息的过程为多输入、单输出,神经元各组成部分的功能来看,信息的处理与传递主要发生在突触附近,当神经元细胞体通过轴突传到突触前膜的脉冲幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化学物质,突触有两

BP神经网络matlab源程序代码

close all clear echo on clc % NEWFF——生成一个新的前向神经网络 % TRAIN——对 BP 神经网络进行训练 % SIM——对 BP 神经网络进行仿真 % 定义训练样本 % P为输入矢量 P=[0.7317 0.6790 0.5710 0.5673 0.5948;0.6790 0.5710 0.5673 0.5948 0.6292; ... 0.5710 0.5673 0.5948 0.6292 0.6488;0.5673 0.5948 0.6292 0.6488 0.6130; ... 0.5948 0.6292 0.6488 0.6130 0.5654; 0.6292 0.6488 0.6130 0.5654 0.5567; ... 0.6488 0.6130 0.5654 0.5567 0.5673;0.6130 0.5654 0.5567 0.5673 0.5976; ... 0.5654 0.5567 0.5673 0.5976 0.6269;0.5567 0.5673 0.5976 0.6269 0.6274; ... 0.5673 0.5976 0.6269 0.6274 0.6301;0.5976 0.6269 0.6274 0.6301 0.5803; ... 0.6269 0.6274 0.6301 0.5803 0.6668;0.6274 0.6301 0.5803 0.6668 0.6896; ... 0.6301 0.5803 0.6668 0.6896 0.7497]; % T为目标矢量 T=[0.6292 0.6488 0.6130 0.5654 0.5567 0.5673 0.5976 ... 0.6269 0.6274 0.6301 0.5803 0.6668 0.6896 0.7497 0.8094]; % Ptest为测试输入矢量 Ptest=[0.5803 0.6668 0.6896 0.7497 0.8094;0.6668 0.6896 0.7497 0.8094 0.8722; ... 0.6896 0.7497 0.8094 0.8722 0.9096]; % Ttest为测试目标矢量 Ttest=[0.8722 0.9096 1.0000]; % 创建一个新的前向神经网络 net=newff(minmax(P'),[12,1],{'logsig','purelin'},'traingdm'); % 设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 5000; net.trainParam.goal = 0.001; % 调用TRAINGDM算法训练 BP 网络 [net,tr]=train(net,P',T); % 对BP网络进行仿真 A=sim(net,P'); figure; plot((1993:2007),T,'-*',(1993:2007),A,'-o'); title('网络的实际输出和仿真输出结果,*为真实值,o为预测值'); xlabel('年份'); ylabel('客运量'); % 对BP网络进行测试 A1=sim(net,Ptest');

基于Bp神经网络的股票预测

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

BP神经网络matlab实例

神经网络Matlab p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2

S S SNl:各层的神经元个数。 [1 2...] TF TF TFNl:各层的神经元传递函数。 { 1 2...} BTF:训练用函数的名称。 (2)网络训练 = [,,,,,] (,,,,,,) net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp' BP网络的训练函数 训练方法训练函数 梯度下降法traingd 有动量的梯度下降法traingdm 自适应lr梯度下降法traingda 自适应lr动量梯度下降法traingdx 弹性梯度下降法trainrp Fletcher-Reeves共轭梯度法traincgf Ploak-Ribiere共轭梯度法traincgp Powell-Beale共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg-Marquardt trainlm

BP神经网络的预测理论的及程序 学习

12、智能算法 12.1 人工神经网络 1、人工神经网络的原理假如我们只知道一些输入和相应的输出,但是不清楚这些输入和输出之间的具体关系是什么,我们可以把输入和输出之间的未知过程看成是一个“网络”,通过不断的网络输入和相应的输出进行“训练”(学习),网络根据输入和对应输出不断调整连接网络的权值,直到满足我们的目标要求,这样就训练好了一个神经网络,当我们给定一个输入, 网络就会计算出一个相应的输出。 2、网络结构神经网络一般有一个输入层,多个隐层,和一个输出层。隐层并非越多越好。如下图所示: 神经网络工具箱几乎 MATLAB 12.2 Matlab 神经网络工具箱 BP 网络和涵盖了所有的神经网络的基本常用模型,如感知器、nntool nftool,nctool,nprtool,nntraintool 和等。它由RBFNN 函数逼近和数据拟合、信息处理和预测、神经网组成。主要应用于

在实际应用中,针对具体的问题,首先络控制和故障诊断等领域。.需要分析利用神经网络来解决问题的性质,然后依据问题的特点,提取训练和测试数据样本,确定网络模型,最后通过对网络进行训练、仿真等检验网络的性能是否满足要求。具体过程如下: (1)确定信息表达的方式,主要包括数据样本已知;数据样本之间相互关系不明确;输入/输出模式为连续的或离散的;数据样本的预处理;将数据样本分成训练样本和测试样本。 (2)网络模型的确定。确定选择何种神经网络以及网络层数。 (3)网络参数的选择,如输入输出神经元个数的确定,隐层神经元的个数等。 (4)训练模式的确定,包括选择合理的训练算法、确定合适的训练步数、指定适当的训练目标误差等 (5)网络测试,选择合理的样本对网络进行测试。 简单来讲就是三个步骤:建立网络(newXX)—训练网络(trainXX)—仿真网络(sim) 12.3 BP 神经网络的 Matlab 相关函数 BP 算法的基本思想:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号作为修正各单元权

基于神经网络模型的最新系统辨识算法

基于神经网络模型的最新系统辨识算法 摘要:神经网络具有大规模并行分布式结构、自主学习以及泛化能力,因此可以利用神经网络来解决许多传统方法无法解决的问题。神经网络应用在非线性系统的辨识中有良好的结果。本文在阅读大量参考文献的基础上,对最新的基于神经网络的系统辨识算法进行总结。 关键字:神经网络;系统辨识;辨识算法 The latest algorithm about identification system based on neural network model Abstract: Neural network has large parallel distributed structure, learning by itself and has generalization ability. So neural network is used to solve many questions which traditional method cannot. Neural network is well applied to nonlinear system which has got good achievements in identification system. Based on most of documents, the paper summaries the latest algorithm about identification system based on neural network model. Keywords:Neural network, identification system, identification algorithm 0 前言 在国内,系统辨识也取得了许多成绩,尽管成果丰硕,但传统辨识法仍存在不少局限:传统辨识法较适用于输入端中扰动水平比较低的控制系统,对于具有外界干扰的控制系统,就会出现计算量大、鲁棒性不够好的问题;最小二乘法及其相关改进算法一般利用梯度算法进行信息搜索,容易陷入局部极小值。鉴于此,神经网络控制在系统辨识中得到了新的应用。本文在阅读大量文献后,针对国内基于神经网络的结合其他算法的最新辨识算法进行综述分析。 1 神经网络的应用优势 神经网络的吸引力在于:能够充分逼近任意复杂的非线性关系,能够学习适应不确定性系统的动态特性;所有定量或定性的信息都分布储存于网络内的各个神经元,所以有很强的鲁棒性和容错性;采用并行分

智能控制之神经网络系统辨识的设计

四、神经网络系统辨识分析(25分) 用BP 神经网络进行系统在线逼近的原理框图如图3所示 ) (k y n (k u (k y 图3 图4 假设某控制对象的模型为2 3 )1(1) 1()()(-+-+ =k y k y k u k y ,采样时间取t=1ms ,输入信号 t)sin(650.)u(π=k 。采用的BP 神经网络结构如图4所示,权值ij w 和2j w 的初值取 [-1,+1] 之间的随机值,权值采用δ学习算法,学习速率η取0.50,动量因子α取0.05。试分析神经网络在线逼近的运行过程,并作Matlab 仿真。 题目四、需要阐述清楚BP 网络逼近控制对象的工作原理和学习过程 BP 算法的基本思想是:对于一个输入样本,经过权值、阈值和激励函数运算后,得到一个输出y n (k),然后让它与期望的样本y(k)进行比较,若有偏差,则从输出开始反向传播该偏差,进行权值、阈值调整,使网络输出逐渐与希望输出一致。 BP 算法由四个过程组成:输入模式由输入层经过中间层向输出层的“模式顺传播”过程,网络的希望输出与网络的实际输出之间的误差信号由输出层经过中间层向输入层逐层修正连接权的“误差逆传播”过程,由“模式顺传播”与“误差逆传播”的反复交替进行的网络“记忆训练”过程,网络趋向于收敛即网络的全局误差趋向极小值的 “学习收敛”过程。 BP 网络(Back Propagation ),该网络是一种单向传播的多层前向网络。误差 反向传播的BP 算法简称BP 算法,其基本思想是梯度下降法。它采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。 BP 网络特点: (1)是一种多层网络,包括输入层、隐含层和输出层; (2)层与层之间采用全互连方式,同一层神经元之间不连接; (3)权值通过δ学习算法进行调节;

求用matlab编BP神经网络预测程序

求用编神经网络预测程序 求一用编的程序[。。。];输入[。。。];输出 创建一个新的前向神经网络((),[],{'',''},'') 当前输入层权值和阈值{} {} 当前网络层权值和阈值{} {} 设置训练参数 ; ; ; ; ; 调用算法训练网络[](); 对网络进行仿真 (); 计算仿真误差 ; () [。。。]'测试 () 不可能啊我 对初学神经网络者的小提示

第二步:掌握如下算法: .最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第章的第十节:“最小二乘法”。 .在第步的基础上看学习算法、和近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社, . 等著,中英文都有)、《神经网络设计》(机械工业出版社, . 等著,中英文都有)。 (自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社, . 等著,中英文都有)的第和章。若看理论分析较费劲可直接编程实现一下节的算法小节中的算法. 算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社, . 著,中英文都有)的第章和《神经网络设计》(机械工业出版社, . 等著,中英文都有)的第章。 神经网络实例() 分类:实例 采用工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考帮助文档。 例采用动量梯度下降算法训练网络。 训练样本定义如下: 输入矢量为 [ ] 目标矢量为[ ] ——生成一个新的前向神经网络,函数格式: (,[ ],{ }) , (对于维输入,是一个的矩阵,每一行是相应输入的边界值) 第层的维数 第层的传递函数, '' 反向传播网络的训练函数, '' 反向传播网络的权值阈值学习函数, ''

BP神经网络matlab源程序代码

BP神经网络matlab源程序代码) %******************************% 学习程序 %******************************% %======原始数据输入======== p=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;]'; %===========期望输出======= t=[4554 2928 3497 2261 6921 1391 3580 4451 2636 3471 3854 3556 2659 ... 4335 2882 4084 1999 2889 2175 2510 3409 3729 3489 3172 4568 4015 ... 3666]; ptest=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;4568 4015 3666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化 NodeNum1 =4; % 隐层第一层节点数 NodeNum2=7; % 隐层第二层节点数 TypeNum = 5; % 输出维数 TF1 = 'tansig';

BP神经网络预测代码

x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368

80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507

112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448

134480 135030 135770 136460 137510]'; % 该脚本用来做NAR神经网络预测 % 作者:Macer程 lag=3; % 自回归阶数 iinput=x; % x为原始序列(行向量) n=length(iinput); %准备输入和输出数据 inputs=zeros(lag,n-lag); for i=1:n-lag %绘制误差的自相关情况(20lags) figure, parcorr(errors) %绘制偏相关情况 %[h,pValue,stat,cValue]= lbqtest(errors) %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors) %误差直方图

系统辨识综述

系统辨识课程综述 作者姓名:王瑶 专业名称:控制工程 班级:研硕15-8班

系统辨识课程综述 摘要 系统辨识是研究建立系统数学模型的理论与方法。虽然数学建模有很长的研究历史,但是形成系统辨识学科的历史才几十年在这短斩的几十年里,系统辨识得到了充足的发展,一些新的辨识方法相继问世,其理论与应用成果覆盖了自然科学和社会科学的各个领域。而人工神经网络的系统辨识方法的应用也越来越多,遍及各个领域。本文简单介绍了系统辨识的基本原理,系统辨识的一些经典方法以及现代的系统辨识方法,其中着重介绍了基于神经网络的系统辨识方法:首先对神经网络系统便是方法与经典辨识法进行对比,显示出其优越性,然后再通过对改进后的算法具体加以说明,最后展望了神经网络系统辨识法的发展方向。 关键字:系统辨识;神经网络;辨识方法 0引言 辨识、状态估计和控制理论是现代控制理论三个相互渗透的领域。辨识和状态估计离不开控制理论的支持,控制理论的应用又几乎不能没有辨识和状态估计技术。随着控制过程复杂性的提高,控制理论的应用日益广泛,但其实际应用不能脱离被控对象的数学模型。然而在大多数情况下,被控对象的数学模型是不知道的,或者在正常运行期间模型的参数可能发生变化,因此利用控制理论去解决实际问题时,首先需要建立被控对象的数学模型。所以说系统辨识是自动化控制的一门基础学科。 图1.1系统辨识、控制理论与状态估计三者之间的关系 随着社会的进步 ,越来越多的实际系统变成了具有不确定性的复杂系统 ,经典的系统辨识方法在这些系统中应用 ,体现出以下的不足 : (1) 在某些动态系统中 ,系统的输入常常无法保证 ,但是最小二乘法的系统辨

BP神经网络matlab程序入门实例

认真品味,定会有收获。 BP神经网络matlab源程序代码) %原始数据输入 p=[284528334488;283344884554;448845542928;455429283497;29283497 2261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;]'; %期望输出 t=[4554292834972261692113913580445126363471385435562659... 4335288240841999288921752510340937293489317245684015... 3666]; ptest=[284528334488;283344884554;448845542928;455429283497;2928 34972261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;456840153666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%将数据归一化 NodeNum1=20;%隐层第一层节点数 NodeNum2=40;%隐层第二层节点数 TypeNum=1;%输出维数 TF1='tansig'; TF2='tansig'; TF3='tansig'; net=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum], {TF1TF2TF3},'traingdx'); %网络创建traingdm net.trainParam.show=50; net.trainParam.epochs=50000;%训练次数设置 net.trainParam.goal=1e-5;%训练所要达到的精度

神经网络系统辨识综述

神经网络系统辨识综述 目前,国内外有许多利用神经网络来模拟设备性能、预测负荷的成功例子。1993 年,美国的Mistry和Nair成功开发了一个用来决定预期平均满意率(PMV)和温湿度参数的神经网络模型。1994 年,Curtiss利用神经网络模型成功地模拟了一台往复压缩式的冷水机组和其它暖通空调设备的性能。随后,Darred和Curtiss利用神经网络模型成功地预测了冷水机组的冷负荷和耗电量。在国内,也有利用神经网络对暖通空调优化控制、对空调器进行仿真研究的成功例子。神经网络之所以能够在国内外得到如此广泛的应用是因为: a)神经网络具有模拟高度非线性系统的优点; b)神经网络具有较强的学习能力、容错能力和联想能力; c)神经网络具有较强的自适应能力。 例如可通过重新训练网络进行设备特性的动态校准功能,这也是它优于其它控制方法的主要特点。此外,神经网络模型还具有建模时间短、易于进行计算机模拟的优点。对于智能建筑,其热动力学参数模型本质上为分布参数系统,应用系统辨识也很难获得其精确的数学模型,控制效果可想而知,而人工神经网络允许在模型理论不完善的情况下,构成一种具有自学习、自适应的体系结构,在与外界信息的交互作用中,形成一种非线性映射或线性动力学系统,以正确反映输入和输出关系而不必预先知道这种关系的精确数学模型。 神经网络在线性系统辨识中的应用 自适应线性(Adaline-Mada Line)神经网络作为神经网络的初期模型与感知机模型相对应,是以连续线性模拟量为输入模式,在拓扑结构上与感知机网络十分相似的一种连续时间型线性神经网络。这种网络模型是美国学者Widrow和Hoff

相关文档
最新文档