利用BP神经网络建立煤炭水分微波测量模型

2018-12-05 11:58
山东煤炭科技 2018年3期
关键词:权值微波水分

郝 燕

(山西汾西矿业集团煤质处,山西 介休 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网络的预测结果

猜你喜欢
权值微波水分
一种融合时间权值和用户行为序列的电影推荐模型
苯中水分的检验
CONTENTS
减盐不如减水分
为什么
一种USB 接口的微波开关控制器设计
微波冷笑话
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
完形填空Ⅳ