第4章人工神经网络内容:教材109-119、191-200页4.1基础知识(补充)4.2神经元与神经网络4.3反向传播神经网络4.4离散的Hopfield网络4.1基础知识1最速下降法(梯度法)2Matlab程序设计语言与神经网络工具箱1最速下降法最速下降法(又称梯度法)是1847年Cauchy提出来的最优化算法,用于求解非线性函数的局部最小值(最小点)min()nRfxx回顾高等数学中一元函数的求极值问题:极小点的条件是:'()0''()0fxfxn元函数极小点的条件:矩阵是半正定的T2()0fyxy12()()()0...()nfxfxffxxxxx21121222122212()()()...()()()...()0...()()()nnnnnfffxxxxxfffxxxxxffffxxxxxxxxxxxxxxxHesse矩阵梯度自然而然想到的求极小值的方法令梯度为零,通过解非线性方程组,求出一组极值点根据每一个极值点处的矩阵是否为半正定,来判断极小值点在实际中,这一方法是不可行的:变量的个数多不易求解非线性方程组不易判断矩阵是否半正定在最优化技术中,采用迭代的方法求出其中的一个解不同的初始值可能对应于不同的解,并求出局部极值在最速下降法中,以负梯度方向作为极小化算法的下降方向迭代格式为kkkkgxx1梯度k是迭代步长,可以用一维搜索来确定()minkkkkfxg终止准则:2kg向量的2范数:12221()niixx最速下降法的计算步骤:1:给定初始点x1,允许误差ε,置k=12:计算搜索方向g(xk)=f(xk)3:如果||g(x)||2≤ε,则终止计算,算法找到解。否则,从xk出发,沿-g(xk)进行一维搜索,求出αk,使得f(xk-αkg(xk))=minf(xk-αg(xk))4:置xk+1=xk-αkg(xk),k=k+1,转到步2说明:在编程时,还需要设置最大允许迭代次数,以提前终止迭代过程在人工神经网络的算法中经常人为地设定迭代步长(学习率)(常量或者单调减小)梯度法的特点:一般来说,只能找到一个局部最小点(多解)收敛速度较慢算法结构简单,易于用各种编程语言来实现2Matlab程序设计语言与神经网络工具箱(1)Matlab简介Matlab(MatrixLaboratory)是美国MathWorks公司的产品,是一种功能强大、效率高、便于进行科学和工程计算的交互式软件包。当前使用的版本:Matlab6.1、Matlab6.5和Matlab7.0Matlab的特点:①高效方便的矩阵和数组运算例如:求Ax=b,语句是x=A\b求特征值,语句是e=eig(A)②编程效率高Matlab语言简洁紧凑,使用灵活方便,程序书写形式自由。库函数丰富③结构化/面向对象当前Matlab版本采用C++编写的,既有结构化的控制语句(for,while,break,continue,if),又有面向对象编程的特性④方便的绘图功能能够绘制各种二维、三维图件⑤用户使用方便使用方式有命令行和.m文件(脚本M文件、函数M文件)。后者作为编译型语言使用:编辑-编译-连接-执行与调试⑥功能强大的工具箱近三十个工具箱⑦扩充能力强用户可以自己编写函数,建立新的库函数和扩充库函数。核心文件和工具箱文件都是可读可写的源文件,用户可以修改。可以与C,C++语言混合编程⑧计算速度比C语言慢,易学会难精通(2)Matlab语言的要点注释行注释行的开头是“%”变量变量命名规则是:①区分大小写②长度最多不能超过19个字符③变量名必须以字母开头,由字母、数字和下划线组成数组数组是一系列数的有序排列,用方括号“[]”表示数组的下标从1开始元素之间用“空格”或“逗号”分开例:x=[0,1,2,3,4,5,6];(行向量)x(1):第一个元素x(1:5):第一到第五个元素x(3:-1:1):第三到第一个元素注意:如果语句最后没有“;”,则显示x的所有值有分号则不显示矩阵矩阵用“方括号”来表示同一行的数据用“空格”或“逗号”隔开不同行的数据用“分号”隔开例:A=[1,0,0;0,1,0;0,0,1];引用一个元素可以用两个下标来表示例A(i,j)引用多个元素可以用冒号来表示例A(:,j):第j列的所有元素4.1.2.3神经网络工具箱神经网络工具箱包含了人工神经网络中的主要模型与算法,具体有:①感知器神经网络(Perceptron,Rosenblatt,1957)②线性神经网路(Adaline,Widrow和Hoff,1960)③BP神经网络(BP,Rumelhart和McCelland,1986)④自组织网络(SOM,Kohonen,1980)⑤离散的Hopfield网络(Hopfield,1986)第4章人工神经网络4.1基础知识(补充)4.2神经元与神经网络4.3反向传播神经网络4.4离散的Hopfield网络4.2.1生理神经元4.2.2人工神经元4.2.3神经网络4.2.1生理神经元1生理神经元的结构2生理神经元的工作原理典型的神经元分成:细胞体(cellbody)突(process)1生理神经元的结构轴突(axon)树突(dendrite)生理神经元的组成轴突是个突出部分,长度可达lm,把本神经元的输出发送到与其相连接的其它神经元生理神经元的组成输出端树突是突出部分,但一般较短,且分枝很多,与其它神经元的轴突相连,以接收来自其它神经元的生物信号生理神经元的组成输入端输出端突触是轴突的末端与树突进行信号传递的界面生理神经元的组成接口输出端输入端输入端2神经元的工作原理只有神经元所有输入的总效应达到阈值电平后,神经元才会产生一个全强度的输出窄脉冲,从细胞体经轴突进入轴突分枝。此时,称为神经元的触发(抑制转化为兴奋)神经元通过突触形成的网络,传递神经元间的兴奋与抑制;大脑的全部神经元构成极其复杂的拓扑网络群体,用于实现记忆与思维4.2.2人工神经元人工神经元是生理神经元的数学模型,由McCulloch与Pitts在1943年首先建立的,现在的模型经过后人适当的改进与完善在人工神经元模型中:用权值和乘法器模拟突触特性用加法器模拟树突的互联作用用与阈值比较来模拟细胞体内电化学作用产生的开关特性n个输入xiR(i=1,…,n),相当于其它神经元的输出值,其中n是输入(信号)的数目(即,与其相连的其他神经元的个数)人工神经元模型n个连接权系数(权值)wjiR(i=1,…,n),相当于突触的连接强度(对于激发状态取正值,对于抑制状态取负值)θj:神经元的阈值,相当于动作电平的阈值总输入:输入信号的加权和,即1njiiiwx单输出y为:1()()njjiijiytfwxf称为激发函数、作用函数、激励函数、变换函数、转换函数、传递函数激发函数f的常用形式①阈值函数或者阶跃函数(非线性函数,不可微)1x0()0x0fx②符号函数(非线性函数,不可微)1x0()sgn()1x0fxx③线性函数(线性函数、1阶可微)()fxx④Sigmoid函数(非线性函数,任意阶可微)1()x(,)()[1,1]1xxefxfxe1()x(,)()[0,1]1xfxfxeSigmoid函数的特点:第一、非线性、单调性(单调增)第二、无限次可微第三、当值很大时,可以近似阈值函数或符号函数第四、当值很小时,可以近似线性函数神经元的动作:①求加权和②与阈值比较③用激发函数得到输出1()()njjiijiytfwx公式表示上的简化令wj0=-θj,并记wj=(wj0,wj1,…,wjn)Tx=(1,x1,…,xn)T则有yj=f(wjTx)注意:有些神经元可能不包含阈值图形表示上的简化将神经元简化为圆圈或者实心元阈值4.2.3神经网络人工神经网络是由大量处理单元(人工神经元)相互连结组成的非线性、大规模、自适应的动力系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式,设计出一种新的机器使之具有像人脑那样的信息处理能力人工神经网络的特点①并行分布处理神经网络具有高度的并行结构和并行实现能力,因而具有较好的容错能力和较快的总体处理能力,所以特别适于实时和动态处理②非线性映射神经网络具有高度非线性映射(变换)能力,是处理非线性问题的一种有效手段③学习能力神经网络通过样本数据完成学习或训练。训练后的神经网络具有推广或者泛化能力(对未来数据的预测能力)。因此,神经网络能够解决数学模型或规则难以处理的问题(类似于黑盒子)④适应性与集成性神经网络可以用于在线处理,并能同时进行定量和定性操作。神经网络的强适应和信息融合能力使得它可以同时输入大量不同的控制信号,解决输入信息间的互补和冗余问题,并实现信息集成和融合处理。所以,特别适于复杂、大规模和多变量系统⑤硬件实现除了软件实现外,神经网络还用硬件实现。超大规模集成电路实现硬件的面世,使得神经网络成为具有快速和大规模处理能力的网络本课程介绍的神经网络模型有:多层感知器及其BP训练算法(BP网络)Hopfield网络(Hopfield网络)