
《BP学习算法》PPT课件.ppt
30页3.2 BP学习算法学习算法1x2xmxY1Y2ypWmiWijWjpi=(1,2,….J)j=(1,2,…J)含有两个隐含层的BP网络BP网络的标准学习算法v学习的过程: 神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出v学习的本质: 对各连接权值的动态调整v学习规则: 权值调整规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则 BP网络的标准学习算法-算法思想v学习的类型:有导师学习v核心思想:将输出误差以某种形式通过隐层向输入层逐层反传v学习的过程:信号的正向传播 误差的反向传播将误差分摊给各层的所有将误差分摊给各层的所有单元---各层单元的误单元---各层单元的误差信号差信号修正各单元权修正各单元权值值BP网络的标准学习算法-学习过程v正向传播:输入样本---输入层---各隐层---输出层v判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(导师信号)不符v误差反传误差以某种形式在各层表示----修正各层单元的权值v网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止BP学习的具体算法步骤第一步:设置变量和参量,为输入向量,或训练样本,N为训练样本的个数。
为第n次迭代输入层m与隐含层I之间的的权值向量 ,为第n次迭代隐含层I与隐含层J之间的的权值向量为第n次迭代隐含层J与输出层p之间的的权值向量为第n次迭代是网络的实际输出 ,为期望输出 为学习效率 n为迭代次数 第二步,初始化,赋给 各一个较小的随机非零值, n=0 第三步,随机输入样本 第四步,对输入样本 ,前向计算BP网络每层神经元的输入信号u和输出信号v其中第五步,由期望值输出 和上一步求得的实际输出 计算误差 E(n), 判断是否满足要求,若满足转至第八步;不满足转至第六步 第六步,判断是否大于最大迭代次数,若大于转至第八步,若不大于,对输入样本,反向计算每层神经元的局部梯度其中f ’(neti)=oi(1-oi) 第七步,按下式计算权值修正量,并修正权值;n=n+1,转至第四步 第八步,判断是否学完所有的训练样本,是则结束,否则转至第三步BP学习注意的问题v一、BP学习时权值初始值的选择 初始值应选为均匀分布的小数经验值,大概为(-2.4/F,2.4/F)之间并将初始权值设为随机数 用matlab可用以下语句=rand( , )v二、当神经元的激励函数是sigmoid函数时,应设期望值输出为相应的小数。
v三、BP算法训练网络的方式:顺序方式和批处理方式 顺序方式:临时存储空间小,训练速度快 批处理方式:精确的计算梯度向量,误差收敛条件简单,易与并行处理v四、学习步长 的选择 过大或过小都不好,关系着权值的变化和BP的收敛速度,过大会引起振荡通常调整 值使网络中和各神经元的学习速度相差不多还可以通过加入“动量项”的方法v五、局部梯度的计算,需要激励函数的导数 通常选奇函数作为激励函数,非线性的sigmoid函数,有两种形式:逻辑函数和双曲正切函数 v六、误差E(n)的判断 顺序方式: 批处理方式:每个训练周期的平均误差Eav其变化量在0.1%- 1%之间v七、训练样本的输入 在第一步设置时,一般是同一类的训练样本其期望输出相同v八、输入信号归一化v使所有样本的输入信号其均值接近零或与其标准方差相比比较小归一化输入信号应注意: (1)用主向量分析法使训练样本的输入信号互不相关 (2)归一化互不相关的输入信号,使得他们的方差基本相同,从而是不同权值的学习速度基本相同v九、在学习过程或中可以利用out(.)的先验知识,加快学习效率。
BP神经网络的特点v非线性映射能力 能学习和存贮大量输入能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述输出模式映射关系,而无需事先了解描述这种映射关系的数学方程只要能提供足够多的样本模式对供网这种映射关系的数学方程只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由络进行学习训练,它便能完成由n维输入空间到维输入空间到m维输出空间的非维输出空间的非线性映射线性映射v泛化能力 当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射这种能力称为泛化能力入空间向输出空间的正确映射这种能力称为泛化能力v容错能力 输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小BP神经网络学习算法的MATLAB实现 vMATLAB中BP神经网络的重要函数和基本功能 函 数 名功 能newff()生成一个前馈BP网络tansig()双曲正切S型(Tan-Sigmoid)传输函数logsig()对数S型(Log-Sigmoid)传输函数traingd()梯度下降BP训练函数vMATLAB中BP神经网络的重要函数和基本功能vnewff()v功能 建立一个前向BP网络v格式 net = newff(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF,PF)v说明 net为创建的新BP神经网络;PR为网络输入取向量取值范围的矩阵;[S1 S2…SNl]表示网络隐含层和输出层神经元的个数;{TFl TF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;BTF表示网络的训练函数,默认为‘trainlm’;BLF表示网络的权值学习函数,默认为‘learngdm’;PF表示性能数,默认为‘mse’。
vMATLAB中BP神经网络的重要函数和基本功能 tansig()v功能 正切sigmoid激活函数v格式 a = tansig(n)v说明 双曲正切Sigmoid函数把神经元的输入范围从(-∞,+∞)映射到(-1,1)它是可导函数,适用于BP训练的神经元logsig()v功能 对数Sigmoid激活函数v格式 a = logsig(N)v说明对数Sigmoid函数把神经元的输入范围从(-∞,+∞)映射到(0,1)它是可导函数,适用于BP训练的神经元Matlab中nntool的基本应用v在MATLAB命令窗口中键入nntool再按enter,会自动弹出下面的Network/Data Manager窗口画面vInputs:输入值vTargets:目标输出值vInput Delay States:输入值欲延迟时间vNetworks:已建构的网络vOutputs:输出值vErrors:误差值vLayer Delay States:输出值欲延迟时间v[Help]:有关于此工具箱各个按钮的说明v[New Data...]:建立新网络所须输出入值、目标值、误差、延迟v[New Network...]:建立新网络的类型、训练函数、学习函数、隐藏层层数等v[Import...]:汇入数据与网络v[Export...]:汇出数据与网络v[Delete]:移除所选取的数据或网络建立一个新的网络vNetwork Name:输入网络名称,如test。
vNetwork Type:网络类型,如Feed-forward backpropvInput ranges:输入的范围,如Get from input p,由下拉式选单选取vTraining function:训练函数,如TRAINLM(LM算法)vAdaption learning function:适应性学习函数,如LEARNGDM(具动量的梯度下降法)vPerformance function:性能函数,如MSE(均方误差)vNumber of layers:隐藏层的层数,如 2vProperties for:由下拉式选单选取欲进行设定的隐藏层,如Layer 1vNumber of neurons:隐藏层1中神经元的数目,如 15vTransfer function:隐藏层1所使用的转移函数类型,如TANSIG建立网络后vepochs:训练的最大循环次数vgoal:性能目标vmax_fail:最大验证数据失败的次数vmem_reduc:降低内存需求的系数vmin_grad:最小性能梯度vmu:动量的初始值vmu_dec:动量减少系数vmu_inc:动量增加系数vmu_max:动量最大值vshow:每格多少训练循环次数会显示训练过程vtime:最大的训练所须时间,单位为秒 谢谢大家!。












