1、BP学习算法 BP学习算法 3.2 BP学习算法 学习算法含有两个隐含层的BP网络Wmi Wij Wjp Y1x1x2Y2xmi=(1,2,.J) j=(1,2,J)ypBP网络的标准学习算法学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权 值,以使网络的输出不断地接近期望的输出。 学习的本质:对各连接权值的动态调整学习规则:权值调整规则,即在学习过程中网络中各神经元的连接权 变化所依据的一定的调整规则。 BP网络的标准学习算法-算法思想学习的类型:有导师学习 核心思想:将输出误差以某种形式通过隐层向输入层逐层反传将误差分摊给各层的所有 单元 各层单元的误 单元各层单元的误 差信
2、号修正各单元权 值学习的过程:信号的正向传播 误差的反向传播BP网络的标准学习算法-学习过程正向传播:输入样本输入层各隐层输出层判断是否转入反向传播阶段:若输出层的实际输出与期望的输出(导师信号)不符误差反传误差以某种形式在各层表示修正各层单元的权值网络输出的误差减少到可接受的程度 进行到预先设定的学习次数为止BP学习的具体算法步骤第一步:设置变量和参量X k = x k1 , x k 2 ,., x km , (k = 1,2,., N ) ,为输入向量,或训练样本,N为训练样本的个数。 ? w11 (n) w12 (n).w1I (n) ? ? w (n) w (n).w (n) ? 22
3、 2I ? 为第n次迭代输入层与隐含层I之间的的权值向量。 WMI (n) = ? 21 ?. ? ? ? wM 1 (n) wM 2 (n).wMI (n)? ? w11 (n) w12 (n).w1J (n) ? ? w (n) w (n).w (n)? 22 2J ? ,为第n次迭代隐含层I与隐含层J之间的的权值向量。 WIJ (n) = ? 21 ?. ? ? ? wI 1 (n) wI 2 (n).wIJ (n) ? ? w11 (n) w12 (n).w1P (n) ? ? w (n) w (n).w (n) ? 22 2P ? ,为第n次迭代隐含层J与输出层之间的的权值向量。 W
4、JP (n) = ? 21 ?. ? ? ? wJ 1 (n) wJ 2 (n).wJP (n)? ?Yk (n) = yk 1 ( n), yk 2 (n),., ykp ( n) , ( k = 1,2,., N ) ,为第n次迭代是网络的实际输出。 d k = d k1 , d k 2 ,., d kp , ( k = 1,2,., N ),为期望输出。 为学习效率。 n为迭代次数。 第二步,初始化,赋给 WM 1 (0),WIJ (0),WJP (0) 各一个较小的随机非零值,n=0。 第三步,随机输入样本 X k 第四步,对输入样本X k ,前向计算BP网络每层神经元的输入信号u和输
5、出信号v。 p 其中 v p (n) = ykp (n), p = 1,2. p第五步,由期望值输出 d k 和上一步求得的实际输出 Yk (n) 计算误差 E(n), 判断是否满足要求,若满足转至第八步;不满足转至第六步。 第六步,判断是否大于最大迭代次数,若大于转至第八步, 若不大于,对输入样本,反向计算每层神经元的局部梯度。 其中 pp (n) = y p (n)(1 ? y p (n)(d p (n) ? y p (n), p = 1,2,., P jJ (n) = f (u J (n) pp (n) w jp (n), j = 1,2,.J jp =1 J p (n) = f (u
6、(n) jJ (n) wij (n), i = 1,2,., II i I i j =1第七步,按下式计算权值修正量,并修正权值;n=n+1,转至 第四步。 P ?w jp (n) = p (n)v J (n) w jp ( n + 1) = w jp (n) + ?w jp (n) j = 1,2,., J ; p = 1,2,., P j?wij (n) = jJ (n)viI (n) wij (n + 1) = wij ( n) + ?wij ( n) j = 1,2,., I ; p = 1,2,., J?wmi (n) = iI ( n) xkm ( n) wmi (n + 1) =
7、 wmi (n) + ?wmi (n)j = 1,2,., M ; p = 1,2,., I第八步,判断是否学完所有的训练样本,是则结束,否则 转至第三步。 BP学习注意的问题一、BP学习时权值初始值的选择初始值应选为均匀分布的小数经验值,大概为(-2.4/F,2.4/F) 之间。 并将初始权值设为随机数。 用matlab可用以下语句W 1 ( 0 ) =rand( , )二、当神经元的激励函数是sigmoid函数时, 应设期望值输出为相应的小数。 三、BP算法训练网络的方式:顺序方式和批 处理方式。 顺序方式:临时存储空间小,训练速度快 批处理方式:精确的计算梯度向量,误差收敛条件简单,易
8、与并行处理。 1 N 1 N P 2 Eav = Ek = 1 1 ekp N k =1 2N K = p=四、学习步长的选择过大或过小都不好,关系着权值的变化和BP的收敛速度,过 大会引起振荡。 通常调整值使网络中和各神经元的学习速 度相差不多。 还可以通过加入“动量项”的方法。 五、局部梯度的计算,需要激励函数的导数。 通常选奇函数作为激励函数,非线性的sigmoid函数,有两 种形式:逻辑函数和双曲正切函数六、误差E(n)的判断顺序方式: E (n) < 批处理方式:每个训练周期的平均误差Eav其变化量在0.1%1%之间。 七、训练样本的输入在第一步设置时,一般是同一类的训练样本其
9、期望输出相同。 八、输入信号归一化使所有样本的输入信号其均值接近零或与其标准方差相比比 较小。 归一化输入信号应注意: (1)用主向量分析法使训练样本的输入信号互不相关。 (2)归一化互不相关的输入信号,使得他们的方差基本相 同,从而是不同权值的学习速度基本相同。 九、在学习过程或中可以利用out(.)的先验 知识,加快学习效率。 BP神经网络的特点非线性映射能力能学习和存贮大量输入-输出模式映射关系, 能学习和存贮大量输入 输出模式映射关系,而无需事先了解描述 输出模式映射关系 这种映射关系的数学方程。 这种映射关系的数学方程。 只要能提供足够多的样本模式对供网 络进行学习训练,它便能完成由
10、n维输入空间到 维输入空间到m维输出空间的非 络进行学习训练,它便能完成由 维输入空间到 维输出空间的非 线性映射。 线性映射。 泛化能力当向网络输入训练时未曾见过的非样本数据时, 当向网络输入训练时未曾见过的非样本数据时,网络也能完成由 输入空间向输出空间的正确映射。 这种能力称为泛化能力。 输入空间向输出空间的正确映射。 这种能力称为泛化能力。 容错能力输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影 响很小。 响很小。 BP神经网络学习算法的MATLAB实现MATLAB中BP神经网络的重要函数和基 本功能函数名 newff() tansig() logsig() traingd
11、() 功 能 生成一个前馈BP网络 双曲正切S型(Tan-Sigmoid)传输函数 对数S型(Log-Sigmoid)传输函数 梯度下降BP训练函数MATLAB中BP神经网络的重要函数和基本功能newff() 功能 建立一个前向BP网络 格式 net = newff(PR,S1 S2.SN1,TF1 TF2.TFN1,BTF,BLF,PF) 说明 net为创建的新BP神经网络;PR为网络输入 net BP PR 取向量取值范围的矩阵;S1 S2SNl表示网络隐 含层和输出层神经元的个数;TFl TF2TFN1表 示网络隐含层和输出层的传输函数,默认为 tansig;BTF表示网络的训练函数,默
12、认为 trainlm;BLF表示网络的权值学习函数,默认为 learngdm;PF表示性能数,默认为mse。 MATLAB中BP神经网络的重要函数和基本功能 tansig()功能 正切sigmoid激活函数 格式 a = tansig(n) 说明 双曲正切Sigmoid函数把神经元的输入范围从(-,+) 映射到(-1,1)。 它是可导函数,适用于BP训练的神经元。 logsig()功能 对数Sigmoid激活函数 格式 a = logsig(N) 说明对数Sigmoid函数把神经元的输入范围从(-,+)映射 到(0,1)。 它是可导函数,适用于BP训练的神经元。 Matlab中nntool的基
13、本应用在MATLAB命令窗口中键入nntool再按enter, 会自动弹出下面的Network/Data Manager窗 口画面。 Inputs:输入值 Targets:目标输出值 Input Delay States:输入值欲延迟时间 Networks:已建构的网络 Outputs:输出值 Errors:误差值 Layer Delay States:输出值欲延迟时间Help:有关于此工具箱各个按钮的说明 New Data.:建立新网络所须输出入值、 目标值、误差、延迟 New Network.:建立新网络的类型、训练 函数、学习函数、隐藏层层数等 Import.:汇入数据与网络 Expor
14、t.:汇出数据与网络 Delete:移除所选取的数据或网络建立一个新的网络Network Name:输入网络名称,如test。 Network Type:网络类型,如Feed-forward backprop。 Input ranges:输入的范围,如Get from input p,由下拉式 选单选取。 Training function:训练函数,如TRAINLM(LM算法)。 Adaption learning function:适应性学习函数,如 LEARNGDM(具动量的梯度下降法) Performance function:性能函数,如MSE(均方误差)。 Number of la
15、yers:隐藏层的层数,如 2。 Properties for:由下拉式选单选取欲进行设定的隐藏层,如 Layer 1。 Number of neurons:隐藏层1中神经元的数目,如 15。 Transfer function:隐藏层1所使用的转移函数类型,如 TANSIG。 建立网络后epochs:训练的最大循环次数 goal:性能目标 max_fail:最大验证数据失败的次数 mem_reduc:降低内存需求的系数 min_grad:最小性能梯度 mu:动量的初始值 mu_dec:动量减少系数 mu_inc:动量增加系数 mu_max:动量最大值 show:每格多少训练循环次数会显示训练过程 time:最大的训练所须时间,单位为秒谢谢大家!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1