人工神经网络BP回归模型 乌鲁木齐春季降水长期趋势预测 使用说明书 一、引言 本软件是根据人工神经网络原理和误差反向传播(Back Propegation简称BP)算法,用 Borland C 编写的实习软件, 用于乌鲁木齐春季降水的长期趋势预测。 欢迎您对本软件的实例数据进行运算操作,输入学习样本数、学习精度参数就可以得到较为满意的人工神经网络预测模型。 二、人工神经网络及BP模型简介 人工神经网络的研究已有40余年的历史,近10年来形成了第二次研究热潮,引起了各个领域的广泛关注。其根本原因在于它开拓了新思路,为求解某些难题提供了新的手段和方法。以往的专家系统,除了要筛选与预报量有关的因子外,预报规则也需要人工来编写。因此预报效果的好坏不仅依赖于所选择的因子,而且还取决于预报规则的编写,还要视编写者的知识与能力,而专家系统本身的自学能力也较差。 人工神经网络是借助大脑和神经系统储存、处理信息的某些特性抽象出来的一种数学模型。可概括地定义为由大量简单元件(如用电子元件,光学元件等模拟人脑中的神经元)广泛相互连接而生成的复杂网络系统。它是在现代生物学研究人脑组织所取得的成功基础提出来的。 它与传统方法的重要区别在于: 大规模并行处理; 良好的容错性; 有学习功能 网络的大量参数均由学习(即训练)获得,而不是由人为设定,即从原始数据中“提取”信息,逼近规律,而不是由人赋予规律,这一点十分重要。 近几年来,把人工神经网络技术引天气预报已成为一种可行有效的客观预报方法,本程序将把该方法在降水量的预报中予以验证。 神经网络有多种类型,每一种形式的神经网络适宜于某种特定的问题,气象中使用最多也是最有成效和代表意义的是向后传播(back-propagation,简称BP)网络,是由Rumelhart和Nielson等人于80年代提出,它是一种单向传播的多层前向网络,即人工神经网络的BP算法。 其结构示意图如下: 输入层 隐含层 输出层 图 乌鲁木齐春季降水长期趋势预测BP模型网络结构图 第一层为输入层:2个节点,代表2个预报因子; 第二层为隐含层:3个节点; 第三层为输出层:1个节点,代表降水量。 BP网络可以看作是一个从输入到输出的高度非线性映射。作用函数通常为Sigmoid函数,本文中采用的激活作用函数如下所示:  f(x)为网络激活函数。 BP算法由正反两面传播组成。 正向传播:输入模式从输入层经隐含层到输出层,逐层处理。 反向传播:如在输出层得不到期望的输出,则转入反向传播,将误差信号沿原来连接通路返回,通过修改各层神经元权值和阀值,使得误差信号最小。 误差函数R为期望输出和实际输出之差的平方和:  (j=1,n) 式中,为期望输出,为实际输出,n为样本长度。 BP神经网络的特点: 具有较强的学习功能:神经网络的连接权和连接结构却是通过网络培训得到,并不需人们预先掌握两组变量之间的关系。 非线性:虽然回归模型中可以通过因子之间的非线性变换来发现非线性关系,但是非线性变换需要人为地预先确定。神经网络的非线性是通过网络激活函数f(x)导入的,可以自动解决非线性问题。 神经网络的容错性和冗余性:如果训练的样本足够多,即使部分样本数据出错,神经网络可以自动识别这种错误。如果训练样本足够多,则即使网络的输入部分有相对独立的因子,也不会严重影响网络预报结果。 BP网络的计算步骤: 1 赋初值 层单元到层的连接权: ;单元层到单元层的连接权: (h=1,m,m为因子数,为隐结点数;k=1,n为样本数);层的阈值; 的阈值;学习效率a=01,b= 01 ;给定输入向量,给定输出向量。 2 样本操作 ① 求隐层各单元的输出: ② 计算输出层的激活值: ③ 计算输出层单元的一般误差: ④ 计算隐层各个单元对于每个误差: ⑤ 调整层单元到 层单元的连接权: ⑥ 调整 层单元的阈值:  ⑦ 调整层单元到层单元的连接权: ⑧ 调整层单元的阈值:  重复上述操作步骤,直到变得足够小或者为零。 三、文件说明 执行程序:BP-WATER.EXE 数据文件:WP345.DAT 输出文件:OUT-W.TXT 汉字库文件:CLIBS.DOT 显示支持文件:EGAVGA.BGI 要求:以上文件应放置在同一目录下。 四、运行程序 进入本程序所在目录; 双击BP-WATER,程序开始运行; 根据提示,输入参与学习的样本数,一般为总样本数的一般到三分之二左右; 根据提示,输入要求学习达到的精度,一般在0.01——0.5之间。输入上述参数后,程序即开始学习,在学习阶段,根据学习精度和输入的学习样本数进行一遍一遍的学习,不断的调整权重系数和阀值矩阵,随着学习遍数的增多,累计误差不断减小,当累计误差小于要求精度时,微机将发出鸣叫,此时按任意键即可退出。 输出结果存入文件:OUTPUT.TXT中。 注意:当进入学习阶段后,要提前结束程序的运行,可按Esc键,结果存入文件OUT-W.TXT中。 五、查看结果 双击OUTPUT.TXT文件,即可查看结果。 六、实际应用中注意 本程序是将学习建模和试预报集成在一起的,学习建模和试预报一次完成。网络学习后的参数、历史拟和、试预报结果均存放在一个文件中,其目的是为了操作方便。 在实际应用过程中,一般分两步进行: 1、学习建模:应先用BP算法通过对历史样本的学习,建立预报模型,将各层的连接权值和阀值保存在一个文件中,就相当于保存了网络的状态; 2、预报:在用于实际预报时,应编写一个预报程序,读入已有的网络参数和预报因子,进行一次前向传播,得到的输出值即为预报值。