1、第3章 人工神经网络及模式识别人工神经网络及模式识别 2022-6-82引言引言 模式识别:模式识别:研究的是如何用计算机实现人脑的一些功能。人脑:人脑:可看作是由大量神经元组成的巨大的神经网络。人工神经网:1943年,McCulloch和Pitts提出了神经元神经元的数学模型1949年,Hebb提出神经元的学习准则学习准则,为神经网络的学习算法奠定了基础50年代末,Rosenblatt提出了感知器模型感知器模型,首次把神经网络的研究付诸工程实践。1982年,Hopfield提出了神经网络模型,设计出用电子线路实现这一网络的方案,开拓了神经网络用于联想记忆和优化计算的新途径,大大促进了神经网络
2、的研究。1986年,Rumelhart及LeeCun等提出了多层感知器的反向传播算法向传播算法,克服了阻碍感知器模型发展的重要障碍。现在神经网络的应用已渗透到多个领域,如智能控制、模式识别、信号处理、计算机视觉、优化计算、知识处理、生物医学工程等。2022-6-833.1 人工神经元人工神经元 3.1.1生物神经元生物神经元 胞体。胞体。是神经细胞的本体(可看成系统)是神经细胞的本体(可看成系统)树突。树突。长度较短,接受自其他神经元的信号(输入)长度较短,接受自其他神经元的信号(输入)轴突。轴突。它用以输出信号它用以输出信号突触。突触。它是一个神经元与另一个神经元相联系的部位,是一个神经它是
3、一个神经元与另一个神经元相联系的部位,是一个神经元轴突的端部将信号(兴奋)传递给下一个神经元的树突或胞体;元轴突的端部将信号(兴奋)传递给下一个神经元的树突或胞体; 对树突的突触多为兴奋性的,使下一个神经元兴奋;对树突的突触多为兴奋性的,使下一个神经元兴奋; 而对胞体的突触多为抑制性,其作用是阻止下一个神经元兴奋。而对胞体的突触多为抑制性,其作用是阻止下一个神经元兴奋。2022-6-84神经元的基本工作机制神经元的基本工作机制一个神经元有两种状态:兴奋和抑制。平时处于抑制抑制状态的神经元,其树突和胞体接收其他神经元经由突触传来的兴奋兴奋电位;多个输入在神经元中以代数和多个输入在神经元中以代数和
4、的方式叠加;如果输入兴奋总量超过某个阈值,神经元就会被激发进入兴奋状态,发出输出脉冲,并由轴突的突触传递给其他神经元。神经元被触发之后有一个不应期不应期,在此期间内不能被触发,然后阈值逐渐下降,恢复兴奋性。2022-6-853.1.2 人工神经元人工神经元 (1)输入输入xi :相当于其他神经元的输出相当于其他神经元的输出;(2) 权值权值 i :相当于突触的连接强度相当于突触的连接强度(3) f: 是一个非线性函数是一个非线性函数 ,如阈值函数或,如阈值函数或Sigmoid函数函数2022-6-86神经元的动作:神经元的动作:当f为阈值函数时,其输出为:也可写为:或:其中:2022-6-87
5、1,1y 0,1y选取不同的输出函数选取不同的输出函数f,y的取值范围也不同的取值范围也不同则则则则某些算法要求某些算法要求f可微,此时通常选用可微,此时通常选用Sigmoid函数:函数: 若若或:若或:若1,1y 则则则则或:或:Sigmoid函数的特性:函数的特性:1)非线性,单调性。2)无限次可微。3)当权值很大时可近似阈值函数。当权值很小时可近似线性函数。0,1y2022-6-88 如果神经元ui接收来自另一神经元uj的输出,则当这两个神经元同时兴奋时,从uj到ui的权值wij就得到加强。 具体到前述的神经元模型,可以将Hebb规则表现为如下的算法: 式中 是对第i个权值的修正量 是控
6、制学习速度的系数。太大会影响训练的稳定性,太太大会影响训练的稳定性,太小则使训练的收敛速度变慢,一般取小则使训练的收敛速度变慢,一般取0 0 11; 人工神经网络首先要以一定的学习准则进行学习,然后才能工作3.1.3 神经元的学习算法神经元的学习算法- Hebb学习规则学习规则iiyxi2022-6-893.2 前馈神经网络前馈神经网络 3.2.1 前馈神经网络前馈神经网络 (用于监督学习) 网络的神经元接受前一级输入,并输出到下一级,无反馈无反馈。 节点分为两类:输入节点输入节点与计算单元计算单元。 每个计算单元可有任意个输入有任意个输入,但只有一个输出只有一个输出,而输出可藕合到任意多个其
7、他节点的输入。 前馈网络通常分为不同的层层,第i层的输入只与第i-1层的输出相联。输入节点为第一层输入节点为第一层。输入和输出输入和输出节点由于可与外界相连,称为可见层可见层,而其他的中间层则称为隐层隐层 。2022-6-8103.2.2 感知器(感知器(Perceptron ) 也称双层神经网络、单计算层感知器(1)输入层, 也称为感知层也称为感知层 每个节点接收一个输入信号,n个输入信号构成输入列向量X (2)具有计算单元的输出层 有m个神经元节点,均有信息处理能力,m个节点向外部输出信息,构成输出列向量O。(3) 两层之间的连接权值 用权值列向量Wj表示,m个权向量构成单层感知器的权值矩
8、阵W。 感知器模型示意图感知器模型示意图 o1 oj om W1 Wj Wm x1 x2 xi xn2022-6-811感知器感知器用于模式识别用于模式识别 输入X:样本的特征向量。 输出O:每个节点输出为: 0()()()nTjjjijijiosg n n etsg nwxsg nWX输出向量输出向量O可以用来表示类别属性:可以用来表示类别属性:例如: 若X j时,应使对应于该类的输出节点的输出Oj=1, 而其他节点的输出则为Oi=0 (或-1),1, 2 , .,iij o1 oj om W1 Wj Wm x1 x2 xi xn2022-6-812例例: 单计算节点感知器单计算节点感知器
9、(1)设输入向量设输入向量 X=(x1 ,x2)T则输出为:ojx1-Tx2则由方程 w1j x1+w2j x2- Tj=0 确定了二维平面上的一条分界线。(2) 输入n维向量,X=(x1,x2,,xn)T wijx1+w2jx2+wnj Tj=0确定了n维空间上的一个分界平面可见:可见:一个最简单的单计算节点感知器具有分类功能。可实现线性分类器0Txwxw10Txwxw1oj2j21j1j2j21j1j x1 * * * * O * * O * * O O * O x2 * * O O O O感知器的学习规则规则 可以用已知类别的模式向量或特征向量作为训练集 若X j,应使对应于该类的输出节
10、点的输出Oj=1, 而其他节点的输出则为Oi=0 (或-1)设理想的输出为: Y=y1,y2,y3,.,ymT某次迭代(k)上的实际输出为: Y=y1,y2,y3,.,ymT 对权值利用Hebb规则作如下的修改: wij(k+1)= wij(k)+ wij(k) 其中: wij(k)=(yj-yj)xj, i=1,2,n; j=1,m 为学习率,用于控制调整速度,太大会影响训练的为学习率,用于控制调整速度,太大会影响训练的稳定性,太小则使训练的收敛速度变慢,一般稳定性,太小则使训练的收敛速度变慢,一般0 0 11;2022-6-813感知器学习规则的训练步骤:感知器学习规则的训练步骤: (1)
11、 对各权值w0j(0),w1j(0),wnj(0),j=1, 2,m (m为计算层的节点数)赋予较小的非零随机数; (2) 输入样本对Xp,Yp,其中Xp=(-1,x1p,x2p,xnp), Yp为期望的输出向量,上标p代表样本对的序号,样本集中的样本总数为P,p=1,2,P; (3)计算各节点的实际输出:yjp(k)=sgnWjT(k)Xp, j=1,2,.,m (4)调整各节点对应的权值: Wj(k+1)= Wj(k)+Yjp-Yjp(k)Xp, j=1, 2,m, (5)返回到步骤(2),输入下一对样本,周而复始直到对所有 样本,感知器的实际输出与期望输出相等: Yjp(k)=Yjp20
12、22-6-8142022-6-815 感知器的学习过程与求取线性判别函数的过程是等价的 感知器的一些特性: 两层感知器两层感知器只能用于解决线性可分线性可分问题。 学习过程收敛很快,且与初始值无关。2022-6-816例: 单计算节点感知器,3个输入。给定3对训练样本对如下:X1 = (-1,1,-2,0)T y1 = 1X2 = (-1,0,1.5,-0.5)T y2 = 1X3 = (-1,-1,1,0.5)T y3 =1 设初始权向量设初始权向量W(0)=(0.5,1,-1,0)T,=0.1=0.1。注意,输入向量中第一个分量注意,输入向量中第一个分量x0恒等于恒等于-1,权向量中第一,
13、权向量中第一个分量为阈值,试根据以上学习规则训练该感知器。个分量为阈值,试根据以上学习规则训练该感知器。2022-6-817解:解:第一步第一步 输入输入X1,得得 WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5 , y1(0)=sgn(2.5)=1W(1)= W(0)+y1- y1(0) X1 =(0.5,1,-1,0)T+0.1(-1-1)(-1,1,-2,0)T =(0.7,0.8,-0.6,0)T第二步第二步 输入输入X2,得,得 WT(1)X2=(0.7,0.8,-0.6,0)(-1,0,1.5,-0.5)T=-1.6 y2(1)=sgn(-1.6)= -1
14、W(2)= W(1)+y2- y2(1) X2 =(0.7,0.8,-0.6,0)T+0.1-1-(-1)(-1,0,1.5,-0.5)T =(0.7,0.8,-0.6,0)T = W(1)第三步第三步 输入输入X3,得,得 WT(2)X3=(0.7,0.8,-0.6,0)(-1,-1,1,0.5)T=-2.1 y3(2)=sgn(-2.1)=-1W(3)= W(2)+d3- o3(2) X3 =(0.7,0.8,-0.6,0)T+0.11-(-1)(-1,-1,1,0.5)T =(0.5,0.6,-0.4,0.1)T 第四步第四步 返回到第一步返回到第一步, 继续训练直到继续训练直到 yp(
15、k)- yp=03.2.3 三层前馈网络及三层前馈网络及MLP 三层前馈网络三层前馈网络由输入层、中间层和输出层构成。 有两个计算层 也称三层感知器层感知器 能够求解非线性问题 三层或三层以上的 前馈网络通常又被叫做多层感知器(Multi-Layer Perceptron简称MLP)。由三部分组成:由三部分组成: 、一组感知单元组成输入层;、一组感知单元组成输入层; 、一层或多层计算节、一层或多层计算节点的隐藏层;点的隐藏层; 、一层计算节点的输出层。、一层计算节点的输出层。 MLP的表示:输入节点数-第1隐层节点数-第2隐层节点数-,-输出节点数。如图,可表示为:4-4-3网络2022-6-
16、818用感知器实现逻辑用感知器实现逻辑“与与”功能功能 y=sgn(0.5x1+0.5x2-0.75)2022-6-819感知器结构感知器结构 x1 0.5 0.5 y x2 0.75 -1x1x2y000010100111逻辑逻辑“与与”真值表真值表用感知器实现逻辑“或”功能 y=sgn(x1+x2-0.5)2022-6-820感知器结构感知器结构 x1 1 1 y x2 0.5 -1x1x2y000011101111逻辑逻辑“或或”真值表真值表2022-6-821用感知器实现逻辑用感知器实现逻辑“与非与非”功能功能感知器结构感知器结构 x1 0.5 0.5 y x2 0.75 -1y=sg
17、n(-0.5x1-0.5x2+0.75)x1x2y001011101110“与非与非”真值表真值表2022-6-822单感知器不能实现单感知器不能实现“异或异或”功能功能“异或异或”的真值表的真值表x1x2y000011101110只能解决线性可分问题2022-6-823多层感知器可可实现非线性函数 人工神经元可实现与非门,任何逻辑函数都可以由与非门组成 任何逻辑函数都可用一个三层(只有两层计算单元)的前馈网络实现。 当神经元的输出函数为Sigmoid函数时,上述结论可以推广到连续的非线性函数。 在很宽松的条件下,三层前馈网络可以逼近任意的多元非线性函数,突破了二层前馈网络线性可分的限制。 感
18、知器,决策域:平面; 双层计算单元,决策域:凸区域 三层计算单元,决策域: 任意形状2022-6-8242022-6-824MLP能实现能实现“异或异或”功能功能“异或异或”的真值表的真值表x1x2y y1 y20000 00110 11011 0110 0 0只能解决线性可分问题2222-2-2x1x2yy1=sgn(2x1-2x2) ; y12=sgn(-2x1+2x2)y=sgn(2y1+2y2)2022-6-8253.2.4反向传播算法(反向传播算法(BP法法) 三层前馈网络的适用范围大大超过二层前馈网络,但学习算法较为复杂,主要困难是中间的隐层不直接与外界连接,无法直接计算其误差。
19、BP算法(Back-Propogation)可解决这一问题。 主要思想:从后向前(反向)逐层传播输出层的误差,以间接算出隐层误差。 算法分为两个阶段: 第一阶段(正向过程):输入信息从输入层经隐层逐层计算各单元的输出值; 第二阶段(反向传播过程):输出误差逐层向前算出隐层各单元的误差,并用此误差修正前层权值。 在反向传播算法中通常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数。2022-6-826第一阶段(正向过程) 考虑如图所示的某层的某单元Oj 当输入样本某个样本时,则 若 输出函数是Sigmoid函数,则2022-6-826i: 前层第i个单元k: 后层
20、第k个单元Oj: 代表本层输出wij:前层到本层的权值jijijjinetw OOf net()jjjnetOf nete()11第二阶段(反向传播过程) 对于输出层,Oj是实际输出,与理想输出yj的误差:局部梯度: 权值对误差的影响:负梯度修正权值:修正算法:2022-6-827i: 前层第i个单元;: 后层第k个单元Oj: 本层输出;wij:前层到本层的权值jjjEyO()212jjEnet;ijjjijjijnetEEOwnetwijjiwO ijijijw kw kw k()( )( )1实际计算时,为了加快收敛速度,一般要加上前次权值修正量,称为惯性量:ijjiijw kOw k (
21、 )() 1:步长:惯性系数局部梯度的计算若节点j是输出单元,则输出量可得到:yj =Oj2022-6-828jjjjjjjjyEEyOfnetnetynet () ()若节点j不是输出单元,则jkjkijjkkjkjjOnetEEw fnetnetnetOnet()若 输出函数是Sigmoid函数jjjnetjjjOf netefnetOO();()()111输出单元:jjjjjyO OO ()()1非输出单元jkijjjjjkijkkw OOOOw()()112022-6-8292022-6-829(逐个样本修正的)(逐个样本修正的)BP算法算法(1)选定权系数初始值wij, 步长, 惯性
22、系数(2)重复下述过程直至收敛(对各样本依次计算)从前向后各层计算各单元(前向)计算误差: 若E=0或小于一个设定的小常数E0,算法终止对输出层计算:从后向前计算各隐层:计算并保存各权值修正量修正权值jjijijjnetinetw OOf nete()11jjjjjyO OO()()1jjjkijkOOw()1ijjiijw kOw k ( )() 1ijijijw kw kw k()( )( )1jjjEyO()212(成批样本修正的)(成批样本修正的)BP算法算法 在(逐个样本修正的)(逐个样本修正的)BP算法中,可以按算法中,可以按所有样本得到的所有样本得到的 求和,然后按总误差修求和,
23、然后按总误差修正。正。 算法类似。算法类似。2022-6-830j 训练误差与迭代次数的关系曲线,称为学习曲线。 学习曲线可以看出收敛速率及收敛情况。 误差 迭代次数学习曲线2022-6-831BP算法的问题算法的问题 BP算法解决了隐层权值修正问题。可以用于三层或更多层的前馈网络。 问题: 可能陷入局部极小点,不能达到全局收敛。 初始权值不能设为0或都相同(此时,各隐层单元无差异,运算不能正常进行)。 初始权值对收敛有影响。解决办法:解决办法: 用较小的随机数做初始权值。 不收敛时,改变权值,试算。2022-6-832参数参数和和的影响 :影响收敛性影响 不同的问题其最佳值相差很大 通常可在
24、0.10.3之间试探,复杂的问题用较大的值。 :影响收敛速度 在很多应用中其值可在0.91之间选择(比如0.95) 1 时,不收敛; 也可不用惯性项(即 =0)。 2022-6-8332022-6-834MLP用于模式识别用于模式识别 三层网络可以应付任何问题,但对于较复杂的问题,更多层的网络有可能获得更精简的结果。 输入层:输入层:由特征向量构成。输入单元数是特征维数 输出层:输出层:由类别构成。输出单元数目可以是类数。 隐层单元数:隐层单元数:单元数目如何确定则缺乏有效的方法。 问题越复杂,需要的隐层单元越多; 隐层单元越多越容易收敛。但会增加计算量,而且会产生“过学习”效果,使对未出现过
25、的样本的推广能力变差。 隐层单元数难以确定时,可以先选较多单元数,待学习完成后,再逐步删除一些隐层单元。若性能明显变坏,则恢复原状,逐个测试各隐层单元的贡献,把不必要的删去。2022-6-8353.2.5 其他神经网络其他神经网络 径向基函数网络(可用于非径向基函数网络(可用于非监督学习) 自组织映射神经网络(SOM)网络 Hopfield网络:是一种反馈网络网络:是一种反馈网络2022-6-8362022-6-8363.3 竞争学习和侧抑制竞争学习和侧抑制 前述前馈网络属于监督学习,需要同时提供输入样本和相应的理想输出。 引进竞争机制的前馈网络可以实现无监督学习,完成聚类的任务。竞争学习网络
26、的结构与二层前馈网络类似,只是在输出层加上了侧抑制,如图所示。竞争学习网络结构示意图2022-6-8372022-6-837侧抑制(不讲,自学)侧抑制(不讲,自学) 侧抑制是在输出层各单元之间相互用较大的负权值输入对方的输出,这种互连构成正反馈,类似于双稳态或多稳态触发器。 竞争的结果是,具有较大输入的单元输出为1,而其他单元的输出都为0。网络动作机制为: 2022-6-8382022-6-838初始值及权向量的处理:初始值及权向量的处理: 学习时先用随机数作为权值初始值,为了防止某个输出单元的权值过大造成不应有的侧重,在初始值和整个学习过程中随时将权向量进行归一化处理,即| 1j使得学习算法
27、:学习算法: 当样本为归一化样本( |x|=1 )时,学习可按如下算法进行:2022-6-8392022-6-839注意的问题注意的问题 网络不可能收敛。网络不可能收敛。因此可以采取强制收敛的方法,在学习过程中将步长参数缓慢减少至零。 学习结果受初始值和学习样本顺序影响很大。学习结果受初始值和学习样本顺序影响很大。聚类的结果未必是我们想要的结果,因此在实际应用时需要加入适当的人工干预。例如先选择少量典型性好的样本作为权向量初始。2022-6-8403.4 神经网络用于模式识别的典型做法神经网络用于模式识别的典型做法 3.4.1 多层前馈网络用于模式识别多层前馈网络用于模式识别 在各种人工神经网
28、络模型中,在模式识别中应用最多的也是最成功的当数多层前馈网络,其中又以采用BP学习算法的多层感知器(习惯上也简称为BP网络)为代表。 由于网络采用的是监督学习方式进行训练,因此只能用于监督模式识别问题。 一般有以下两种应用方式:一般有以下两种应用方式: 1、多输出型、多输出型 2、单输出型、单输出型2022-6-841一、多输出型一、多输出型 输入层:输入层:对应样本特征向量,每一个节点对应一个特征 输出层:节点数等于类别数,一个输出节点对应一个类。 训练阶段:训练阶段:如果输入训练样本的类别标号是i,则训练时的期望输出设为第个节点为1,而其余输出节点均为0。 识别阶段识别阶段:未知类别的样本
29、作用到输入端时,样本的类别判定为与输出值最大的那个节点对应的类别。若输出最大的节点与其他节点输出的差较小,可作拒绝决策。“1-0”编码模式或者编码模式或者“C中取中取1”模式:模式:m个输出节点,用它们的某种编码来代表C个类别。2022-6-842二、单输出型二、单输出型 多输出方式多输出方式: 网络要同时适应所有类别,需要更多的隐层需要更多的隐层节点节点学习过程往往收敛较慢收敛较慢 多个多输入单输出形式的网络,每个网络多个多输入单输出形式的网络,每个网络只完成两类两类分类。 输入节点对应样本一个特征而输出层节点只有一个。 训练:训练:为每个类建立一个网络进行训练。网络的隐层节点数可以不同,对
30、每类分别训练,属于这类的样本的期望输出设为1,属于其他类的样本的期望输出设为0 识别阶段:识别阶段:将未知类别样本输入到每一个网络,若某个网络输出接近1(或大于某个阈值),则该样本属于这一类; 若有多个网络的输出大于阈值,则(1)类别判断为最大输出的那一类;(2)拒绝决策; 若所有网络的输出均小于阈值时也可采取类似的决策方法。2022-6-843 两类情况:两类情况:只需要一个单输出网络即可。 将一类对应于输出1,另一类对应于输出0。 识别时只要输出大干0.5则决策为第一类,否则为第二类。 也可以在两类之间设定一个阈值,当输出在这个阈值之间时作拒绝决策。2022-6-8443.5 前馈神经网络
31、与模式识别的关系前馈神经网络与模式识别的关系 单(计算层)层感知器:单(计算层)层感知器:是一种线性分类器 多(计算层)层感知器:多(计算层)层感知器:可处理非线性问题 自组织映射网络:自组织映射网络:如果使其邻域交互作用设为零则等价于等价于C C均值聚类算法均值聚类算法。2022-6-8453.5.1隐层的特征提取作用隐层的特征提取作用 MLP能较好地完成模式识别任务的一个重要原因原因是: 神经网络神经网络能够实现一种特殊的非线性变换非线性变换,把输入空间变换到由其隐层输出所张成的空间,使在这个空间中分类问题变得比较容易。 这种变换把一种特殊的特征提取准则最大化,可以看作是Fisher线性判别的一种非线性多维推广。2022-6-8463.5.2神经网络与贝叶斯分类器神经网络与贝叶斯分类器 理论分析和实验结果表明,很多情况下多层感知器的输出多层感知器的输出可以看作是对贝叶斯后验概率的估计。可以看作是对贝叶斯后验概率的估计。因此,神经网络做分类器在某些情况下可成为最优分类器 例如:可以证明,当网络输出采用“C中取1”的类别编码,并且采用最小均方误差作为训练目标时,多层感知器的输出就是对贝叶斯后验概率的估计。 但是,目前为止,对网络输出在什么条件下能够逼近后验概率不得而知,只是在一些特殊的情况下有一些结论。