首页 百科知识 水泥加固红土抗剪强度神经网络模型的建立

水泥加固红土抗剪强度神经网络模型的建立

时间:2022-10-06 百科知识 版权反馈
【摘要】:神经网络模型的输入输出层神经元数目由输入输出向量的维数确定。因此,水泥加固红土抗剪强度指标的BP神经网络模型的隐含层神经元数目确定为5。按照神经网络模型的构建层次,通过输入输出层的确定、样本数据的归一化处理、模型传递函数的确定、隐含层神经元数目的确定,建立起水泥加固红土抗剪强度的神经网络模型,模型的层次结构如图4-28所示。

本节采用的神经网络最基本网络由3层组成,即输入层、隐含层、输出层。在前馈网络拓扑结构中,输入节点和输出节点的个数是由求解问题本身决定的。隐含层的选取需根据问题的复杂性而定。Robert Hecht-Nielson[174](1989)证明了具有1个隐含层的3层网络可以有效地逼近任意连续函数;刘勇健等[170](2001)研究表明,增加隐含层层数,能使网络解决非线性问题的能力增强,但太多的隐含层会使学习时间延长。故对于一般的非线性问题,用一个隐含层就能满足要求。考虑到本节的问题为一般的非线性问题,且在网络设计时应坚持尽可能地减小网络的规模和复杂性原则,故采用3层的神经网络模型来对水泥加固红土的抗剪强度指标进行预测。

1.输入输出层神经元数目的确定

神经网络模型的输入输出层神经元数目由输入输出向量的维数确定。输入向量的维数就是影响加固红土抗剪强度指标的因素个数,指水泥加入比例和试样养护时间2个;输出向量的维数就是抗剪强度指标黏聚力和内摩擦角2个。因此,输入层的神经元数目为2,输出层的神经元数目也为2,这也就是说该神经网络模型有2个输入神经元和2个输出神经元。其样本数据见表4-5。

表4-5 模型的样本数据

续表4-5

由于样本数据范围较大,因此在对数据进行学习之前需要对数据进行归一化处理。

2.样本数据的归一化处理

对于神经网络模型来说,其强大的非线性能力能够拟合大范围数据,即使不对数据进行归一化处理,也是能够进行学习的。但是,对数据进行适当的归一化处理,可以提高人工神经网络的学习效率和收敛速度,从而提高其预测精度。因此在学习之前,先对样本数据进行处理。

归一化处理公式如下:

两组输入向量和两组输出向量的最值由表4-5中数据样本的最值来确定。结果见表4-6。

表4-6 输入输出向量的最值

经过归一化处理后的样本数据见表4-7。

可见,归一化后各组输入数据均落在(0,1)区间内,符合神经网络的要求。由此得到模型学习样本的输入向量P和目标向量T,测试样本的输入向量P_test和目标向量T_test。

表4-7 归一化后的样本数据

3.模型传递函数的确定

传递函数又称激活函数,是神经网络模型的重要组成部分,该函数必须是连续可微函数,故神经网络模型的传递函数一般采用S型的对数函数或正切函数和线性函数[175]

对于非线性问题,传递函数可采用S型正切函数(tansig)和对数函数(logsig)。而这两种函数既可单独使用,又可交叉使用,具体如何使用,应根据输入样本来确定。因此,本节拟考虑采用4种组合来进行试算,训练次数以误差基本稳定及误差曲线大致为水平直线为止,以训练稳定误差最小和训练次数较小为原则来确定隐含层和输出层的传递函数。拟考虑传递函数的4种组合见表4-8。

表4-8 传递函数组合

选取数据样本的1~15组数据作为训练样本。训练过程中,隐含层神经元数目根据经验公式[176]确定,学习目标误差的有效位数设置为0.0001。

以训练误差最小值为原则来确定传递函数。根据训练结果(表4-8),当隐含层传递函数为tansig而输出层的传递函数为logsig时,误差最小,且满足目标误差的要求,故本节选定隐含层的传递函数为正切函数tansig,输出层的传递函数为对数函数logsig。

4.隐含层神经元数目的确定

研究表明,BP网络模型的非线性程度跟隐含层神经元数目有关,且非线性程度随着隐含层神经元数目的增加而增加,但并非隐含层神经元数目越多,网络的性能就越好,应由问题的复杂性而定[177]。目前隐含层神经元数目一般通过经验公式来确定。

根据经验公式[176]初步确定隐含层神经元数目为5,为了进行比较,再增设其他隐含层神经元数目为3,8作为对比,这样本节试算的隐含层神经元数目为3,5,8。同样选取数据样本的1~15组数据进行训练,根据网络误差收敛速度和运用训练后的网络对P_test的预测值与目标向量T_test的误差比较,最终确定隐含层神经元数目。程序代码如下:

P=[P] T=[T]

P_test=[P_test]

T_test=[T_test]

threshold=[0 1;0 1]

N=[3 5 8]

for i=1:3

net=newff(threshold,[N(i),2],{'tansig','logsig','traingdx'})

net.trainParam.epochs=10000

net.trainParam.goal=0.0001

net.trainParam.show=100

net=init(net);

net=train(net,P,T)

Temp=sim(net,P_test)

y(2*i-1,:)=Temp(1,:)

y(2*i,:)=Temp(2,:)

end

Y1=[y(1,:);y(2,:)]

Y2=[y(3,:);y(4,:)]

Y3=[y(5,:);y(6,:)]

for e=1:10

error1(e)=norm(Y1(:,e)-T_test(:,e))

error2(e)=norm(Y2(:,e)-T_test(:,e))

error3(e)=norm(Y3(:,e)-T_test(:,e))

end

figure

plot(1:10,error1,'c')

hold on

plot(1:10,error2,'k--')

hold on

plot(1:10,error3,'r-+')

hold off

训练结果表明,模型的隐含层神经元数目为5时,收敛速度最快,误差最小,网络性能最好。因此,水泥加固红土抗剪强度指标的BP神经网络模型的隐含层神经元数目确定为5。

5.神经网络模型的建立

按照神经网络模型的构建层次,通过输入输出层的确定、样本数据的归一化处理、模型传递函数的确定、隐含层神经元数目的确定,建立起水泥加固红土抗剪强度的神经网络模型,模型的层次结构如图4-28所示。

图4-28 水泥加固红土抗剪强度的神经网络层次结构

根据水泥加固红土抗剪强度的神经网络层次结构就可以建立起神经网络模型,基于MATLAB 7.1平台,编写程序代码对网络模型进行训练。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈