摘要:煤巷围岩稳定性受许多因素的影响,各因素间有着复杂的非线性关系。BP神经网络对输入的样本具有很强的识别与分类能力,可以实现精确的非线性预测。本文应用MATLAB语言,建立了适用于煤巷围岩稳定性分类的BP神经网络,具有很好的评价识别效果。
关键词: BP神经网络MATLAB围岩稳定性
1 引言
目前,一些矿区煤巷的支护设计仍采用经验类比的方法,不同的巷道,锚杆支护布置参数雷同,造成了有些巷道支护方式存在着安全隐患,有些存在着经济上的浪费。问题的主要原因是支护设计者对煤巷围岩稳定性缺乏科学的判定手段。影响煤巷围岩稳定性的因素很多,它们与煤巷围岩稳定性之间呈现出一种非线性关系,用传统的数学方法很难拟合。BP神经网络对输入的样本具有很强的识别与分类能力,可以很好地解决对非线性曲面的逼近问题。本文应用MATLAB语言,建立了适用于煤巷围岩稳定性分类的BP神经网络。
2 神经网络
2.1 神经元
神经元是神经网络的基本处理单元,表现为一个多输入、单输出的非线性器件,结构模型如图:
其中,χj为输入信号,ωij为χj的权植,ui为第i个神经元的内部状态,θi为阈值,输入χj乘以权值ωij得到ωijχj,送入累加器累加,然后偏置θi值,送入一个传递函数f,在f中产生神经元的输出yi。
神经元可表示为:
2.2多层神经网络
每层有各自的输入向量X、权值矩阵W、偏置值向量θ和输出向量Y,用上标来标注层次。三层神经网络模型如图:
2.3 BP神经网络
BP神经网络是采用BP算法进行学习的多层前馈网络,比较适用于模式识别与分类的应用,在解决非线性、不确定性、大信息量的问题上具有很强的优越性。
BP算法是一种用于前向多层的误差反向传播学习算法,通过学习,可以对网络的连接权值进行不断地调整,使得调整后的网络能够将输入它的信息变换成所期望的输出信息。学习过程由正向传播和反向传播组成。
BP神经网络的学习过程:(1)选择一组训练样本,包括输入信息和期望输出两部分。(2)取一样本,把输入信息输入到网络中。(3)分别计算经神经元处理后的各层节点的输出。(4)计算网络的实际输出和期望输出的误差。(5)从输出层反向计算到第一个隐层,并按照某种能使误差向减小方向发展的原则,调整网络中各神经元的连接权值。(6)对训练样本集中的每一样本重复(2)至(5)步,直到误差达到要求时为止。
3BP神经网络设计
3.1 网络的层数
在设计BP神经网络时,一般先考虑设一个隐含层,因为单隐含层的BP网络的非线性映射能力已经比较强了,当一个隐含层的节点数很多仍不能改善网络性能时,才考虑增加一个隐含层。本模型采用3层BP神经网络。
3.2 各层的神经元数
经查阅文献资料和对煤矿进行调研,对影响煤巷围岩稳定性的因素进行综合分析,确立了11个影响因素:煤层埋深、煤层倾角、煤层厚度、煤层强度、直接顶厚度、直接顶强度、老顶厚度、老顶强度、直接底厚度、直接底强度、护巷煤柱宽度,所以网络输入层神经元数为11。
按照巷道的围岩性质,将煤巷围岩稳定性划分为稳定、比较稳定、不稳定和极不稳定四种类型,所以网络输出层神经元数为4。
隐含层神经元的作用是从样本中提取信息并存储其内在规律,每个隐含层神经元的每个权值都是增强网络映射能力的一个参数,因此,隐含层神经元数在很大程度上影响着网络的预测性能。
3.3 传递函数
根据模型的特点及输出值的范围,隐含层使用双曲正切s型函数,输出层使用对数-s形传递函数。
3.4 MATLAB语言实现
用MATLAB构建BP网络模型的主要代码如下:
P=[……]";%定义输入向量
T=[0,1,0,0;……] "%定义目标向量
threshold=[0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1];
net=newff(threshold,[23,4],{"tansig","logsig"},"trainlm");%定义网络
net.trainParam.epochs=1000;%定义网络的训练次数
net.trainParam.goal=0.0001;%定义网络的目标误差
LP.lr=0.01;%定义网络的学习速率
net=train(net,P,T);%训练网络
P_test=[……]";%定义测试数据
Out=sim(net,P_test)%对网络进行测试
4 结语
煤巷围岩稳定性受许多因素的影响,这些因素与煤巷围岩稳定性分类之间存在着非线性的关系,BP神经网络在煤巷围岩稳定性分类预测中具有较高的精度。但BP算法存在着收敛速度慢、隐节点个数不易选取、局部最小值等问题,有待改进。
参考文献:
[1] 葛哲学,孙志强.神经网络理论与MATLAB R2007实现[M].电子工业出版社,2007.
[2] 王磊.基于人工神经网络的煤巷围岩稳定性分类系统[D].山东科技大学,2005.
作者简介:张俊荣 北方工业大学2007级计算机技术领域在读工程硕士研究生。