神经网络BP模型
误差反向传播神经网络模型简称BP(Back-Propagation)神经网络模型。
1974年,Pall Werbas博士在博士论文中提出了一种误差反向传播学习算法。由Rumelhart和McCelland领导的科学家小组提出了完整的误差反向传播学习算法,并被广泛接受。他们在1986出版的《并行分布式处理,认知的微观结构探索》一书中,对误差反向传播学习算法做了详细的分析和介绍,并对这种算法的潜在能力做了深入的探讨。
BP网络是具有三层或更多层的分级神经网络。上下层之间的神经元是全连接的,即下层的每一个神经元都与上层的每一个神经元相连,但各层神经元之间没有连接。网络是老师教的。当给网络提供一对学习模式时,神经元的激活值通过隐层从输入层传播到输出层,输出层的每个神经元获得网络的输入响应。之后根据减小期望输出与实际输出误差的方向,从输入层通过隐层逐层修正连接权值,最终返回输入层,故命名为“误差反向传播学习算法”。随着误差反向传播的不断修正,网络响应输入模式的正确率也在提高。
BP网络主要用于以下几个方面:
1)函数逼近:学习一个网络用输入模式和对应的期望输出模式来逼近一个函数;
2)模式识别:将其与具有特定期望输出模式的输入模式相关联;
3)分类:以定义的和适当的方式对输入模式进行分类;
4)数据压缩:降低输出向量的维数,以便于传输或存储。
在人工神经网络的实际应用中,80% ~ 90%的人工神经网络模型采用BP网络或其变体,这也是前向网络的核心部分,体现了人工神经网络最本质的部分。
二、BP模型的原理
让我们以三层BP网络为例来说明学习和应用的原理。
1.数据定义
p为学习模式(xp,dp),p = 1,2,…,p;
输入模式矩阵X[N][P]=(x1,x2,…,XP);
目标模式矩阵d[M][P]=(d1,d2,…,dP)。
三层BP网络结构
输入层神经元节点数S0=N,I = 1,2,…,S0;
隐层神经元个数为S1,j=1,2,…,s 1;
神经元激活函数f 1[s 1];
权重矩阵w 1[s 1][s0];
偏差向量b1[S1]。
输出层神经元节点数S2=M,k = 1,2,…,S2;
神经元激活函数F2[S2];
权重矩阵w2[S2][s 1];
偏差矢量b2[S2]。
学习参数
目标误差?;
初始权重更新值δ0;
最大权重更新值δδmax;;
权重更新值增加多个η+;
权重更新值减少了多个η-。
2.误差函数的定义
第p种输入模式的误差计算公式为
中国矿产资源评价新技术和新模式
Y2kp是BP网络的计算输出。
3.3的推导。BP网络学习公式
BP网络学习公式的指导思想是修正网络的权值w和偏差b,使误差函数沿负梯度方向递减,直到网络的输出误差精度达到目标精度要求,学习结束。
各层产量的计算公式
输入层
y0i=xi,i=1,2,…,S0;
隐蔽层
中国矿产资源评价新技术和新模式
y1j=f1(z1j),
j=1,2,…,s 1;
输出层
中国矿产资源评价新技术和新模式
y2k=f2(z2k),
k=1,2,…,S2 .
输出节点误差公式
中国矿产资源评价新技术和新模式
输出层节点梯度公式的推导
中国矿产资源评价新技术和新模式
e是多个Y2M的函数,但只有一个y2k与wkj相关,每个Y2M相互独立。
在…之中
中国矿产资源评价新技术和新模式
规则
中国矿产资源评价新技术和新模式
让输出层节点误差为
δ2k =(dk-y2k)F2′(z2k),
规则
中国矿产资源评价新技术和新模式
同理。
中国矿产资源评价新技术和新模式
隐含层节点梯度公式的推导
中国矿产资源评价新技术和新模式
e是一些y2k函数。对于某个w1ji,对应一个y1j,关系到所有的y2k。因此,上式中只有k的和,其中
中国矿产资源评价新技术和新模式
规则
中国矿产资源评价新技术和新模式
让隐藏层节点错误成为
中国矿产资源评价新技术和新模式
规则
中国矿产资源评价新技术和新模式
同理。
中国矿产资源评价新技术和新模式
4.使用弹性BP算法(RPROP)计算权重W和偏差b的校正值δW和δb。
1993德国的Martin Riedmiller和Heinrich Braun在他们的论文《快速反向传播学习的直接自适应方法:RPROP算法》中提出了弹性反向传播算法——弹性BP算法。该方法试图消除梯度对权重步长的有害影响,因此只考虑梯度的符号来指示权重更新的方向。
权重变化的大小只由权重的特殊“更新值”决定。
中国矿产资源评价新技术和新模式
其中,它表示在模式集的所有模式(批量学习)上相加的梯度信息,并且(t)表示第t次或第t次学习。
权重更新遵循以下规则:如果导数为正(增加误差),则权重减少其更新值。如果导数为负,则更新值增加。
中国矿产资源评价新技术和新模式
RPROP算法实现了根据局部梯度信息直接修改权值步长。对于每项权利,我们介绍其
每个更新值单独决定权重更新值的大小。这是一个基于符号相关性的自适应过程,它基于
根据以下学习规则更新误差函数e的局部梯度信息。
中国矿产资源评价新技术和新模式
其中0 < η-< 1
在每一个时刻,如果目标函数的梯度改变了它的符号,这意味着最后一次更新太大,更新值应该减少权重更新值减少因子η-;如果目标函数的梯度保持其符号,则应该通过将加权更新值乘以因子η+来增加更新值。
为了减少可自由调节参数的数量,增大系数η+和减小系数η–被设置为固定值。
η+=1.2,
η-=0.5,
这两种价值观在大量的实践中取得了良好的效果。
RPROP算法采用两个参数:初始权重更新值δ 0和δ最大权重更新值δ max。
学习开始时,所有的更新值都设置为初始值δ0,因为它直接决定了前一个权重步长的大小,要根据权重本身的初始值来选择,例如δ0 = 0.1(默认设置)。
为了防止权重变得过大,设置δ最大权重更新值限制δ max,默认上限设置为
max = 50.0 .
在许多实验中,发现通过将最大权重更新值max设置为相对较小的值,例如
δmax = 1.0 .
我们可以实现误差减少的平滑性能。
5.计算校正重量W和偏差b。
第t次学习,权重w和偏差b的修正公式
W(t)= W(t-1)+δW(t),
b(t)= b(t-1)+δb(t),
其中t是学习的次数。
6.成功完成6的条件。BP网络学习:每次学习累积误差的平方和。
中国矿产资源评价新技术和新模式
每次研究的平均误差
中国矿产资源评价新技术和新模式
当平均误差MSE < ε时,BP网络学习成功结束。
7.BP网络应用预测
应用BP网络时,将网络输入提供给输入层,应用给定的BP网络和BP网络学习得到的权值w和偏差b。网络输入经过从输入层到输出层的“下行传播”过程,计算出BP网络的预测输出。
8.神经元激活函数f
线性函数
f(x)=x,
f′(x)= 1,
f(x)的输入范围(-∞,+∞)和输出范围(-∞,+∞)。
一般用在输出层,可以让网络输出任意值。
S型函数S(x)
中国矿产资源评价新技术和新模式
f(x)的输入范围(-∞,+∞)和输出范围(0,1)。
f′(x)= f(x)[1-f(x)],
f′(x)的输入范围(-∞,+∞)和输出范围(0,)。
一般用于隐层,可以使(-∞,+∞)范围内的输入成为(0,1)的网络输出,对于较大的输入放大倍数较小;对于较小的输入,放大因子较大,因此可以用来处理和近似非线性输入/输出关系。
用于模式识别时,可用于输出层,产生接近0或1的二进制输出。
双曲正切s型函数
中国矿产资源评价新技术和新模式
f(x)的输入范围(-∞,+∞)和输出范围(-1,1)。
f′(x)= 1-f(x)f(x),
f′(x)的输入范围(-∞,+∞)和输出范围(0,1)。
一般用于隐层,能使(-∞,+∞)范围内的输入成为(-1,1)的网络输出,对较大的输入放大倍数较小;对于较小的输入,放大因子较大,因此可以用来处理和近似非线性输入/输出关系。
阶梯函数
1型
中国矿产资源评价新技术和新模式
f(x)的输入范围为(-∞,+∞),输出范围为{0,1}。
f′(x)= 0 .
类型2
中国矿产资源评价新技术和新模式
f(x)的输入范围为(-∞,+∞),输出范围为{-1,1}。
f′(x)= 0 .
斜坡函数
1型
中国矿产资源评价新技术和新模式
f(x)的输入范围(-∞,+∞)和输出范围[0,1]。
中国矿产资源评价新技术和新模式
f′(x)的输入范围(-∞,+∞)和输出范围{0,1}。
类型2
中国矿产资源评价新技术和新模式
f(x)的输入范围(-∞,+∞)和输出范围[-1,1]。
中国矿产资源评价新技术和新模式
f′(x)的输入范围(-∞,+∞)和输出范围{0,1}。
三、整体算法
1.三层BP网络(包括输入层、隐层和输出层)用权重W和偏差b初始化整体算法。
(1)输入参数X[N][P],S0,S1,f1[S1],S2,F2[S2];
(2)计算输入模式X[N][P]的各变量的最大值和最小值矩阵Xmax[N]和xmin[N];
(3)隐层权重为W1,偏差b1初始化。
案例1:隐层激活函数f()是双曲正切S型函数。
1)计算输入模式X[N][P]各变量的范围向量xrng[N];
2)计算输入模式x的每个变量的距离均值向量xmid [n];
3)计算振幅因子Wmagw和b的;
4)生成S0×1维随机数矩阵RAND [S1]均匀分布在[-1]之间;
5)生成均值为0、方差为1的正态分布随机数矩阵RANDNR [S1 × S0] [S0],随机数范围约为[-1,1];
6)计算W[S1][S0]和B[s 1];
7)计算隐含层的初始化权重(w 1[s 1][S0];
8)计算隐含层的初始化偏差b 1[s 1];
9))输出W1[S1][S0],b1[S1]。
情况二:隐层激活函数f()都是S形函数。
1)计算输入模式X[N][P]各变量的范围向量xrng[N];
2)计算输入模式x的每个变量的距离均值向量xmid [n];
3)计算振幅因子Wmagw和b的;
4)生成S0×1维随机数矩阵RAND [S1]均匀分布在[-1]之间;
5)生成均值为0、方差为1的正态分布随机数矩阵RANDNR [S1 × S0] [S0],随机数范围约为[-1,1];
6)计算W[S1][S0]和B[s 1];
7)计算隐含层的初始化权重(w 1[s 1][S0];
8)计算隐含层的初始化偏差b 1[s 1];
9)输出W1[S1][S0],b1[S1]。
情况3:隐藏层激活函数f()是另一个函数。
1)计算输入模式X[N][P]各变量的范围向量xrng[N];
2)计算输入模式x的每个变量的距离均值向量xmid [n];
3)计算振幅因子Wmagw和b的;
4)生成S0×1维随机数矩阵RAND [S1]均匀分布在[-1]之间;
5)生成均值为0、方差为1的正态分布随机数矩阵RANDNR [S1 × S0] [S0],随机数范围约为[-1,1];
6)计算W[S1][S0]和B[s 1];
7)计算隐含层的初始化权重(w 1[s 1][S0];
8)计算隐含层的初始化偏差b 1[s 1];
9)输出W1[S1][S0],b1[S1]。
(4)输出该层的权重W2并初始化偏差b2。
1)生成S2×S1维随机数矩阵W2 [S2] [S1]均匀分布在[-1]之间;
2)生成均匀分布在[-1,1]之间的S2×1维随机数矩阵B2[S2];
3)输出W2[S2][S1],b2[S2]。
2.应用弹性BP算法(RPROP)学习三层BP网络(包括输入层、隐含层和输出层)的权值W和偏差B的整体算法。
函数:Train3BP_RPROP(S0,x,p,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)。
(1)输入参数
p为模式(xp,dp),p = 1,2,…,p;
三层BP网络结构;
学习参数。
(2)学习初始化
1) ;
2)将每层W和B的梯度值初始化为零矩阵。
(3)从输入模式x计算每层的输出y0,y1,y2和第一学习平均误差MSE
(4)进入学习周期
纪元=1
(5)判断每个学习误差是否满足目标误差要求。
如果MSE <
然后,跳出纪元循环,
请转到(12)。
(6)存储通过第一时间点-1学习生成的每层W和B的梯度值,
(7)在第一历元学习中找到每层W和B的梯度值,
1)求各层误差反向传播值δ;
2)求第p次各层W和B的梯度值;
3)求p = 1,2,…,p模式生成的W和B的梯度值的累加。
(8)如果epoch=1,则将epoch-1中学习的各层W和B的梯度值设置为epoch学习中生成的各层W和B的梯度值。
(9)找到每个层W和b的更新。
1)更新权重更新值δij;
2)求w和b的权重更新值;
3)在第一历元学习校正之后找到层W和B。
(10)使用修改的层W和B,从x计算每层的输出y0,y1,y2和历元学习误差MSE。
(11)纪元=纪元+1,
如果epoch≤MAX_EPOCH,转到(5);
否则,请转到(12)。
(12)输出处理
1)如果MSE < ε,
然后学习满足目标误差要求,输出W1,b1,W2,b2。
2)如果MSE≥ε,
然后学习不满足目标误差要求,重新学习。
(13)结束
3.三层BP网络(包括输入层、隐含层和输出层)的整体预测算法
首先用Train3lBP_RPROP()学习三层BP网络(包括输入层、隐层和输出层)的权值w和偏差b,然后用三层BP网络(包括输入层、隐层和输出层)进行预测。
函数:Simu3lBP()。
1)输入参数:
p个待预测的输入数据向量xp,p = 1,2,…,p;
三层BP网络结构;
通过学习得到的每一层的权重w和偏差b。
2)计算P个输入数据向量XP的网络输出y2[S2][P](P = 1,2,...P),并输出预测结果y2[S2][P]。
四、总体算法流程图
BP网络的整体算法流程图见附图2。
动词 (verb的缩写)数据流图
BP网络的数据流图见附图1。
不及物动词例子
实例1 BP模型对中国铜化探异常数据的分类
1.中国铜化探异常数据的准备
基于全国铜地球化学数据的铜异常下限值为33.1,生成全国铜地球化学异常数据。
2.模型数据准备
根据中国铜矿异常地球化学数据,选取7大类33个矿点的地球化学数据作为模型数据。这七种类型分别是岩浆铜矿、斑岩铜矿、矽卡岩铜矿、海相火山铜矿、陆相火山铜矿、变质铜矿和海相沉积铜矿,并增加了一个没有铜异常的模型(表8-1)。
3.测试数据准备
国家地球化学数据用作测试数据集。
4.BP网络结构
隐层数为2,输入层到输出层的向量维数分别为14,9,5,1。学习率设为0.9,系统误差为1e-5。没有动量项。
表8-1型号数据表
继续的
5.计算结果图表
如图8-2和图8-3所示。
图8-2
图by BP模型对中国铜矿类型分类示意图
实例2:用BP模型对全国金矿数量和品位数据进行分类
1.模型数据准备
根据全国金矿储量级别数据,选取了4大类34个矿床数据作为模型数据,分别是绿岩型金矿、与中酸性浸岩有关的热液型金矿、微细浸染型金矿和火山热液型金矿(表8-2)。
2.测试数据准备
以模型样本点和部分金矿的金属量、矿石量和品位数据作为测试数据集。
3.BP网络结构
输入层是三维的,隐藏层是1,隐藏层是三维的,输出层是四维的。学习率设置为0.8,系统误差为1e-4,迭代次数为5000次。
表8-2模型数据
4.计算结果
结果如表8-3和8-4所示。
表8-3培训和学习结果
表8-4预测结果(部分)
继续的