background image

人层和输出层时,应该尽可能的减小系统规模,使系统的学习时间和复杂性减小。结合预测
要求本论文设计输出层为产气量一个输出因子。

 

  

2.4 隐层节点数 

  一个具有无限隐层节点的两层

BP 网络可以实现任意从输入到输出的非线性映射。但对

于有限个输入模式到输出模式的映射,并不需要无限个隐层节点,这就涉及到如何选择隐
层节点数的问题,至今为止,尚未找到一个很好的解析式,隐层节点数往往根据前人设计
所得的经验和自己进行试验来确定。一般认为,隐层节点数与求解问题的要求、输入输出单
元数多少都有直接的关系。另外,隐层节点数太多会导致学习时间过长;而隐层节点数太少,
容错性差,识别未经学习的样本能力低,所以必须综合多方面的因素进行设计。

 

  隐层节点数的初始值可先由以下两个公式中的其中之一来确定

[4,5]。 

  

+a(1) 

  或

(2) 

  式中,

m、n 分别为输入结点数目与输出结点数目,a 为 1~10 之间的常数。 

  

2.5 数据归一化 

  因为原始数据幅值大小不一,有时候还相差比较悬殊。如果直接投人使用,测量值大的
波动就垄断了神经网络的学习过程,使其不能反映小的测量值的变化。所以,在网络训练之
前,输人数据和目标矢量都要经过归一化处理。根据公式可将数据

“归一化”,即限定在

[0.1,0.9]区间内。归一化公式为: 
  

×0.8+0.1(3) 

  

3.BP 算法及预测模型的建立 

  

3.1BP 算法 

  

1)初始化网络及学习参数; 

  

2)从训练样本集合中取一个样本,并作为输入向量送入网络; 

  

3)正向传播过程,对给定的输入样本,通过网络计算得到输出样本,并把得到的输出

样本与期望的样本比较,如有误差超出限定范围,则执行第

4 步;否则返回第 2 步,输入

下一个样本;

 

  

4)反向传播过程,即从输出层反向计算到第一隐层,修正各神经元的连接权值,使用

误差减小。

 

  

3.2 煤层气井日产气量预测模型 

  为了预测煤层气井日产气量,需要关注很多因素,滤去相关度过低的因子,根据经验
确定输入因子为煤层埋深、煤层厚度、含气量、渗透率和含气饱和度,输出因子为日产气量。
现以表

1 所示的沁水樊庄区块晋试 1-6 井的参数作为训练样本进行训练,对 TL003 井的数

据进行预测。输出层结点代表日产气量,神经网络的预测模型采用

5-5-1,即输入层 5 个神

经元,根据公式

(2)计算隐层神经元数确定为 5,1 个输出神经元。设定最大的迭代次数为

1000 次,系统全局误差小于 0.0005。传递函数为 tansig,训练函数为 traingdx。根据经典的
BP 算法,采用 Matlab 编程,样本训练结果见图 2,TL003 的数据作为预测样本,预测结果
如下:

 

  

TRAINGDX,Epoch0/1000,MSE0.363349/0.0005,Gradient0.113892/1e-006 

  

TRAINGDX,Epoch25/1000,MSE0.358319/0.0005,Gradient0.124151/1e-006 

  

TRAINGDX,Epoch50/1000,MSE0.336296/0.0005,Gradient0.165309/1e-006 

  

TRAINGDX,Epoch75/1000,MSE0.151697/0.0005,Gradient0.201026/1e-006 

  

TRAINGDX,Epoch100/1000,MSE0.0491568/0.0005,Gradient0.0479309/1e-006 

  

TRAINGDX,Epoch125/1000,MSE0.0250848/0.0005,Gradient0.0155269/1e-006 

  

TRAINGDX,Epoch150/1000,MSE0.00622656/0.0005,Gradient0.010656/1e-006