《第一部分计算机网络知识》由会员分享,可在线阅读,更多相关《第一部分计算机网络知识(58页珍藏版)》请在金锄头文库上搜索。
1、人工神经网络人工神经网络信息学院-黄浩27 九月 2024本章主要介绍最常用的两种前馈网络: BP (Back Propagation)神经网络和径向基函数神经网络,以及它的前身感知器。23人工神经网络人工神经网络一个人工神经网络(Artificial neural network,简称ANN)就是要在当代数字计算机现有规模的约束下,来模拟这种大量的并行性,并在实现这一工作时,使它能显示许多和生物学大脑相类似的特性。5n1958年,美国心理学家Frank Rosenblatt提出一种具有单层计算单元的神经网络,即感知器。感知器是模拟人的视觉接受环境信息,并由神经冲动进行信息传递。感知器研究中首
2、次提出了自组织、自学习的思想,而且对所解决的问题存在着收敛算法,并能从数学上严格证明,因而对神经网络的研究起了非常重要的推动作用。单层感知器的结构和功能都很简单,以至于在解决实际问题是很少采用,但由于它在神经网络研究中具有重要意义,是研究其他网络的基础,而且较易学习和理解,适合于作为神经网络的起点。感知器感知器6感知器模型7净输入:输出:感知器模型感知器模型8(1)设输入向量X=(x1 ,x2)T输出:则由方程 w1jx1+w2jx2-Tj=0 确定了二维平面上的一条分界线。ojx1-1x2感知器的功能感知器的功能9感知器的功能(二维)感知器的功能(二维)感知器的功能(二维)感知器的功能(二维
3、)10wij x1+w2j x2 Tj = 0wij x1 = Tj - w2j x2x1 = (Tj -w2j x2) / wij = - ( w2j/ wij ) x2 +Tj / wij = a x2 +c 11设输入向量X=(x1,x2,x3)T输出:则由方程 wijx1+w2jx2+w3j Tj=0 确定了三维空间上的一个分界平面。 x2ojx1x3-112wij x1+w2j x2 +w3j x3 Tj = 0 x1 = a x2 +b x3 +c 是什么?13设输入向量X=(x1, x2, , xn)T则由方程 wijx1+w2jx2+wnj Tj=0确定了n维空间上的一个分界平
4、面。 输出:wijx1+w2jx2+wnj Tj=014 一个最简单的单计算节点感知器具有分类功能。其分类原理是将分类知识存储于感知器的权向量(包含了阈值)中,由权向量确定的分类判决界面将输入模式分为两类。感知器的功能感知器的功能15例例 用感知器实现逻辑用感知器实现逻辑“与与”功能功能x1x2y000010100111逻辑“与”真值表16例一 用感知器实现逻辑“与”功能感知器结构w1x1+w2x2 -T=0 0.5x1+0.5x2-0.75=017例例例例 用感知器实现逻辑用感知器实现逻辑用感知器实现逻辑用感知器实现逻辑“ “或或或或” ”功能功能功能功能x1x2y000011101111逻
5、辑“或”真值表18用感知器实现逻辑“或”功能感知器结构 w1x1+w2x2 -T=0 x1+x2-0.5=019o关键问题就是求20感知器的学习感知器的学习oPerceptron(感知器)学习规则式中,当实际输出与期望值相同时,权值不需要调整。感知器学习规则代表一种有导师学习。21感知器学习规则的训练步骤:(1) 对各权值w0j(0),w1j(0),wnj(0),j=1, 2,m (m为计算层的节点数)赋予较小的非零随机数;(2) 输入样本对Xp,dp,其中Xp=(-1,x1p,x2p,xnp), dp为期望的输出向量(教师信号),上标p代表样本对的模式序号,设样本集中的样本总数为P, 则p=
6、1,2,P;感知器的学习感知器的学习22(3)计算各节点的实际输出ojp(t)=sgnWjT(t)Xp, j=1,2,.,m;(4)调整各节点对应的权值,Wj(t+1)= Wj(t)+djp-ojp(t)Xp, j=1, 2,m, 其中为学习率,用于控制调整速度,太大 会影响训练的稳定性,太小则使训练的收敛速度变慢, 一般取01;(5)返回到步骤(2)输入下一对样本,周而复始直到对所有 样本,感知器的实际输出与期望输出相等。感知器的学感知器的学习23例单计算节点感知器,3个输入。给定3对训练样本对如下:X1 = (-1,1,-2,0)T d1 = 1X2 = (-1,0,1.5,-0.5)T
7、d2 = 1X3 = (-1,-1,1,0.5)T d3 =1 设初始权向量W(0)=(0.5,1,-1,0)T,=0.1。注意,输入向量中第一个分量x0恒等于-1,权向量中第一个分量为阈值,试根据以上学习规则训练该感知器。感知器的学感知器的学习24解:第一步 输入X1,得 WT(0)X1=(0.5,1,-1,0)(-1,1,-2,0)T=2.5 o1(0)=sgn(2.5)=1 W(1)= W(0)+d1- o1(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感知器的学感知器的学习25第二步 输入X2,得 WT(1)
8、X2=(0.7,0.8,-0.6,0)(-1,0,1.5,-0.5)T=-1.6 o2(1)=sgn(-1.6)=-1 W(2)= W(1)+d2- o2(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由于d2= o2(1),所以W(2)= W(1)。感知器的学感知器的学习26第三步输入X3,得 WT(2)X3=(0.7,0.8,-0.6,0)(-1,-1,1,0.5)T=-2.1 O3(2)=sgn(-2.1)=-1W(3)= W(2)+d3- o3(2) X3 =(0.7,0.8,-0.6,0)T
9、+0.11-(-1)(-1,-1,1,0.5)T =(0.5,0.6,-0.4,0.1)T第四步返回到第一步,继续训练直到dp- op=0,p=1,2,3。感知器的学感知器的学习27单层感知器的局限性单层感知器的局限性o问题:能否用感知器解决如下问题?28单层感知器的局限性单层感知器的局限性o无法解决“异或”问题o只能解决线性可分问题“异或”的真值表x1x2y00001110111029双层感知器“异或”问题分类例四用两计算层感知器解决“异或”问题。“异或”的真值表x1 x2y1 y2 o 0 01 1 00 11 011 00 111 11 1 0多层感知器多层感知器30多层感知器的提出多层
10、感知器的提出n单计算层感知器的局限性 只能解决线性可分问题,而大量的分类问题是线性不可分的。n解决的有效办法 在输入层与输出层之间引入隐层作为输入模式的“内部表示”,将单计算层感知器变成多(计算)层感知器。 采用非线性连续函数作为转移函数,使区域边界线的基本线素由直线变成曲线,从而使整个边界线变成连续光滑的曲线。31多多层感知器感知器具有不同隐层数的感知器的分类能力对比32计算图计算图33计算图计算图34计算图计算图35计算图计算图36计算图计算图37计算图计算图38误差反向传播算法简称BP算法,其基本思想是最小二乘法。它采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差均方值为最小。
11、BP算法的学习过程由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层,每层神经元(节点)的状态只影响下一层神经元的状态。如果在输出层不能得到期望输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,使误差信号最小。误差反传(误差反传(BP)算法)算法39基于BP算法的多层前馈网络模型误差反传(误差反传(BP)算法)算法40o模型的数学表达输入向量: X=(x1,x2,xi,xn)T隐层输出向量: Y=(y1,y2,yj,ym)T输出层输出向量: O=(o1,o2,ok,ol)T期望输出向量:d=(d1, d2,dk,dl)T输入
12、层到隐层之间的权值矩阵:V=(V1,V2,Vj,Vm)隐层到输出层之间的权值矩阵:W=(W1,W2,Wk,Wl)各个变量之间如何建立联系,来描述整个网络?41对于输出层:k=1,2,l (3. 1)k=1,2,l (3. 2)对于隐层:j=1,2,m (3. 3)j=1,2,m (3. 4)BP学学习算法算法42双极性Sigmoid函数:单极性Sigmoid函数:(3. 5)BP学学习算法算法43双曲正切函数图像BP学学习算法算法44输出误差E定义:(3. 6)将以上误差定义式展开至隐层:(3. 7)BP学习算法学习算法45进一步展开至输入层:(3. 8)BP学习算法学习算法46j=0,1,2
13、,m; k=1,2,l (3. 9a)i=0,1,2,n; j=1,2,m (3. 9b)式中负号表示梯度下降,常数(0,1)表示比例系数。在全部推导过程中,对输出层有j=0,1,2,m; k=1,2,l 对隐层有 i=0,1,2,n; j=1,2,mBP学习算法学习算法47对于输出层,式(3.9a)可写为(3. 10a)对隐层,式(3.9b)可写为(3. 10b)对输出层和隐层各定义一个误差信号,令 (3. 11a)(3. 11b)BP学习算法学习算法48综合应用式(3.2)和(3.11a),可将式(3.10a)的权值调整式改写为综合应用式(3.4)和(3.11b),可将式(3.10b)的权
14、值调整式改写为(3. 12a)(3. 12b)可以看出,只要计算出式(3.12)中的误差信号o和y,权值调整量的计算推导即可完成。下面继续推导如何求误差信号o和y 。49对于输出层,o可展开为对于隐层,y可展开为下面求式(3.13)中网络误差对各层输出的偏导。(3. 13a)(3. 13b)50对于输出层,利用式(3.6):对于隐层,利用式(3.7):(3. 14a)可得:(3. 14b)可得:51将以上结果代入式(3.13),并应用式(3.15)(3.15a)得到:(3.15b)至此两个误差信号的推导已完成。52将式(3.15)代回到式(3.12),得到三层前馈网的BP学习算法权值调整计算公
15、式为:(3.16a)(3.16b)5354BP学学习算法流程:算法流程:1) 初始化初始化 置所有置所有权值为最小的随机数;最小的随机数;2) 提供提供训练集集 给定定输入向量和期望的目入向量和期望的目标输出向量;出向量;3) 计算算实际输出出 计算算隐含含层、输出出层各神各神经元元输出;出;4) 计算目算目标值与与实际输出的偏差;出的偏差;5) 计算局部梯度;算局部梯度;6) 调整各整各层权重;重;7) 返回返回2) 重复重复计算,直到算,直到误差差满足要求足要求为止。止。55迭代迭代迭代迭代1 1次后的次后的次后的次后的BPBP网络网络网络网络x1x2y实际输出出误差差0000.50.50110.51010.51100.556迭代迭代迭代迭代80008000次后的次后的次后的次后的BPBP网络网络网络网络x1x2y实际输出出误差差0000.1190.1660010.7271010.7341100.41557迭代迭代迭代迭代1105011050次后的次后的次后的次后的BPBP网络网络网络网络x1x2y实际输出出误差差0000.050.0080110.9411010.9411100.07858谢谢谢谢