当前位置:首页 期刊杂志

基于改进遗传算法优化结合LSTM 模型的预测方法

时间:2024-05-04

赵一

(广东海洋大学数学与计算机学院 广东省湛江市 524088)

1 引言

因传统的神经网络,如卷积神经网络(Convolutional Neural Networks, CNN) 输入和输出都是互相独立的,所以需要使用特殊的方法把输入和输出紧密结合。而循环神经网络(Recurrent Neural Network, RNN)是需要之前的序列信息才能够使其任务继续进行下去的神经网络,所有的RNN 都具有一种重复神经网络模块的链式结构。在标准RNN 神经网络模型中,这个重复的结构模块以一种非常简单的结构,即输入层、隐藏层和输出层。RNN 网络只有一个单元,其更新过程是不停地乘以同一套权重,故而会发生梯度消失现象和梯度爆炸现象[1]。而LSTM 方法,是为了解决长期以来问题而专门设计出来的,LSTM 同样是一种链式结构,但是它不同于单一神经网络层,因为LSTM 方法中重复的模块拥有一个不同的结构,其有四个特殊的构建组成,它们分别是单元状态、遗忘门、输入门、输出门。LSTM 方法中网络改进思路是针对RNN 隐藏层单一结构对短期输入信息非常敏感的原因进行了改进,LSTM 方法是在RNN 网络中增加了一个元胞状态,使得经过其的输入信息能够选择性的长期保存。LSTM 方法的关键问题有三个,即第一控制长期状态,第二控制即时状态输入到长期状态中,第三控制是否把长期状态作为当前输出结果。

因此,我们研究团队提出了一种自适应度调节的遗传算法优化方法,该方法把需要传入LSTM 模型中的全连接层数和神经元个数作为染色体上的基因,代入到改进的遗传算法中进行排序选择,本文改进的排序法针对传统的排序法只度量各个个体之间的优越次序,而并未度量各个个体的分散程度,通过引入BA 网络的介性中心性公式对个体进行空间映射拥挤距离算子计算,因为中介中心性是一个结点担当任意其他两个结点的最短路径的“桥梁”,所以一个结点充当“中介”的次数越多,则它的中介中心性就越大。通过该属性,我们最终找出遗传算法中的重要个体,算出其距离最小值和最大值,选择时优先选择拥挤距离大的,从而跳出局部最优解,得出全局最(近)优解,从而解决了预测准确率低的问题,使其准确率提高到95%

2 相关工作

自从LSTM 方法1997 年诞生以来,研究者多集中在改进其记忆单元,最早的改进由Gers & Schmidhuber[2]在2000年提出,其方法增加了“peephole connections”,即每个门都可以“内视”其单元状态。其后由Cho 等人[3]提出了一种LSTM 方法变种,即取消了输入门,将新信息加入的多少与旧状态保留的多少设为互补的两个值(其和为1),即只有当需要加入新信息时,我们才会去遗忘;只有当需要遗忘时,我们才会加入新信息。之后比较知名的便是Yao 等人[4]在2015 年提出来Depth Gated RNN 模型,Koutnik[5]等人提出Clockwork RNN。但是Greff和Athiwaratkun[6-7]等人对上述几种变种方法进行了初步比较,发现其在相同数据集上运行结果变化不大。

国内研究学者也提出了类似的改进LSTM 的方案,如文献[8]的作者提出一种改进的萤火虫算法,引入种群多样性特征,作者希望通过种群多样性指数来调节模型的位置更新,并引入自适应步长因子,改进其迭代步长,通过文献实验,表明了改进的萤火虫算法具有较好的搜索性能,文章将改进的萤火虫算法与LSTM 结合,构建了一种流量预测模型,利用了LSTM 对时间序列的历史记忆性以及神经网络对复杂非线性系统的拟合性,学习和记忆网络流量的特征,能更好的选择LSTM 全连接层的参数,所以可利用该模型针对未来时刻流量序列进行预测。但是上述文献的作者并没有考虑萤火虫算法的缺陷,萤火虫算法最早由Yang[9]于2008 年提出。在算法中,萤火虫个体通过感知自己可感知范围内其他萤火虫的光亮,来确认其他个体的存在和吸引力,从而映射到多维空间下的最优解搜索过程。但是光信号的强度会伴随传播而衰减,则对于一个萤火虫个体,它的光信号只能被小范围的其他个体所感知。标准的萤火虫算法有三个基本步骤,分别是:初始化、位置更新、亮度更新。在初始化阶段,需设置各个参数,为群体中选中的单个萤火虫定好位置,并将位置向量代入目标函数,计算出萤火虫的绝对亮度。在位置更新阶段,亮度大的萤火虫吸引亮度小的萤火虫向自身靠近完成位置更新。位置更新完成后,所有个体抵达新的位置,将位置向量代入目标函数,实现亮度的更新。但是遗传学算法会随机设置一个最大迭代次数,用来控制算法的执行时长,正是因为迭代次数的随机性而导致求最优解的不稳定,如果最大迭代次数设置过小,则导致算法提前结束,得到局部最优解;反之,如果最大迭代次数设置过大,算法收敛速度过慢。因此国外团队使用改进的遗传算法来解决非线性极值的局部最优解问题,他们着力改进遗传算法中的“交叉”和“变异”步骤,使其跳出局部最优寻找全局最优。其中文献[10]使用Gaussian 分布的来实现随机变异,其后,文献[11]使用Cauchy 分布的两翼宽大特性实现更大范围的变异,以便找到全局最优解。

3 遗传算法-LSTM框架

实验中我们把全连接层数设为dense,LSTM 模型三个参数设置为input, units, sequences, input 表示传进LSTM层的输入,units 表示LSTM 模型中有多少个神经元,sequences 表示判断是否为LSTM 最后一层,如果不是最后一层,则都需要保留所有输出以传入下一层LSTM。在设计网络时,因设定的每层神经元代表一个学习到的中间特征(即几个权值的组合),网络所有神经元共同作用来表征输入数据的特定属性(如图像分类中,表征所属类别)。当相对于网络的复杂程度(即网络的表达能力、拟合能力)而数据量过小时,出现过拟合,显然此时神经元表示的特征相互之间存在许多关联和冗余。而在LSTM 模型中引入dropout 层作用是减少中间特征的数量,从而减少冗余,即增加每层各个特征之间的正交性。在原来的NSGA(带精英策略的非支配排序遗传算法)中,人们采用共享函数来确保多样性,但需要共享半径。为了解决这个问题,我们提出了复杂网络的拥挤度概念:把种群看成是一个复杂网络,其每个给定点的周围个体密度用id 表示。它指出了在个体i 周围包含个体i 本身但不包含其他个体的最小的长方形。中介中心性指的是一个结点担任其它两个结点之间最短路的桥梁的次数,如果个体介性中心性越大,则该个体是一个拥挤度越大。通过介性中心性选择优秀个体组成新的父代,接着从第二代开始,将父代种群与子代种群结合,进行快速非支配排序,同时对每一个非支配层中的个体进行介性中心性计算筛选出重要的个体,选择适合的个体组成新的父代种群。

具体模型如图1 所示。

图1:改进的遗传算法-LSTM 模型框架

3.1 改进的遗传学算法

在改进NSGA-II 算法中,支配个数np,其代表在可行解空间中可以支配个体p 的所有个体的数量。首先,设初始种群规模为N,通过非支配排序的三个步骤选择、交叉、变异得到第一代种群;第二步,将父代种群与子代种群结合,并对其快速非支配排序,同时对非支配层中的个体进行介性中心性计算,按照重要性进行排序,选取合适的个体组成新的父代种群。最后,通过遗传算法的基本操作产生新的子代种群:依此类推,直到满足程序结束的条件。如表1 所示。

表1:改进NSGA-II 算法

(1)首先,初始化一个规模为N 的种群,通过遗传算法的选择、交叉、变异三个基本操作获到第一代子代种群;

(2)其次,从N-1 代开始,将其父代种群与子代种群合并,进行快速非支配排序,同时对每个非支配层中的个体进行介性中心性计算,根据非支配关系以及个体的介性中心性选取合适的个体组成新的父代种群;

(3)最后,通过遗传算法的基本操作产生新的子代种群。

支配个数np。该量是在可行解空间中可以支配个体p 的所有个体的数量。被支配个体集合SP。该量是可行解空间中所有被个体p 支配的个体组成的集合。

介性中心性指的是一个结点担任其它两个结点之间最短路的桥梁的次数。一个结点充当“中介”的次数越高,它的中介中心度就越大。如果要考虑标准化的问题,可以用一个结点承担最短路桥梁的次数除以所有的路径数量。介性中心性算法步骤如表2 所示。

表2:介性中心性算法

首先,我们把需要优化的参数(包括LSTM 层数和全链接层数及每层的神经元个数)写到列表num 中,然后将σit(i)作为取值依据,选取最短路径条数排前5、前10、前15 和前20 的节点代入遗传算法进行染色体筛选,把需要传入文件列表num 当成染色体,需要优化的参数映射为染色体上的基因。

第一步:算遗忘信息,称为遗忘门。计算公式如下:

第二步:决定单元状态中存储的信息,it表示要留下的信息, 表示遗忘权重。

利用遗忘门和输入门,可以计算出新的单元状态,计算公式如下:

最后输出经过ReLU 激活,计算公式如下:

LSTM 与RNN 不同,在于状态通过累加的方式计算:

4 实验与评估

在这一章中,我们进行了一系列的实验对比来评估所提出的方法性能。所有实验都是用Python 来实现的,所用电脑的CPU是 2.6GHz Intel(R) Core(TM) i7 CPU 和 16GB 内存。

4.1 数据集与预处理

实验训练集和测试集,我们选用mnist 手写数据集,该数据集包含了0-9 的手写数字。实验首先创建deep_learning.py 文件,其中包含LSTM 层函数create_lstm(inputs, units,sequences)和创建全链接层create_dense(input, units)。由于传统的遗传算法,染色体上的基因取值范围是相同的,但在LSTM 网络中,由于基因的长度不一,所以在实验中,我们把每条染色体设置为相同的长度。具体解决办法:1.将每条染色体设置为相同的长度(本题来说,因为LSTM 层与全连接层层数最多三层,加上最前面两个表示层数的基因,故每条染色体上有3+3+2=8 个基因),达不到长度要求的后面补零;2.先设置前面两个基因,令其范围分别在一到三之间,然后根据这两个基因确定后面关于每层神经元个数的基因;3.对于交叉函数的修改,首先确定取出的两条染色体(设为a 染色体和b 染色体)上需要交换的位置,然后遍历两条染色体在这些位置的基因,如果任一染色体上,此位置上的基因为0,则取消此位置的交换。ReLU 函数,该函数的表达式:

经过实验表明,ReLU 函数对于随机梯度下降的收敛有加速作用。其最大的优势求导简单,相对于sigmoid 和tanh的运算量,ReLU 函数可认为几乎不存在计算量,因此对神经网络的训练有很好的加速作用。一般经验是决定dropout之前,需要先判断是否模型过拟合即dropout=0。欠拟合:尝试调整模型的结构,暂时忽略下面步骤。dropout 设置成0.4-0.6 之间,再次训练得到模型的一些指标。如果过拟合明显好转,但指标也下降明显,可以尝试减少dropout(0.2)如果过拟合还是严重,增加dropout(0.2)重复上面的步骤多次,就可以找到理想的dropout 值了。在优化神经网络上,用常规的遗传算法不易实现原因如下:传统的遗传算法中每条染色体的长度相同,但是优化LSTM 网络时染色体的长度会因为层数的不同而不同,比如:a 染色体有一层LSTM层和一层全连接层,则这个染色体上共有6 个基因(两个代表层数,两个代表神经元个数)b 染色体有二层LSTM 层和二层全连接层,则这个染色体上共有6 个基因(两个代表层数,四个代表每层的神经元个数)。

4.2 指标

采用两个指标:准确率,适应度来评估手写体预测的质量。

Precision 和fitness 被定义为:

其中 TP 是正类(true positives)的数量,i.e.,即同一领域中的任意两个服务是否被正确地分配给同一个类簇;FP是负类(false positives)的数量, i.e., 分配给同一个类簇的任何两个服务实际上属于不同的领域;FN 是正类判定为负类(false negatives)的数量, i.e., 同一领域中的任何两个服务都分配给不同的类簇。

图3:不同子代下两种方法的适应度

为了满足适应度取值非负的要求,则采用下面方法将目标函数f(x)转换为个体适应度函数fitness(x),fitness 被定义为:

Cmax是一个适当的相对比较大的值,预先指定一个较大的数(进化到当前为止的最大目标函数)。注意,Precision和fitness 是正度量,也就是说,较高的值表示更好的服务聚类结果;而较低的熵值则表示更好的服务聚类结果。

4.3 结果

在这一章节中,我们的实验报告给出两组评估结果:

(1)种群的代数对改进遗传算法LSTM 模型适应度的影响;

(2)四种服务聚类方法的比较。

4.3.1 fitness 值的影响

在我们提出的方法中,适应度越大说明。R 值会影响训练主题模型的质量,进而影响服务聚类的性能。为了评估每一代对适应度的影响,我们基于不同个体子代值对mnist 数据集进行识别,评比在不同子代对数据集识别的结果优劣,从1 到12 不同子代中选取最优的fitness。

图 2-3 给出了不同子代下的手写体识别的准确率。可以看出,本文改进遗传算法结合LSTM 模型基于在第五代个体与第9 代个体上其适应度较强,优于一般遗传算法LSTM模型约13%;其在第四代个体和第9 代个体上其对手写数字识别与预测较为准确,其准确率优于一般遗传算法LSTM模型12%。TABLE 3. 四种方法的评估结果。

图2:不同子代下两种方法的准确率

结果表明,我们在下面的实验中应该选用6 代和7 代来进行模型训练是可以得到较好的手写体识别效果。

实验数据表明,本文改进遗传算法结合LSTM 模型基于在第五代个体与第9 代个体上其适应度较强,优于一般遗传算法LSTM 模型约13%;其在第四代个体和第9 代个体上其对手写数字识别与预测较为准确,其准确率优于一般遗传算法LSTM 模型12%。TABLE 3. 四种方法的评估结果。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!