人工智能-BP神经网络算法的简单实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工神经网络是一种模仿人脑结构及其功能的信息处理系统,能提高人们对信息处理的智能化水平。它是一门新兴的边缘和交叉学科,它在理论、模型、算法等方面比起以前有了较大的发展,但至今无根本性的突破,还有很多空白点需要努力探索和研究。
1 人工神经网络研究背景
神经网络的研究包括神经网络基本理论、网络学习算法、网络模型以及网络应用等方面。其中比较热门的一个课题就是神经网络学习算法的研究。
近年来己研究出许多与神经网络模型相对应的神经网络学习算法,这些算法大致可以分为三类:有监督学习、无监督学习和增强学习。在理论上和实际应用中都比较成熟的算法有以下三种:
(1) 误差反向传播算法(Back Propagation,简称BP 算法);
(2) 模拟退火算法;
(3) 竞争学习算法。
目前为止,在训练多层前向神经网络的算法中,BP 算法是最有影响的算法之一。但这种算法存在不少缺点,诸如收敛速度比较慢,或者只求得了局部极小点等等。因此,近年来,国外许多专家对网络算法进行深入研究,提出了许多改进的方法。
主要有:
(1) 增加动量法:在网络权值的调整公式中增加一动量项,该动量项对某一时刻的调整起阻尼作用。它可以在误差曲面出现骤然起伏时,减小振荡的趋势,提高网络训练速度;
(2) 自适应调节学习率:在训练中自适应地改变学习率,使其该大时增大,该小时减小。使用动态学习率,从而加快算法的收敛速度;
(3) 引入陡度因子:为了提高BP 算法的收敛速度,在权值调整进入误差曲面的平坦区时,引入陡度因子,设法压缩神经元的净输入,使权值调整脱离平坦区。
此外,很多国内的学者也做了不少有关网络算法改进方面的研究,并把改进的算法运用到实际中,取得了一定的成果:
(1) 王晓敏等提出了一种基于改进的差分进化算法,利用差分进化算法的全局寻优能力,能够快速地得到BP 神经网络的权值,提高算法的速度;
(2) 董国君等提出了一种基于随机退火机制的竞争层神经网络学习算法,该算法将竞争层神经网络的串行迭代模式改为随机优化模式,通过采用退火技术避免网络收敛到能量函数的局部极小点,从而得到全局最优值;
(3) 赵青提出一种分层遗传算法与BP 算法相结合的前馈神经网络学习算法。将分层遗传算法引入到前馈神经网络权值和阈值的早期训练中,再用BP 算法对前期训练所得性能较优的网络权值、阈值进行二次训练得到最终结果,该混合学习算法能够较快地收敛到全局最优解;
(4) 胡洁等提出一种快速且全局收敛的神经网络学习算法,并且对该优化算法的全局收敛性进行分析和详细证明,说明提出的算法比标准的算法效率更高且更精确。
尽管国内外的很多学者对BP 算法进行了改进,但这些算法只有在某些特定要求下才有效,并且对网络训练时要加强对网络的监控,网络的结构和参数是要通过多次的试验才能确定,这些都导致了网络训练时间的增加,降低了网络收敛速度。因此,还需要进一步研究神经网络学习算法,提高网络收敛速度,使网络能够更好地应用于实际。
2 神经网络基础
2.1 人工神经网络概念
2.1.1生物神经元模型
生物神经系统是一个有高度组织和相互作用的数量巨大的细胞组织群体。人类大脑的神经细胞大约有1010一10,‘个。神经细胞也称神经元,是神经系统的基本单元,它们按不同的结合方式构成了复杂的神经网络。通过神经元及其连接的可塑性,使得大脑具有学习、记忆和认知等各种智能。人工神经网络的研究出发点是以生物神经元学说为基础的。生物神经元学说认为,神经细胞即神经元是神经系统中独立的营养和功能单元。其独立性是指每一个神经元均有自己的核和自己的分界线或原生质膜。生物神经系统包括中枢神经系统和大脑,均是由各类神经元组成。生物神经元之间的相互连接让信息传递的部位称为突触(SynaPse)。突触按其传递信息的不同机制,可分为化学突触和电突触,其中化学突触占大多数,其神经冲动传递借助于化学递质的作用。神经元是基本的信息处理单元。它主要由树突、轴突和突触组成。其结构大致描述如图1所示。
图1生物神经元结构
2.1.2神经网络模型
目前人们提出的神经元模型己有很多,其中提出最早且影响最大的是1943年心理学家McCulloch和科学家W.PittS在分析总结神经元基本特性的基础上首先提出的M一P模型,如图2所示,它是大多数神经网络模型的基础。
图2 模型
Wji—代表神经元i与神经元j之间的连接强度(模拟生物神经元之间突触连接强度),称之为连接权;
Ui—代表神经元i的活跃值,即神经元状态;
Vi—代表神经元j的输出,即是神经元i的一个输入;
θj —代表神经元的阀值。
函数f 表达了神经元的输入输出特性。在M-P 模型中,f 定义为阶跳函数:
v i =f (u i )={1,u i >00, u i ≤0
2.1.3神经网络结构
神经网络的网络结构可以归为以下几类:
l)前馈式网络:该网络结构是分层排列的,每一层的神经元输出只与下一层神经元连接。
2)输出反馈的前馈式网络:该网络结构与前馈式网络的不同之处在于这种网络存在着一个从输出层到输入层的反馈回路。
3)前馈式内层互连网络:该网络结构中,同一层之间存在着相互关联,神经元之间有相互的制约关系,但从层与层之间的关系来看仍然是前馈式的网络结构,许多自组织神经网络大多具有这种结构。
4)反馈型全互连网络:在该网络中,每个神经元的输出都和其他神经元相连,从而形成了动态的反馈关系,该网络结构具有关于能量函数的自寻优能力。
5)反馈型局部互连网络:该网络中,每个神经元只和其周围若干层的神经元发生互连关系,形成局部反馈,从整体上看是一种网状结构。
2.1.4神经网络的学习
神经网络的学习也称为训练,指的是通过神经网络所在环境的刺激作用调整神经网络的自由参数,使神经网络以一种新的方式对外部环境做出反应的一个过程。能够从环境中学习和在学习中提高自身性能是神经网络的最有意义的性质。神经网络经过反复学习对其环境更为了解。学习算法是指针对学习问题的明确规则集合。学习类型是由参数变化发生的形式决定的,不同的学习算法对神经元的突触权值调整的表达式有所不同。
2.2 BP 神经网络
2.2.1 Bp 神经网络的定义、特点及应用
采用误差反向传播算法 (Bp:ErrorBack 一 propagationAlgorithm)的多层前馈人工神经网络(或称多层感知器,MLP :Multiuyerperceptron)称为Bp 神经网络或BP 神经网络模型。BP 神经网络具有明显的特点:
l)分布式的信息存储方式
神经网络是以各个处理器本身的状态和它们之间的连接形式存储信息的,一个信息不是存储在一个地方,而是按内容分布在整个网络上。网络上某一处不是只存储一个外部信息,而是存储了多个信息的部分内容。整个网络对多个信息加工后才存储到网络各处,因此,它