文档详情

第三章:前向网络2说课材料

youn****329
实名认证
店铺
PPT
1.31MB
约64页
文档ID:232818352
第三章:前向网络2说课材料_第1页
1/64

1单击此处编辑母版标题样式单击此处编辑母版副标题样式l第二讲:前馈神经网络 2.5 BP网络及BP算法感知器网络和线性激活函数,都存在一定缺点 单层感知器:硬限幅函数为作用函数,只能解决简单的分类问题 硬限幅函数的不可微分特性,使其扩展到多层感知器时带来权值修正的困难 线性函数网络采用线性作用函数,处理复杂非线性问题的能力相对较弱 采用线性作用函数的多层网络等效为一个单层线性网络,因此,简单地从结构上扩展Adaline,并不能加强它处理非线性问题的能力2.5 BP网络及BP算法结合二者的长处 将感知器网络结构扩展到多层,其作用函数采用一种可微分的非线性函数,这就形成了功能比较强大的多层前向网络 由于多层前向网络的权值调整是采用反向传播学习算法(Back Propagation),通常人们将其称为BP网络 BP网络是将LMS(梯度下降算法)学习规则一般化,对非线性,可微分的函数进行权值训练的多层网络 BP网络是一种多层前向反馈神经网络,其神经元的变换函数是S型函数或其他处处可导的函数由于激活函数必须是处处可微的,所以它就不能采用二值型的阈值函数0,1或符号函数1,1,BP网络经常使用的是S型的对数或正切激活函数和线性函数(一般在输出时使用,满足网络的输出不受限制)。

2.5 BP网络及BP算法q 感知器学习算法是一种单层网络的学习算法.不能用于多层NN的学习.q 1986年,Rumelhart提出了BP算法.由于适用于多层网络的学习,因此是目前应用最广泛的NN学习算法之一,在v 学习系统、v 拟合和逼近、v 自动控制中应用较广.2.5 BP网络及BP算法 Hornik等人证明了:v 仅有一个非线性隐层的前馈网络就能以任意精度逼近任意复杂度的函数.q 下面,将深入讨论反向传播学习的BP算法,主要内容有: BP算法的原理 BP算法的数学表达 BP算法的执行步骤2.5 BP网络及BP算法2.5.1 BP算法的原理1. BP算法的原理q BP算法是用于前馈多层网络的学习算法,前馈多层网络的结构一般如图2.6所示. 它含有输入层、输出层以及处于输入输出层间的中间层. 中间层有单层或多层,由于它们和外界没有直接的联系,故也称为隐层.v 在隐层中的神经元也称隐单元. 隐层虽然和外界不连接,但是它们的状态影响输入输出之间的关系.v 这也是说,改变隐层的权系数,可以改变整个多层NN的性能.2.5.1 BP算法的原理图2.6 网络学习结构2.5.1 BP算法的原理q 设有一个m层的NN,并在输入层加有样本x; 设第k层的i神经元的输入总和表示为uik,输出为xik; 从第k-1层的第j个神经元到第k层的第i个神经元的权系数为wijk-1 各个神经元的激发函数为f(),则各个变量的关系可用下面有关数学式表示:其中nk-1为第k-1隐单元层的神经元个数.2.2.1 BP算法的原理q BP算法分二步进行,即 NN输出计算的正向传播和 NN学习过程的反向传播.这两个过程的工作简述如下.A. 正向传播 输入的样本从输入层经过隐单元一层一层进行处理,则传向输出层,即在所给定的输入样本下,计算NN的输出. 在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响. 在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程.2.5.1 BP算法的原理B. 反向传播 把误差信号按原来正向传播的路径反向传回到每个神经元,并对每个隐层的各神经元的权系数进行修改,以使误差信号趋向最小.2.5.2 BP算法的数学表达1. BP算法的数学表达q BP算法实质是求取误差函数的最小值问题,它采用非线性规划中的最速下降法,按误差函数的负梯度方向修改权系数. 为了说明BP算法,首先定义误差函数e. 取期望输出和实际输出之差的平方和为误差函数,则有:其中oi是输出单元的期望值,它在这里用作教师信号;xim是NN的单变量实际输出(第m层NN为输出层).2.5.2 BP算法的数学表达q 由于BP算法按误差函数e的负梯度方向修改权系数,故权系数 的修改量 为显然,根据BP算法原则,求 最关键.下面讨论求 ,有2.5.2 BP算法的数学表达其中xjm-1(i)和u1m(i)为在第i组输入样本下xjm-1和u1m的计算值,d1m(i)=(xim-oi)f(u1m(i)在这里引入d1m(i),为了学习公式表达简洁。

q 若k=m-1,即所讨论的为输出层与倒数第二层间的权重,则由上式,有q 若k=m-2,有2.5.2 BP算法的数学表达其中2.5.2 BP算法的数学表达其中这里引入drm(i)的意义如前q 类似上述推导过程,有如下计算式2.5.2 BP算法的数学表达q 因此,权系数 的修正公式为其中s是指权系数的修正迭代次数,是权重变化率,它视情况不同而取值不同,一般取01之间的小数.BP算法解释:隐含层误差dm-1可以认为是由输出层误差dm加权组合形成的 2.5.2 BP算法的数学表达q 从上述过程可知: 正向计算过程. 多层网络的训练方法是把一个样本加到输入层,并根据向前传播的规则不断一层一层向输出层传递,最终在输出层可以得到输出xim. 反向学习过程. 把xim和期望输出oi进行比较,如果两者不等,则产生误差信号e,接着则按权系数的修正公式反向传播修改权系数.q 上面公式中,求取本层dik时,要用到高一层的dik+1. 可见,误差函数的求取是从输出层开始,到输入层的反向传播过程.在这个过程中不断进行递归求误差. 通过多个样本的反复训练,同时向误差渐渐减小的方向对权系数进行修正,以达最终消除误差.2.5.2 BP算法的数学表达若BP网络的神经元的非线性激发函数为S函数,由于神经元的输出:其中neti=x1w1i+x2w2i+xnwni输出函数分析0.5f(net)0.25o011(0,0.5)net(0,0)o应该将net的值尽量控制在收敛比较快的范围内可以用其它的函数作为激活函数,只要该函数是处处可导的2.5.2 BP算法的数学表达q 由神经元的激发函数为S函数,则上述权系数的学习公式为2.5.2 BP算法的数学表达其中q 从上面公式也可以知道,如果网络的层数较多时,所用的计算量就相当可观,故而收敛速度不快.2.5.3 BP算法的执行步骤1. BP算法的执行步骤q 在BP算法应用于前馈多层网络时,采用S激发函数时,可用下列步骤对网络的权系数进行递归求取,其中k=m-1,2,1;j=1,2,nk+1;i=1,2,nk.q 类似于前面的讨论,对神经元xik的阈值ik,可用增加一个状态恒为1(即 =1)的隐神经元及相应的权重的方法来处理.q 综合上述BP算法的思想和计算公式,有如下计算步骤.2.5.3 BP算法的执行步骤算法的执行的步骤如下:步1. 对权系数 置初值. 对各层的权系数 置一个较小的非零随机数,但其中步2. 输入第i个输入样本 以及对应期望输出oi.步3. 计算各层的输出 对于第k层第j个神经元的输出xjk(i),有:2.5.3 BP算法的执行步骤步4. 求各层的学习误差djk(i)步5. 修正权系数 和阈值ik2.5.3 BP算法的执行步骤或步6. 当求出了各层各个权系数之后,可按给定品质指标判别是否满足要求. 如果满足要求,则算法结束; 如果未满足要求,则返回步3执行.2.5.3 BP算法的执行步骤BP网络训练的几种模式w批处理模式(batch mode) 训练过程以所有样本为一个epoch。

训练时计算出所有样本的整体误差后,加权系数才调整w模式学习模式(pattern mode) 训练过程输入一个样本,计算学习误差,调整加权系数2.5.3 BP算法的执行步骤q 上述过程是针对同时学习多个样本的情况,若每次学习时,只学习当前样本,则BP算法的学习过程步骤为:步1. 对权系数 置初值. 对各层的权系数 置一个较小的非零随机数.步2. 输入第i个输入样本 以及对应期望输出o.步3. 计算各层的输出 对于第k层第j个神经元的输出xjk,有:2.5.3 BP算法的执行步骤步4. 求各层的学习误差djk步5. 修正权系数 和阈值ik2.5.3 BP算法的执行步骤或步6. 当求出了各层各个权系数之后,可按给定品质指标判别是否满足要求. 如果未满足要求,则返回步3执行; 如果满足要求,则执行下一步.步7. 对下一样本,返回步2学习新样本.2.5.4 BP算法的逼近学习算例1. BP算法的逼近学习算例l多层感知器及BP模型是具有普适性的通用(万能)逼近器、学习器,可广泛用于学习、逼近与分类问题其应用于学习、逼近与分类问题的过程、步骤为:l问题的形式化(Formalization):变量的选择和表示l准备学习的样本数据(data preparing),并作预处理l决定系统(神经网络)的模型和结构l选择评估函数(objective function)l选择最佳化的方法:调整系统参数使得误差最小l先验的(Prior)学习法则或启发式的(heuristic)知识l泛化(Generalization)2.5.4 BP算法的逼近学习算例神经网络学习的架构2.5.4 BP算法的逼近学习算例l下面先讨论BP网络设计问题l然后讨论BP算法在函数逼近的2算例.例1 函数逼近例2 分类问题2.5.4 BP算法的逼近学习算例A. BP网络设计问题l解决实际学习与逼近问题的BP网络设计主要分为如下步骤:训练样本集的准备输入输出数据的归一化网络训练与测试2.5.4 BP算法的逼近学习算例一、训练样本集的准备l训练样本集的准备包括:输入输出量的选择输入量的提取与表示输出量的表示2.5.4 BP算法的逼近学习算例(1) 输入输出量的选择输出量代表系统要实现的功能目标,例如系统的性能指标,分类问题的类别归属,或非线性函数的函数值等等。

输入量必须选择那些对输出影响大且能够检测或提取的变量,此外还要求各输入变量之间互不相关或相关性很小,这是输入量选择的两条基本原则从输入、输出量的值是数值确定的连续量或离散量2.5.4 BP算法的逼近学习算例(2) 输入量的提取与表示 分类问题的文字符号/图像输入直接利用图像的像素信息编码,如根据识别的具体目的从图象中定义特征,然后提取特征参数(这种特征提取属于图象处理的范畴)2.5.4 BP算法的逼近学习算例 逼近问题的曲线输入 一般有几个输入量就设几个分量,1个输入分量对应1个输入层节点2.5.4 BP算法的逼近学习算例(3) 输出量的表示分类问题l对2类分类问题,输出编码为0或1,输出节点为1个;l对多类(n类)分类问题,输出节点可设为n个或n-1个,对应的输出编码为(以n=4为例)1000 0100 0010 0001或000 100 010 001l系统要实现的功能目标,例如系统的性能指标,分类问题的类别归属,或非线性函数的函数值等等逼近问题l可直接采用逼近问题样本数据的输出量2.5.4 BP算法的逼近学习算例二、输入输出数据的归一化l归一化也称为或标准化,是指通过变换处理将网络的输入、输出数据限制在0,1或-1,1区间内。

进行归一化的主要原因:l网络的各个输入数据常常具有不同的物理意义和不同的量纲,归一化给各输入分量以同等重要的地位;l由于BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速度和灵敏性以及有效避开Sigmoid函数的饱和区,一般要求输入数据的值在-11之间lSigmoid函数的输出在01之间 教师信号如不进行归一化处理,势必使数值大的输出分量绝对误差大,数值小的输出分量绝对误差小 将输入输出数据变换为0,1区间的值常用以下变换式其中,xi代表输入或输出数据,xmin代表数据的最小值,xman代表数据的最大值 类似地可以得到将输入输出数据变换为-1,1的变换式2.5.4 BP算法的逼近学习算例2.5.4 BP算法的逼近学习算例三、网络训练与测试 网络的性能好坏主要看其是否具有很好的泛化能力 所谓泛化能力,即指网络对于训练集中未出现的,但来自于同一分布的样本作出正。

下载提示
相似文档
正为您匹配相似的精品文档