BP神经网络的学习要点

BP神经网络的学习要点
BP神经网络的学习要点

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) 给定输入/输出样本集合{,}p p p u d ,

误差指标 2

1()2p ip ip i

E d y =-∑ 总误差指标 1P

all p p E E ==∑ 重复下列过程直至满足收敛条件(all

E ε≤) a) 对于任意一个样本p ,计算

正向过程 1,,,,,l l p p p p u O x y -

反向过程 ()()()'11'1,1,1l L ip

ip ip ip l l l l ip mp mi ip m p l l ip jp l ij

d y f x w f x l L E O l L w δδδδ++-??=--??????=??<

ij ij l ij E

w t w t w ηη?+=->? 包括两种学习方式:

模式(Pattern )学习方式:

()()1,0p

l l ij ij l ij E w t w t w ηη?+=->?

训练(Epoch )学习方式:

()()1,0l l

all ij ij l ij E w t w t w ηη?+=->? 3.3 BP 神经网络存在的缺陷

由于BP 神经网络是基于负梯度下降算法的网络模型,就不可避免的存在着一些缺陷和不足:

1)BP 学习算法采用梯度下降法来收敛实际输出与期望输出之间误差。因为误差是高维权向量的复杂非线性函数,故易陷入局部极小值;

2)网络在学习过程收敛速度慢;

3)在网络训练过程中容易发生振荡,导致网络无法收敛;

4)网络的结构难以确定(包括隐层数及各隐层节点数的确定);

5)在学习新样本时有遗忘以学过样本的趋势,因为每输入一个样本,网络的权值就要修改一次;

6)学习样本的数量和质量影响学习效果(主要是泛化能力)和学习速度。

4. BP 算法的改进

标准的 BP 算法是基于梯度下降法,通过计算目标函数对网络权值和阈值进行修正的。改进算法一种是在标准梯度下降法的基础

上,只用到目标函数对权值和阈值的一阶导数(梯度)信息。

4.1附加动量项法

它的实质就是改变学习率η来提高网络性能,其网络连接权的迭代关系式由传统 BP 算法

()()1,0l l

ij ij l ij E w t w t w ηη?+=->? 变成

()()()()11l l

ij ij ij ij l ij E w t w t w t w t w ηα???+=-+--??? 其中α为动量因子,01α<<。

动量项()()1ij ij w t w t α??--??的作用在于记忆上一时刻的连接权的变化方向(即变化量的值),这样就可以用较大的学习速率系数η以提高学习速度。附加动量项利用其“惯性效应”来抑制网络训练中可能出现的振荡,起到了缓冲平滑的作用。此外,附加动量项还有利于脱离平坦区。

4.2自适应学习率法

该方法被认为是一种最简单最有效的方法。在 BP 算法中,连接权的调整决定于学习速率和梯度,但是,在基本 BP 算法中,学习速率是不变的。实际上学习速率对收敛速度的影响也很大,通过对它的在线调整,可以大大提高收敛速度。

学习速率的调整原则上是使它在每一步保持尽可能大的值,而又不致使学习过程失去稳定性。学习速率可以根据误差变化的信息和误

差函数对连接权梯度变化的信息进行启发式调整,也可以根据误差函数对学习速率的梯度直接进行调整。

对于批处理可以根据总误差变化的信息进行启发式调整,其规则是:

1)若总误差all E 减小,则学习率增加。

2)若总误差all E 增加,则学习率减小。当新误差与老误差之比超过一定值,则学习率快速下降。

上述规则可用如下迭代方程来描述:

()()()()()()()1,1,11,1,11,all all all all a n ifE w n E w n a b n ifE w n kE w n b n else ααα?-<->??????????->-

4.3输入输出数据归一化

各输入数据往往具有不同的物理含义和量纲,取值范围差异可能较大,归一化将避免取值较小的输入分量的作用被淹没;

对于S 型转移函数,归一化可防止因神经元净输入过大而使其输出饱和,避免进入误差曲面平坦区;

对输出进行归一化,可使各神经元输出在误差指标中具有等量的作用。

4.4利用遗传算法优化

遗传算法优化神经网络主要包括三方面:网络结构优化、权值优化、学习规则优化,这里主要讨论的是权值优化。

首先,用遗传算法对初始权值分布进行优化,在解空间中找出一

个较好的搜索空间;然后,再用BP 算法在这个较小的解空间中搜索出最优解。用改进的遗传算法优化神经网络权值,能够更好地防止搜索陷入局部极小值。遗传算法优化神经网络权值的主要步骤如图4-1所示。

图4-1 遗传算法优化BP 神经网络权值流程

5.基于MATLAB的建模仿真

MATLAB中的神经网络工具箱由许多子程序组成,这些子程序已完成了神经网络算法中所涉及的许多运算和操作,使用者根据需要调用相关函数即可。

对于一个实际问题,选用哪种BP算法很难判断,它取决于很多因素,包括问题的复杂程度、学习样本的多少、隐层的节点数目、误差目标等。

例:创建一个含一个隐层(含3 个神经元)的单输出BP 神经网络,采用各种不同的算法训练该网络,并对一位整数奇偶性判别问题进行测试。训练样本为p=[0 1 2 3 4 5 6 7 8 9],t=[0 1 0 1 0 1 0 1 0 1]。

选取的BP网络有10个输入层神经元,4个隐含层神经元,1个

输出层神经元。以p作为网络输入,t作为网络输出,并对网络进行初始化。通过大量的仿真试验,分别对基本BP算法、附加动量项法、自适应学习率法对该网络进行训练,通过大量的仿真实验,得到网络训练的误差曲线如图5-1~图5-3所示。

图5-1 基本BP算法的训练误差曲线

图5-2 附加动量项法的训练误差曲线

图5-3 自适应学习率法的训练误差曲线

从图中可以看出,采用附加动量之后,其所加入的动量项实际上

相当于阻尼项,它减小了学习过程的震荡趋势,从而改变了收敛性,因此它经过3633 次学习后训练结束,网络训练步数减少,训练速度加快,而误差的收敛速度也加快了很多;图5-3的自适应学习率法具有较快的收敛速度,经过202 次学习后即停止训练,比普通的训练算法快10 倍以上。

6.结束语

本文以神经网络中目前应用最广、最具代表性的BP神经网络为研究对象,分析了其基本特征和缺陷,探讨了优化改进思路,并用MATLAB进行了仿真验证。

BP神经网络能同时描述多个控制或预测量的非线性系统。其多种改进算法适用于不同网络结构,适用于关系复杂的多元非线性系统建模,具有非线性映射能力、自学习和自适应能力、泛化能力、容错能力等优点。

参考文献

[1] 吕琼帅,BP神经网络的优化与研究,郑州大学,2011.05.

[2] 史春朝,BP神经网络算法的改进及其在PID控制中的应用研究,天津大学,

2006.01.

[3] 刘晓莉,基于MATLAB的BP神经网络算法在多元非线性系统建模中的应用,

软件导刊,V ol.12 No.10,Oct.2013.

[4] 马强,利用遗传算法优化BP神经网络初步研究,沈阳建筑大学.

[5] 吴昌友,神经网络的研究及应用,东北农业大学,2007.06.

相关主题
相关文档
最新文档