BP神经网络的学习.
- 格式:doc
- 大小:182.00 KB
- 文档页数:13
BP神经网络的学习 王贵腾 摘要:人工神经网络是近年来的热点研究领域,是人类智能研究的重要组成部分。BP神经网络作为目前应用较多的一种神经网络结构,具有良好的逼近性能,且结构简单,性能优良。但仍存在收敛速度慢,易陷入局部极小值的问题,通过附加动量项法、自适应学习率法、数据归一化法、遗传算法等,可大幅度改善其性能,可广泛应用于多输入多输出的非线性系统。 关键词:BP神经网络;BP算法;动量项;自适应学习率;归一化;遗传算法
1. 绪论 1.1人工神经网络概述 人工神经网络(Artificial Neural Network),简称神经网络(NN),是由大量处理单元(神经元)组成的非线性大规模自适应系统。它具有自组织,自适应和自学习能力,以及具有非线性、非局域性,非定常性和非凸性等特点。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理,记忆信息的方式设计一种新的机器使之具有人脑那样的信息处理能力。 神经网络作为计算智能与控制的重要分支,在控制领域具有如下优点: 1)能逼近任意L2范数上的非线性函数; 2)信息分布式存储与处理,鲁棒性和容错性强; 3)便于处理多输入多输出问题; 4)具有实现高速并行计算的潜力; 5)具有学习能力,对环境变化具有自适应性,对模型依赖性不强,主要用于解决非线性系统的控制问题。 同时,神经网络控制在多种控制结构中得到应用,如PID控制、模型参考自适应控制、前馈反馈控制、内模控制、逆系统控制、预测控制等。 目前神经网络的研究主要集中在三个方面:理论研究、实现技术研究、应用研究。 1.2 BP神经网络概述 BP神经网络是1986年由Rumelhart和McClelland一同提出的一种多层前馈神经网络。该网络采用BP算法——一种误差反向传播(Back Propagation)算法,其方法是依据负梯度下降方向迭代调整网络的权值和阀值以实现训练误差目标函数的最小化。 由于BP神经网络在实际应用中存在着收敛速度慢、网络结构难以确定、容易陷入局部极小值、泛化能力不强的缺陷,近年来,许多学者为满足实际应用中需要提出了许多改进方法,在网络自身性能的改善方面做了大量而有实际意义的工作,并且在BP神经网络的理论方面的研究和实际问题上应用也取得了丰硕的成果。对BP神经网络的理论研究,概括起来大致分为三个方面:改进激励函数,权值选取优化和网络拓扑结构。 1.3本文研究内容 本文从神经网络出发,研究其中应用最为广泛的BP神经网络模型,分析其缺点和不足,提出改进措施,并探讨其应用。具体研究内容包括: 1)研究人工神经网络的基本原理; 2)对BP神经网络进行分析,探讨BP算法的缺陷; 3)提出对BP神经网络的改进和优化; 4)基于MATLAB的BP神经网络的建模仿真。
2. 神经网络基本原理 神经网络,主要是模拟人的神经系统。其神经元特性、网络结构、学习算法是神经网络的三要素。 2.1神经元特性 神经网络是由大量简单处理单元组成,通过可变权值连接而成的并行分布式系统,神经元是神经网络的基本处理单元。1943年提出的MP模型,经不断改进形成了现在广泛应用的BP神经元模型,MP模型如图2-1所示。
图2-1 人工神经元模型 模型基于以下六点假设: 1)神经元是多输入单输出的信息处理单元; 2)神经元输入:兴奋性输入和抑制性输入; 3)神经元具有空间整合特性和阀值特性; 4)输入和输出间有固定时滞(突触延搁); 5)忽略时间整合作用和不应期; 6)突触时延和突触强度为常数(时不变)。 神经元信号处理特性(转移函数)是决定人工神经网络整体性能的三大要素之一。包括阀值型转移函数、连续非线性转移函数、分段线性转移函数、概率型转移函数等。 2.2神经网络结构 神经网络拓扑结构是决定神经网络特性的第二大要素。包括: 1)层次型结构。包括单纯型层次网络结构、输出层到输入层有连接的层次网络结构、层内有互连的层次网络结构。 2)互连型结构。包括全互连型、局部互连型、稀疏连接型。 按信息流向类型可分为前馈型网络和反馈型网络。 2.3神经网络学习算法 神经网络的学习方式是决定神经网络信息处理性能的第三大要素。神经网络的工作方式分为两个阶段:学习期和工作期。 神经网络的学习类型包括有导师学习(有监督学习)、无导师学习(无监督学习)、灌输式学习(死记硬背学习)、再励式学习。
3. BP神经网络 3.1 BP神经网络结构 采用BP算法的神经网络模型称为BP神经网络,一般由输入层、隐层和输出层组成,隐层可以是一层或者多层,每个层中又包含许多单个神经元,在BP神经网络中,层与层之间的神经元是全连接,层内部的神经元之间是无连接的。各隐层节点的激活函数使用Sigmoid函数,其输入层和输出层激励函数可以根据应用的不同需要而异。因此,BP神经网络是前向反馈网络的一种,其网络结构可以采用简要的形式来描述,如图3-1。
输入层 隐层 输出层 图3-1 BP神经网络结构
3.2 BP算法
BP算法即误差反向传播(Back Propagation)算法,其主要思想是是把学习过程分为两个阶段:第一阶段(正向传播过程),给出输入信息通过输入层经隐含层处理并计算每个单元的实际输出值;第二阶段(反向过程),若在输出层未能得到期望的输出值,则逐层递归地计算实际输出与期望输出之差值(即误差),以便根据此差值调节权值。 BP算法的基本步骤如下: 1) 设置初始权值W(0)为较小的随机非零值。
2) 给定输入/输出样本集合{,}pppud,
误差指标 21()2pipipiEdy 总误差指标 1PallppEE 重复下列过程直至满足收敛条件(allE) a) 对于任意一个样本p,计算
正向过程 1,,,,,llppppuOxy
反向过程 '11'1,1,1lLipipipipllllipmpmiipmpllipjplijdyfxwfxlLEOlLw b) 修正权值1,0llijijlijEwtwtw 包括两种学习方式: 模式(Pattern)学习方式: 1,0pllijijlijEwtwtw
训练(Epoch)学习方式: 1,0llallijijlijEwtwtw
3.3 BP神经网络存在的缺陷 由于BP神经网络是基于负梯度下降算法的网络模型,就不可避免的存在着一些缺陷和不足: 1)BP学习算法采用梯度下降法来收敛实际输出与期望输出之间误差。因为误差是高维权向量的复杂非线性函数,故易陷入局部极小值; 2)网络在学习过程收敛速度慢; 3)在网络训练过程中容易发生振荡,导致网络无法收敛; 4)网络的结构难以确定(包括隐层数及各隐层节点数的确定); 5)在学习新样本时有遗忘以学过样本的趋势,因为每输入一个样本,网络的权值就要修改一次; 6)学习样本的数量和质量影响学习效果(主要是泛化能力)和学习速度。
4. BP算法的改进 标准的 BP 算法是基于梯度下降法,通过计算目标函数对网络权值和阈值进行修正的。改进算法一种是在标准梯度下降法的基础上,只用到目标函数对权值和阈值的一阶导数(梯度)信息。 4.1附加动量项法 它的实质就是改变学习率来提高网络性能,其网络连接权的迭代关系式由传统 BP 算法
1,0llijijlijEwtwtw
变成 11llijijijijlijEwtwtwtwtw
其中为动量因子,01。 动量项1ijijwtwt的作用在于记忆上一时刻的连接权的变化方向(即变化量的值),这样就可以用较大的学习速率系数以提高学习速度。附加动量项利用其“惯性效应”来抑制网络训练中可能出现的振荡,起到了缓冲平滑的作用。此外,附加动量项还有利于脱离平坦区。 4.2自适应学习率法 该方法被认为是一种最简单最有效的方法。在 BP 算法中,连接权的调整决定于学习速率和梯度,但是,在基本 BP 算法中,学习速率是不变的。实际上学习速率对收敛速度的影响也很大,通过对它的在线调整,可以大大提高收敛速度。 学习速率的调整原则上是使它在每一步保持尽可能大的值,而又不致使学习过程失去稳定性。学习速率可以根据误差变化的信息和误差函数对连接权梯度变化的信息进行启发式调整,也可以根据误差函数对学习速率的梯度直接进行调整。 对于批处理可以根据总误差变化的信息进行启发式调整,其规则是: 1)若总误差allE减小,则学习率增加。 2)若总误差allE增加,则学习率减小。当新误差与老误差之比超过一定值,则学习率快速下降。 上述规则可用如下迭代方程来描述:
1,1,11,1,11,allallallallanifEwnEwnabnifEwnkEwnbnelse
4.3输入输出数据归一化 各输入数据往往具有不同的物理含义和量纲,取值范围差异可能较大,归一化将避免取值较小的输入分量的作用被淹没; 对于S型转移函数,归一化可防止因神经元净输入过大而使其输出饱和,避免进入误差曲面平坦区; 对输出进行归一化,可使各神经元输出在误差指标中具有等量的作用。 4.4利用遗传算法优化 遗传算法优化神经网络主要包括三方面:网络结构优化、权值优化、学习规则优化,这里主要讨论的是权值优化。 首先,用遗传算法对初始权值分布进行优化,在解空间中找出一