利用BP神经网络建立煤炭水分微波测量模型
2018-12-05郝燕
郝 燕
(山西汾西矿业集团煤质处,山西 介休 032000)
1 BP神经网络基本知识
本文采用三层单输出BP网络建立煤炭水分模型,包括输入层、一个隐含层和输出层,输出层的节点数为1,前后层之间采用全连接,而每一层之间无连接,如图1。
图1 三层单输出的BP网络
BP网络的权值和阀值采用误差反向传播算法即BP算法来进行调节,对于三层单输出的BP网络的学习步骤如下:
(1)初始化BP网络的权值和阀值。
(2)依次输入N个学习样本,假设当前输入第P个样本。
(3)输入样本,计算BP网络中隐层和输出层的各个神经元的输出值:
式中:
uj-隐层第j个神经元基函数的输出值;
wij-输入层第i个神经元与隐层第j个神经元的连接权值:
f1-隐层各个神经元的激活函数。
式中:
u'-输出层的神经元基函数的输出值;
wj-隐层第j个神经元与输出层神经元的连接权值;
f2-输出层神经元的激活函数。
(4)计算各层的反向传播误差和权值修正量:
对于输出层
式中:
d(p)-第P个学习样本的期望值;
η-学习率。
对于隐层
(5)判断是否学习完N个样本,如果没有,转到步骤(2)继续学习;如果己学习完,转到步骤(6)。
(6)批量修正各层的权值:
式中:
n-迭代次数。
(7)所有样本按新的权值计算输出层的输出值,若总误差
或达到设定的最大次数,则终止学习,否则转至步骤(2)继续新一轮的学习。
2 基于BP神经网络的微波衰减法模型
2.1 样本的采集
为了实现神经网络能够对测量数据的准确预测,所选的样本数据应尽可能准确,且样本应覆盖所研究问题的全部范围。在建立微波衰减法测量煤炭水分BP网络模型中,将上节的1920组数据作为训练样本,60组作为检验样本,下面的相移法和双参量法模型的训练样本和检验样本与之相同。
2.2 神经网络的建立
在MATLAB中,采用newff()函数创建一个前向BP神经网络模型,函数的调用格式为:
式中:
PR-由R组输入的最小值和最大值组成的R×2维矩阵;
Si-第i层的节点数;
TFi-第i层的传递函数,默认为tansig;
BTF-BP网络的训练函数,默认为trainlm;
BLF-权值和阀值的学习函数,默认为learngdm;
PF-网络的性能函数,默认为mse。
调用该函数创建了一个网络对象,调用函数时自动初始化网络的权值和阀值。在训练网络前,需要对网络的结构、网络的输入层等内容进行设计。
(1)输入层、隐含层和输出层的设计
BP网络的输入层和输出层的节点数根据求解的问题直接确定。在微波衰减法测量煤炭水分的模型中,输入变量为透射波衰减、煤层厚度、堆密度和环境温度,所以网络的输入层的节点数为4个,输出变量为水分值,输出层为1个节点。
如何确定隐含层的节点数是一个复杂的问题,通常根据多次试验和经验来确定,对于三层BP网络,隐含层的节点数可参考下面的计算公式:
式中:
h-隐含层节点数;
m-输入层节点数;
n-输出层节点数;
α-0~10之间的常数。
本文选取隐节点数在参考经验公式确定大致范围的基础上,采用试凑法确定最佳节点数,预先选择隐节点数在3~12之间,分别对网络训练,比较网络的预测精度,最终选择隐节点数为10个。
(2)传递函数的选择
传递函数也称激活函数,BP神经网络隐节点的激活函数都采用是Sigmoidal函数,输出节点的激活函数根据应用不同而异,如果用于函数拟合,输出节点应采用线性函数。因此,网络的传递函数采用logsig-purelin形式。
(3)训练函数的选择
MATLAB神经网络工具箱提供了一系列训练函数可供选择,在设计衰减法测量煤炭水分的BP网络中,为了选择收敛速度最快的训练函数,由于trainlm训练函数的收敛速度最快,因此,选择采用trainlm函数作为网络的训练函数。
2.3 神经网络的训练
BP网络训练通常采用train函数来完成,在网络训练前,还需要确定初始权值并设定学习率、训练目标、训练次数和动量因子等训练参数。
(1)初始权值的选取
通常,初始权值选取为[0,1]间的随机数,本网络采用默认的初始权值。
(2)学习率
为了保证系统的稳定收敛,选取较小的学习率,选取范围通常在0.01~0.8之间。本网络设定学习率为0.05。
(3)训练次数
训练次数对网络的泛化能力有很大影响,网络的训练次数存在一最佳点。本网络经过多次试验,最终选取训练次数为400。
(4)训练目标
本网络通过多次训练对比后确定最终训练目标为0.00002。
(5)动量因子
动量因子一般取值在0.1~0.8之间,本网络设定动量因子为0.5。
设定完以上参数,网络训练前对实验数据进行归一化处理,使所有的数据转化到[0,1]范围内,避免因数据数量级差别大而造成网络的预测能力下降,调用train函数对网络进行训练,train函数的调用格式为:
式中:
P-网络输入;
T-网络目标;
Tr-训练记录;
net-训练前的网络;
NET-训练后的网络。
神经网络用于建立微波衰减法测量煤炭水分模型的学习曲线如图2所示,经过173次训练后均方误差小于目标值,于是停止学习。
3 基于BP神经网络的微波相移法模型
3.1 BP神经网络的构建
在微波相移法测量煤炭水分的模型中,输入变量分别为透射波相移、煤层厚度、堆密度和环境温度,所以网络的输入层的节点数为4个,输出变量为水分值,输出层为1个节点。网络隐节点的传递函数采用单极性sigmodal函数即logsig函数,输出节点的传递函数采用线性函数purelin。通过多次训练比较确定隐节点数为10个,训练函数采用trainlm函数,学习函数采用leamgdm函数。
图2 BP网络的学习过程
3.2 网络训练
利用构建的BP网络学习训练样本,网络训练前先对所有的实验数据进行归一化处理,设定学习率为0.05,训练次数为400,训练目标为0.00002,动量因子为0.5,其余参数采用默认值,经过86次训练后均方误差达到要求,于是停止学习。
3.3 网络的预测检验
为了检验模型的正确性,利用训练好的模型预测检验样本,其中煤炭水分预测值经过了反归一化处理,预测结果与真实水分的比较图如图3所示,经计算,预测水分与真实水分的相关系数等于0.9950,绝对误差不大于0.96%。与利用逐步回归分析建立的微波相移法测量煤炭水分的模型相比,BP网络建立的煤炭水分模型的预测精度明显高于逐步回归分析模型。
图3 BP网络的预测结果
4 基于BP神经网络的微波双参量法模型
4.1 BP神经网络的构建
在微波双参量法测量煤炭水分的模型中,输入变量为微波衰减、微波相移、煤层厚度、堆密度、温度,输出变量为煤炭水分,所以网络的输入节点数为5个,输出节点数为1个,网络隐节点的传递函数采用单极性sigmodal函数即logsig函数,输出节点的传递函数采用线性函数purdm。通过多次训练比较确定隐节点数为12个。
4.2 网络的训练
利用构建的BP网络学习训练样本,训练前对实验数据进行归一化处理,使所有数据转化到[0,l]范围内,设定学习率为0.05,训练次数为400,训练目标为0.00002,动量因子为0.5,其余参数采用默认值,经过93次训练后均方误差达到要求,于是停止学习。
4.3 网络的预测检验
利用训练好的网络预测检验样本,其中预测结果进行了反归一化处理,比较煤炭水分的预测值与真实值的差异,以验证模型的正确性。预测结果与真实水分的比较图如图4所示,经计算,预测水分与真实水分的相关系数等于0.9942,绝对误差不大于1.15%,与利用逐步回归分析建立的微波双参量法测量煤炭水分的模型相比,BP网络建立的煤炭水分模型的预测精度较高。
5 结论
本文利用BP神经网络具有通过学习逼近任意非线性映射的能力,分别建立衰减法、相移法和双参量法的煤炭水分BP网络测量模型,并分别与逐步回归模型的预测结果进行了比较,结果表明神经网络预测更加准确,具有更好的实际应用性。
图4 BP网络的预测结果