4.3.4 模型的确定与实现
1.模型的确定
模型的确定即对TNNM中参数的确定过程。
①输入层的设计,即确定神经元个数I,I的大小通常为输入指标参数的个数,即Index的长度14。
②输出层的设计,即确定输出神经元个数O,O的大小通常为输出指标参数的个数,即Time的长度1。
③隐含层的设计,通常包括确定隐含层的数量及每层包含神经元的个数H。隐含层通常选取1层,隐含层神经元H通常需要实验来确定,本书的实验部分会确定隐含层神经元的个数。
2.模型的实现
模型TNNM实现的具体流程如图4-30所示。主要步骤如下。
①确定建模所用测试用例来源的测试工程。对不同规模工程进行测试,采集测试用例生成时间的数据。随着有效数据的增多,模型的建立和修正更加完善且准确。
②通过实验和调研确定影响测试用例的指标,且有效指标还可以不断添加,模型的实用性也可以不断完善。通过人工统计和编码实现的方法对有效指标对应数据进行统计和采集。
③构建TNNM模型,算法4-5给出了基于误差逆传播的算法。其中算法输入即数据集(Index,Time),输出是连接权与阈值确定的多层前置神经网络TNNM。
④确定了模型的结构和计算方法后,构造神经网络算法并进行编码。

图4-30 TNNM实现的具体流程图
BP算法构建TNNM模型的具体流程如下。
①连接权和阈值的初始化,即对图4-21中多层神经网络I、O、H、F、ωhj、v ih、θi和γh参数的初始化,其中I、O、H、F等值通过实验选取,权值和阈值通常在(0,1)范围内随机选取,另外需要选取合适的学习速率。
②计算隐含层输出值,根据输入层与隐含层间连接权值v ih以及隐含层阈值θj,通过式(4-11)计算隐含层输出bh。
![]()
式中:h为隐含层节点数,即H的大小;n为输入层的节点数;f为隐含层激励函数,可以选取Sigmoid函数。(https://www.daowen.com)
③计算输出层的输出值,根据隐含层输出bh、连接权值ωhj和阈值γh,通过式(4-12)计算神经网络预测输出
。

④根据网络预测输出
和期望输出y,通过式(4-13)计算网络预测误差E j。
![]()
⑤利用式(4-14)和式(4-15)根据网络预测误差E j更新网络连接权值v ih和ωhj。

⑥更新阈值,分别利用式(4-16)和式(4-17)根据网络预测误差Ej更新网络节点阈值θi和γh。


3.模型的优化
因构建的TNNM在求解问题中容易陷入局部最优,需要采用优化算法对原来的模型进行改进,即实现上述定义的GA+TNNM和PSO+TNNM,流程分别如图4-31和图4-32所示。
其中,GA+TNNM是通过遗传算法优化神经网络的初始权值。首先,遗传算法优化初始阈值和权重,然后使用梯度下降的方式修正网络。通过这种方式,BP将不再容易陷入局部最优,从而达到全局最优化。

图4-31 GA+TNNM实现流程图

图4-32 PSO+TNNM实现流程图
PSO+TNNM的目的与GA+TNNM的目的相同,首先初始化粒子群的速度和位置,然后确定TNNM的结构,最后计算粒子群的适应度得出每个粒子的最佳位置和全局最优位置,判断准确度是否满足需要,若满足则输出PSO+TNNM,若不满足则继续更新离子群的速度和位置。