第3章人工神经网络及模式识别2020/1/282引言•模式识别:研究的是如何用计算机实现人脑的一些功能。•人脑:可看作是由大量神经元组成的巨大的神经网络。•人工神经网:•1943年,McCulloch和Pitts提出了神经元的数学模型•1949年,Hebb提出神经元的学习准则,为神经网络的学习算法奠定了基础•50年代末,Rosenblatt提出了感知器模型,首次把神经网络的研究付诸工程实践。•1982年,Hopfield提出了神经网络模型,设计出用电子线路实现这一网络的方案,开拓了神经网络用于联想记忆和优化计算的新途径,大大促进了神经网络的研究。•1986年,Rumelhart及LeeCun等提出了多层感知器的反向传播算法,克服了阻碍感知器模型发展的重要障碍。•现在神经网络的应用已渗透到多个领域,如智能控制、模式识别、信号处理、计算机视觉、优化计算、知识处理、生物医学工程等。2020/1/2833.1人工神经元•3.1.1生物神经元•胞体。是神经细胞的本体(可看成系统)•树突。长度较短,接受自其他神经元的信号(输入)•轴突。它用以输出信号•突触。它是一个神经元与另一个神经元相联系的部位,是一个神经元轴突的端部将信号(兴奋)传递给下一个神经元的树突或胞体;•对树突的突触多为兴奋性的,使下一个神经元兴奋;•而对胞体的突触多为抑制性,其作用是阻止下一个神经元兴奋。2020/1/284神经元的基本工作机制•一个神经元有两种状态:兴奋和抑制。•平时处于抑制状态的神经元,其树突和胞体接收其他神经元经由突触传来的兴奋电位;•多个输入在神经元中以代数和的方式叠加;•如果输入兴奋总量超过某个阈值,神经元就会被激发进入兴奋状态,发出输出脉冲,并由轴突的突触传递给其他神经元。•神经元被触发之后有一个不应期,在此期间内不能被触发,然后阈值逐渐下降,恢复兴奋性。2020/1/2853.1.2人工神经元(1)输入xi:相当于其他神经元的输出;(2)权值ωi:相当于突触的连接强度(3)f:是一个非线性函数,如阈值函数或Sigmoid函数2020/1/286神经元的动作:当f为阈值函数时,其输出为:也可写为:或:其中:2020/1/2871,1y0,1y选取不同的输出函数f,y的取值范围也不同则则某些算法要求f可微,此时通常选用Sigmoid函数:若或:若1,1y则则或:Sigmoid函数的特性:1)非线性,单调性。2)无限次可微。3)当权值很大时可近似阈值函数。当权值很小时可近似线性函数。0,1y2020/1/288•如果神经元ui接收来自另一神经元uj的输出,则当这两个神经元同时兴奋时,从uj到ui的权值wij就得到加强。•具体到前述的神经元模型,可以将Hebb规则表现为如下的算法:••式中是对第i个权值的修正量•η是控制学习速度的系数。太大会影响训练的稳定性,太小则使训练的收敛速度变慢,一般取0<η≤1;•人工神经网络首先要以一定的学习准则进行学习,然后才能工作3.1.3神经元的学习算法–--Hebb学习规则iiyxi2020/1/2893.2前馈神经网络•3.2.1前馈神经网络(用于监督学习)•网络的神经元接受前一级输入,并输出到下一级,无反馈。•节点分为两类:输入节点与计算单元。•每个计算单元可有任意个输入,但只有一个输出,而输出可藕合到任意多个其他节点的输入。•前馈网络通常分为不同的层,第i层的输入只与第i-1层的输出相联。输入节点为第一层。输入和输出节点由于可与外界相连,称为可见层,而其他的中间层则称为隐层。2020/1/28103.2.2感知器(Perceptron)•也称双层神经网络、单计算层感知器(1)输入层,也称为感知层每个节点接收一个输入信号,n个输入信号构成输入列向量X(2)具有计算单元的输出层有m个神经元节点,均有信息处理能力,m个节点向外部输出信息,构成输出列向量O。(3)两层之间的连接权值用权值列向量Wj表示,m个权向量构成单层感知器的权值矩阵W。感知器模型示意图o1…oj…omW1○Wj○Wm○○○○○x1x2…xi…xn2020/1/2811感知器用于模式识别输入X:样本的特征向量。输出O:每个节点输出为:0()()()nTjjjijijiosgnnetsgnwxsgnWX输出向量O可以用来表示类别属性:例如:若X∈ωj时,应使对应于该类的输出节点的输出Oj=1,而其他节点的输出则为Oi=0(或-1),1,2,...,iijo1…oj…omW1○Wj○Wm○○○○○x1x2…xi…xn2020/1/2812例:单计算节点感知器(1)设输入向量X=(x1,x2)T则输出为:ojx1-Tx2则由方程w1jx1+w2jx2-Tj=0确定了二维平面上的一条分界线。(2)输入n维向量,X=(x1,x2,…,xn)Twijx1+w2jx2+…+wnj–Tj=0确定了n维空间上的一个分界平面可见:一个最简单的单计算节点感知器具有分类功能。可实现线性分类器0Txwxw10Txwxw1oj2j21j1j2j21j1jx1****O**O**OO*Ox2**OOOO感知器的学习规则•可以用已知类别的模式向量或特征向量作为训练集若X∈ωj,应使对应于该类的输出节点的输出Oj=1,而其他节点的输出则为Oi=0(或-1)设理想的输出为:Y=[y1,y2,y3,….,ym]T某次迭代(k)上的实际输出为:Y’=[y’1,y’2,y’3,….,y’m]T•对权值ω利用Hebb规则作如下的修改:wij(k+1)=wij(k)+Δwij(k)其中:Δwij(k)=η(yj-y’j)xj,i=1,2,…,n;j=1,…,mη为学习率,用于控制调整速度,太大会影响训练的稳定性,太小则使训练的收敛速度变慢,一般0<η≤1;2020/1/2813感知器学习规则的训练步骤:•(1)对各权值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)=sgn[WjT(k)Xp],j=1,2,...,m•(4)调整各节点对应的权值:Wj(k+1)=Wj(k)+η[Yjp-Yjp(k)]Xp,j=1,2,┄,m,•(5)返回到步骤(2),输入下一对样本,周而复始直到对所有样本,感知器的实际输出与期望输出相等:Yjp(k)=Yjp2020/1/28142020/1/2815•感知器的学习过程与求取线性判别函数的过程是等价的•感知器的一些特性:•①两层感知器只能用于解决线性可分问题。•②学习过程收敛很快,且与初始值无关。2020/1/2816例:单计算节点感知器,3个输入。给定3对训练样本对如下:X1=(-1,1,-2,0)Ty1=1X2=(-1,0,1.5,-0.5)Ty2=1X3=(-1,-1,1,0.5)Ty3=1设初始权向量W(0)=(0.5,1,-1,0)T,η=0.1。注意,输入向量中第一个分量x0恒等于-1,权向量中第一个分量为阈值,试根据以上学习规则训练该感知器。2020/1/2817解:第一步输入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.6y2(1)=sgn(-1.6)=-1W(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.1y3(2)=sgn(-2.1)=-1W(3)=W(2)+η[d3-o3(2)]X3=(0.7,0.8,-0.6,0)T+0.1[1-(-1)](-1,-1,1,0.5)T=(0.5,0.6,-0.4,0.1)T第四步返回到第一步,继续训练直到yp(k)-yp=03.2.3三层前馈网络及MLP•三层前馈网络由输入层、中间层和输出层构成。•有两个计算层•也称三层感知器•能够求解非线性问题•三层或三层以上的前馈网络通常又被叫做多层感知器(Multi-LayerPerceptron.简称MLP)。由三部分组成:①、一组感知单元组成输入层;②、一层或多层计算节点的隐藏层;③、一层计算节点的输出层。•MLP的表示:输入节点数-第1隐层节点数-第2隐层节点数-…,-输出节点数。如图,可表示为:4-4-3网络2020/1/2818用感知器实现逻辑“与”功能•y=sgn(0.5x1+0.5x2-0.75)2020/1/2819感知器结构x1○0.50.5○yx2○0.75-1x1x2y000010100111逻辑“与”真值表用感知器实现逻辑“或”功能•y=sgn(x1+x2-0.5)2020/1/2820感知器结构x1○11○yx2○0.5-1x1x2y000011101111逻辑“或”真值表2020/1/2821用感知器实现逻辑“与非”功能感知器结构x1○0.50.5○yx2○0.75-1y=sgn(-0.5x1-0.5x2+0.75)x1x2y001011101110“与非”真值表2020/1/2822单感知器不能实现“异或”功能“异或”的真值表x1x2y000011101110只能解决线性可分问题2020/1/2823多层感知器可实现非线性函数•人工神经元可实现与非门,任何逻辑函数都可以由与非门组成•任何逻辑函数都可用一个三层(只有两层计算单元)的前馈网络实现。•当神经元的输出函数为Sigmoid函数时,上述结论可以推广到连续的非线性函数。•在很宽松的条件下,三层前馈网络可以逼近任意的多元非线性函数,突破了二层前馈网络线性可分的限制。•感知器,决策域:平面;•双层计算单元,决策域:凸区域•三层计算单元,决策域:任意形状2020/1/28242020/1/2824MLP能实现“异或”功能“异或”的真值表x1x2yy1y200000011011011011000只能解决线性可分问题2222-2-2x1x2yy1=sgn(2x1-2x2);y12=sgn(-2x1+2x2)y=sgn(2y1+2y2)2020/1/28253.2.4反向传播算法(BP法)•三层前馈网络的适用范围大大超过二层前馈网络,但学习算法较为复杂,主要困难是中间的隐层不直接与外界连接,无法直接计算其误差。•BP算法(Back-Propogation)可解决这一问题。•主要思想:从后向前(反向)逐层传播输出层的误差,以间接算出隐层误差。•算法分为两个阶段:•第一阶段(正向过程):输入信息从输入层经隐层逐层计算各单元的输出值;•第二阶段(反向传播过程):输出误差逐层向前算出隐层各单元的误差,并用此误差修正前层权值。•在反向传播算法中通常采用梯度法修正权值,为此要求输出函数可微,通常采用Sigmoid函数作为输出函数。2020/1/2826第一阶段(正向过程)•考虑如图所示的某层的某单元Oj•当输入样本某个样本时,则•若输出函数是Sigmoid函数,则2020/1/2826i:前层第i个单元k:后层第k个单元Oj:代表本层输出wij:前层到本层的权值jijijjinetwOOfnet()jjjnetOfnete()11第二阶段(反向传播过程)对于输出层,Oj是实际输出,与理想输出yj的误差:局部梯度:权值对误差的影响:负梯度修正权值:修正算法:2020/1/2