赞
踩
一、什么是BP算法
BP算法是建立在BP神经网络(多层前馈网络)上的一种算法,它根据神经网络的路径进行一层一层的运算,这个运算包括信号的正向传播和误差的反向传播两部分。
二、BP算法重要组成部分
BP神经网络包含层与节点,每相邻两层实现全连接。而BP算法包含输入值、输出值、预期值、权值、偏倚(充当阈值)。算法通过多次调整权值(神经元节点权系数)来实现在多组输入值情况下,输出值与预期值的逐渐拟合(即使两者间误差函数减小)。
误差函数
三、BP算法主要步骤
(1)输出层(Tk为输出层预期值、Ok为实际值、j表示层、k表示第k个节点、n为学习效率,其值介于0-0.1)
(2)隐藏层(p为层数、i为输入节点数、j为隐含节点数、k为输出节点数、δ为反传误差信号、I为输入值、O为输出值)
*δ计算
*f’(Ik)计算
1 //初始化network的所有权重和偏倚 2 while(···//不满足终止条件时){ 3 for ···//D中的每个训练元组X{ 4 //向前传播输入; 5 for ···//每个输入单元j{ 6 Oj=Ij;//输入单元的输出是它的实际输入值 7 for ···//隐藏或输出层每个单元j{ 8 Ij=Σji wij*Oj+Θj;//关于前一层i,计算单元j的净输入 9 Oj=1/(1+e^(-Ij));}//计算单元j的输出 10 //后向传播误差; 11 for ···//输出层每个单元j 12 Errj=Oj*(1-Oj)*(Tj-Oj);//计算误差; 13 for ···//由最后一个到第一个隐藏层,对于隐藏层每个单元j 14 Errj=Oj*(1-Oj)*Σk Errk*wjk;//计算关于下一个较高层k的误差 15 for ···//network中的每个权wij{ 16 Δwij=n*Errj*Oi;//权重增量 17 wij=wij+Δwij;}//权重更新 18 for ···//network中每个偏倚Θj{ 19 ΔΘj=n*Errj;//偏倚增量 20 Θj=Θj+ΔΘj;}//偏倚更新 21 }}
图解
四、BP算法的不足
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。