2.人工神经网络ArtificialNeuralNetworks2.1人工神经网络的提出•人工神经网络(ANN),是对人类大脑系统的一阶特性的一种描述。简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。•人工智能:研究如何使类似计算机这样的设备去模拟人类认识客观事物和运用知识解决问题的能力。2.2人工神经网络的特点•大规模的复杂系统,有大量可供调节的参数;•高度并行的处理机制,具有高速运算的能力;•高度分散的存储方式,具有全息联想的特征;•高度灵活可变的拓扑结构,具有很强的适应能力;高度冗余的组织方式,具有很好的坚韧性;•高度的非线性运算,通过训练和学习来获得网络的权值与结构,具有很强的自学习能力和对环境的适应能力;•高度的集体协同计算,模拟处理与数字处理并存。2.3人工神经元神经元是构成神经网络的最基本单元。1943年,神经生理学家McCulloch(麦克洛奇)和数学家Pitts(皮兹)定义了神经元模型M-P模型(世界第一个神经计算模型)。f:阶跃函数输入向量:权值向量:阈值:输出:其中:称为激活函数)(21nxxxX,,,)(21n,,,niiixwfy1)(0001)(xxxf•激活函数——执行对该神经元所获得的网络输入的变换,也可以称为激励函数、活化函数、响应函数、作用函数等。MP神经元模型是人工神经元模型的基础,也是神经网络理论的基础。在神经元模型中,激活函数除了单位阶跃函数之外,还有其它形式。不同的作用函数,可构成不同的神经元模型。(1)对称型Sigmoid函数xxeexf11)(0,11)(xxeexf或(2)非对称型Sigmoid函数xexf11)(或0,11)(xexf(3)对称型阶跃函数函数0,10,1)(xxxf采用阶跃作用函数的神经元,称为阈值逻辑单元。(4)线性函数1)线性作用函数:输出等于输入,即xxfy)(2)饱和线性作用函数110010)(xxxxxfy3)对称饱和线性作用函数111111)(xxxxxfy(5)高斯函数)(22)(xexf反映出高斯函数的宽度2.4人工神经网络的典型结构•目前,神经网络模型的种类比较多,已有近40余种神经网络模型,其中典型的有BP网络、Hopfield网络。•根据神经元的拓扑结构形式不同,神经网络已有十余种不用的连接方式,其中前馈型网络和反馈型网络是最典型的两种结构。(1)前馈型神经网络神经元分层排列,顺序连接。由输入层施加输入信息,通过中间各层,加权后传递到输出层后输出。每层的神经元只接受前一层神经元的输入,各神经元之间不存在反馈。(2)反馈型神经网络网络的输出信号通过与输入连接而返回到输入端,从而形成一个回路。因此每一时刻网络输出不仅取决于当前的输入,而且还取决于上一时刻的输出。2.5人工神经网络的学习•人工神经网络最具有吸引力的特点是它的学习能力。1962年,Rosenblatt给出了人工神经网络著名的学习定理:人工神经网络可以学会它可以表达的任何东西。(2)神经网络的学习规则•联想式学习—Hebb学习规则•误差纠正式学习——Delta(δ)学习规则(1)神经网络的学习方式有导师(监督)学习方式无导师(监督)学习方式•人工神经网络连接权的确定通常有两种方法–根据具体要求,直接计算–通过学习得到的,大多数人工神经网络都采用这种方法学习是改变各神经元连接权值的有效方法,也是体现人工神经网络智能特性最主要的标志。离开了学习,神经网络就失去了其自适应、自组织能力学习方法是人工神经网络研究中的核心问题1)有导师学习方式特点:不能保证得到全局最优解要求大量训练样本,收敛速度慢对样本的表示次序变化比较敏感神经网络根据实际输出与期望输出的偏差,按照一定的准则调整各神经元连接的权系数。期望输出又称为导师信号,是评价学习的标准。(1)神经网络的学习方式无导师信号提供给网络,神经网络仅仅根据其输入调整连接权系数和阈值,此时,网络的学习评价标准隐含于内部。这种学习方式主要完成聚类操作。2)无导师学习方式心理学家Hebb根据生理学中的条件反射机理,于1949年提出的神经元连接强度变化的规则:如果两个神经元同时兴奋(即同时被激活),则它们之间的突触连接加强。根据该假设定义的权值调整方法称为Hebb学习规则,可归纳为:当神经元i和神经元j同时处于兴奋状态时,两者之间的连接强度应增强。1)联想式学习—Hebb学习规则Hebb学习规则是人工神经网络学习的基本规则,几乎所有神经网络的学习规则都可以看作Hebb学习规则的变形(2)神经网络的学习规则2)纠错式学习—Delta(δ)学习规则首先我们考虑一个简单的情况:设某神经网络的输出层中只有一个神经元i,给该神经网络加上输入,这样就产生了输出yi(n),称该输出为实际输出。对于所加上的输入,我们期望该神经网络的输出为d(n),称为期望输出或目标输出(样本对里面包含输入和期望输出)。实际输出与期望输出之间存在着误差,用e(n)表示:()=()-()iendnyn现在要调整权值,使误差信号e(n)减小到一个范围。为此,可设定代价函数或性能指数E(n):21()=()2Enen反复调整连接权值使代价函数达到最小或者使系统达到一个稳定状态(即连接权值稳定不变),就完成了该学习过程。该学习过程成为纠错学习,或Delta学习规则。wij表示神经元xi到xj学的连接权值,在学习步骤为n时对突触权值的调整为:()=()()ijjwnenxn学习速率参数则(1)=()+()ijijijwnwnwn2.6BP网络误差反向传播网络(ErrorBack-PropagationNetwork,BP网络)是Rumelhart等人于1985年提出的,是一种按误差逆传播算法训练的多层前馈型网络,是目前应用最广泛的神经网络模型。BP网络主要用于:(1)函数逼近:用输入矢量和相应的输出矢量训练网络逼近某个函数;(2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来;(3)分类:把输入矢量以所定义的合适的方法进行分类;(4)数据压缩:减少输出矢量维数以便于传输或存储。在人工神经网络的实际工程应用中,特别在自动控制领域中,大多数神经网络模型是采用BP网络或它的变化形式,它也是前向网络的核心部分,体现了人工神经网络最精华的部分。BP网络的结构输入向量、输出向量的维数、网络隐含层的层数和各个隐含层神经元个数的决定。实验:增加隐藏层的层数和隐藏层神经元个数不一定总能够提高网络精度和表达能力。BP网一般都选用三层网络。输入层隐含层输出层.........BP网络学习流程图学习模式对提供给网络连接权及阈值初始化计算隐含层和输出层各单元的输入、输出计算输出层和隐含层各单元的校正误差调整各层单元的连接权值和阈值更新学习模式对更新学习次数NNYY开始结束全部训练完?误差E或学习次数N?计算过程(1)正向传播输出过程设BP网络的输入层有n个节点,隐含层有q个节点,输出层有m个节点;输入层与隐含层之间的权值为,隐含层与输出层之间的权值为;隐含层单元的阈值为,输出层单元的阈值为;隐含层和输出层的激活函数为S型函数。则隐含层节点的输出为:输出层节点的输出为:ijwjkvjk1()njijijizfwx1,2,,jq1()qkjkjkjyfvz1,2,,km通过上两式,可计算出一个输入模式的传播过程。(2)反向传播调整过程1)误差函数定义输入P个学习样本:第p个样本输入到网络后得到输出采用平方型误差函数,于是得到第p个样本的误差:式中,为期望输出。对于P个样本,全局误差为:12,,,Pxxxpky1,2,,kmpE211()2mpppkkkEtypkt21111()2PPmpppkkppkEEty2)输出层权值和阈值的变化采用累计误差BP算法调整,使全局误差E变小,即为学习速率jkvjkjkEvv输出层各神经元的权值调整公式为:输出层各神经元的阈值调整公式为:11()()PmpppjkkkkjpkvtyfSz11()()PmpppkkkkpktyfS3)隐含层权值和阈值的变化采用累计误差BP算法调整,使全局误差E变小,即为学习速率ij隐含层各神经元的权值调整公式为:隐含层各神经元的阈值调整公式为:ijijEww11()()()PmppppijkkkjkjipkwtyfSvfSx11()()()PmppppjkkkjkjpktyfSvfS(3)循环记忆训练为使网络的输出误差趋于极小值,对于BP网络输入的每一组训练模式,一般要经过数百次甚至上万次的循环记忆训练,才能使网络记住这一模式。这种循环记忆训练实际上就是反复前两步的正向传播输出过程和反向传播调整过程。(4)学习结果的判别当每次循环记忆训练结束后,都要进行学习结果的判别。判别的目的主要是检查输出误差是否已经小到允许的程度。如果小到了允许的程度,就可以结束整个学习过程,否则还要进行循环训练。学习或者说训练的过程是网络全局误差趋向于极小值的过程。2.7BP网络的改进(1)BP网络的不足1)需要较长的训练时间对于一些复杂的问题,BP算法可能要进行几小时甚至更长时间的训练,这主要是由学习速率太小所造成的,可采用变化的学习速率或自适应的学习速率来加以改进。2)不能完全训练在网络的训练过程中,当其权值调得过大,可能使得所有的或大部分神经元的加权总和偏大,这使得激活函数的输入工作在S型转移函数的饱和区,导致梯度变化率非常小,从而使得对网络权值的调节过程几乎停顿下来,通常为了避免这种现象的发生,一是选取较小的初始权值,二是采用较小的学习速率,这势必增加网络的训练时间。3)容易陷入局部极小值BP算法采用的是梯度下降法,训练是从某一起始点沿误差函数的斜面逐渐达到误差的最小值。对于复杂的网络,其误差函数为多维空间的曲面,因而在训练过程中可能陷入某一小谷区,而这一小谷区产生的是一个局部极小值。由此点向各方向变化均使误差增加,以致于使训练无法逃出这一局部极小值。4)结构不确定性网络隐含层的层数及单元数的选取无理论上的指导,而是根据经验确定的,因此网络的设计有时不是最佳的。(2)常用改进方法1)自适应学习速率法()(1)()(1)()(1)()()(1)()incdecktEtEttktEtEttEtEt学习率增量因子1inck学习率减量因子01deck2)附加动量法附加动量法是在梯度下降法的基础上引入动量系数。(1)()(1)Ewtwtw网络学习的过程就是修改权值的过程,该算法是以前一次的修正结果来影响本次修正量,当前一次的修正量过大时,式中第二项的符号将与前一次修正量的符号相反,从而使本次的修正量减小,起到减小振荡的作用;当前一次的修正量过小时,式中第二项的符号将与前一次修正量的符号相同,从而使本次的修正量增大,起到加速修正的作用。可见,附加动量法总是力图使同一梯度方向上的修正量增加。这种方法加速了收敛速度,并在一定程度上减小了陷入局部极小点的概率。3)自适应学习速率动量BP法该算法是将自适应学习速率法和附加动量法相结合,在网络训练过程中,不但使学习速率根据局部误差曲面做出不断调整,而且利用动量项使同一梯度方向上权值的修正量增加,起到加速修正的作用。其学习速率和附加动量的调节公式分别为:()(1)()(1)()(1)()()(1)()incdecktEtEttktEtEttEtEt(1)()(1)Ewtwtw4)基于误差自动调节修正因子的自适应学习速率法()()()01()()()0()0incdeckaEttEttkbEttEt