基于SA_SOA_BP神经网络的网络安全态势预测方法与流程

专利2022-06-29  119


本发明涉及网络信息安全,具体属于网络安全态势感知的技术领域,尤其涉及一种基于sa_soa_bp神经网络的网络安全态势预测方法。



背景技术:

随着大数据、人工智能和互联网的高速发展及应用,网络结构的复杂化、数据的多元化以及网络协议的多样化,使得多层面、多形式的网络安全风险随之加剧。网络攻击行为日渐向着分布化、规模化、复杂化等趋势发展,传统的入侵检测系统、防火墙等网络安全防御手段已经不能满足现在高速、智能、多源的网络安全需求,需要更加先进、优化的技术手段和方式方法去防范网络安全事件的发生。1999年,bass首次提出了网络安全态势感知(networksecuritysituationawareness,nssa)的概念。安全态势感知最早运用在航空和军事领域,用来快速决策和处理复杂的航空和军事事件,后来被研究者广泛地运用到网络安全领域。研究者们发现态势感知不仅可以进行网络安全态势评估,也可以用来进行网络安全态势预测,使原来的被动防御变为主动防御,可以很大程度的解决网络安全的防御问题,因此成为了当下的一个热点研究方向。

目前,网络安全态势预测的研究已经非常广泛,国外对这方面的研究相对比较早。文献[s.mathew,c.shah,s.upadhyaya.analertfusionframeworkforsituationawarenessofcoordinatedmultistageattacks[c].//procofthe3rdieeeinternationalworkshoponinformationassurance,losalamitos,ca:ieee,2005:95-104]提出了一种基于实时入侵警报流的动态计算“场景可信度”的方法,为实时检测、预测和推理多目标攻击提供了一种有用的机制。文献[s.j.yang,s.byers,j.holsopple,etal.intrusionactivityprojectionforcybersituationalawareness[c].//procoftheieeeinternationalconferenceonintelligenceandsecurityinformatics,nj:ieee,2008:167-172]提出了一种基于网络的虚拟地形和马尔可夫模型的入侵活动预测方法。文献[d.s.fava,s.r.byers,s.j.yang.projectingcyberattacksthroughvariable-lengthmarkovmodels[j].ieeetransactionsoninformationforensicsandsecurity,2008,3(3):359-369]提出了一种基于变长马尔可夫的预测模型,通过捕获攻击轨迹的顺序属性,实现对攻击的预测。文献[c.fachkha,e.bou-harb,m.debbabi.towardsaforecastingmodelfordistributeddenialofserviceactivities[c].//procofthe12thieeeinternationalsymposiumonnetworkcomputingandapplications,cambridge,ma:ieee,2013:110-117]提出了一种基于时间序列波动分析和预测的方法,实现对分布式拒绝服务(ddos)活动进行预测。文献[g.chen,d.shen,c.kwan,etal.gametheoreticapproachtothreatpredictionandsituationawareness[c].//procofthe9thinternationalconferenceoninformationfusion,florence:ieee,2006:1-8]提出了一种基于先验知识和随机马尔可夫博弈论的数据融合框架,用于非对称威胁的检测和预测。近些年国内在网络安全态势预测方面也做了大量的研究,很多研究者们尝试将人工智能的方法引入态势评估领域来提高态势感知和预测的准确性。文献[刘付民,王静咏,张治斌.组合核函数相关向量机的网络安全态势预测[j].计算机应用研究,2016,33(08):2417-2419 2424]提出了一种多项式和高斯核函数构建的组合函数相关向量机的网络安全态势预测模型,解决了单一核函数的局限性,提高了预测的精准性和有效性,但是缺少相关的理论证明推导支撑。文献[韦勇,连一峰,冯登国.基于信息融合的网络安全态势评估模型[j].计算机研究与发展,2009,46(03):353-362]提出了一种利用改进的d-s证据理论进行信息融合的网络安全态势评估模型,此模型对多源信息进行融合,并运用时间序列分析法进行态势分析,克服了传统单一数据源造成的预测结果的不准确的问题,但是还需要更加全面的评估指标和量化评估方法。文献[刘玉岭,冯登国,连一峰,等.基于时空维度分析的网络安全态势预测方法[j].计算机研究与发展,2014,51(08):1681-1694]提出了一种基于时空维度分析的网络安全态势预测方法,解决了未来安全态势要素值的新变化以及周围节点安全态势要素对态势预测的影响,但此方法受提取的态势要素值的影响较大,另外用到了脆弱性预测算法,它的随机性较大,对预测的准确性有影响。文献[黄同庆,庄毅.一种实时网络安全态势预测方法[j].小型微型计算机系统,2014,35(02):303-306]提出了一种基于隐markov模型的实时网络安全态势预测模型,可以有效的提高预测的实时性,但是hmm模型存在参数估计的效率性问题。文献[甘文道,周城,宋波.基于ran-rbf神经网络的网络安全态势预测模型[j].计算机科学,2016,43(s2):388-392]提出了一种基于资源分配网络径向基函数神经网络的网络安全态势预测模型,将资源分配网络算法用到样本聚类中,并采用改进的粒子群算法优化rbf的中心、宽度和权值,提高了预测的精准度。文献[陈维鹏,敖志刚,郭杰,等.基于改进的bp神经网络的网络空间态势感知系统安全评估[j].计算机科学,2018,45(s2):335-337 341]提出了一种使用模拟退火算法和变步长学习策略优化bp神经网络的评估模型,克服了传统bp神经网络反馈误差慢和易陷入局部极值的局限性。文献[j.wu,l.yinandy.guo.cyberattackspredictionmodelbasedonbayesiannetwork[c].//procofthe18thieeeinternationalconferenceonparallelanddistributedsystems,singapore:ieee,2012:730-731]提出了一种基于贝叶斯网络的网络攻击预测模型,该模型考虑了主要环境因素,提高了预测的准确性,下一步需要开发更有效的实时安全评估方法。文献[l.jibao,w.huiqiangz.liang.studyofnetworksecuritysituationawarenessmodelbasedonsimpleadditiveweightandgreytheory[c].//procoftheinternationalconferenceoncomputationalintelligenceandsecurity,guangzhou:ieee,2006:1545-1548]提出了一种基于简单加权和灰色理论的网络安全态势感知模型,该预测该模型可以有效评估当前网络安全状况,并以96%以上的精度预测未来状况,但是需要在10g以太网中测试该模型,以进一步验证其可行性和合理性并进行改进。文献[z.lin,g.chen,w.guoetal.pso-bpnn-basedpredictionofnetworksecuritysituation[c].//procofthe3rdinternationalconferenceoninnovativecomputinginformationandcontrol,dalian,liaoning:ieee,2008:37-37]提出了一种基于pso-bpnn的网络安全态势预测方法,可以克服传统bp网络中预测应用的不足,有效提高了态势预测的准确性。文献[p.xiao,m.xianandh.wang.networksecuritysituationpredictionmethodbasedonmea-bp[c].//procofthe3rdinternationalconferenceoncomputationalintelligence&communicationtechnology,ghaziabad:ieee,2017:1-5]提出了一种基于mea-bp的网络安全态势预测方法,该预测模型使用mea算法优化bp神经网络的权值和阈值,提高了预测的准确性,但是还需要继续的改进优化算法。文献[s.zhang,y.sheng.zhang.networksecuritysituationpredictionmodelbasedonmulti-swarmchaoticparticleoptimizationandoptimizedgreyneuralnetwork[c].//procofthe9thieeeinternationalconferenceonsoftwareengineeringandservicescience(icsess),beijing:ieee,2018:426-429]提出了一种基于多群混沌粒子优化灰色神经网络的网络安全态势预测模型,有此方法具有较高的精度和良好的预测效果,可以有效增强网络安全防御的主动性,减少网络攻击造成的损失,具有良好的实用性,但是需要与更多的预测模型进行对比。这些预测模型和方法是近几年研究中比较常用的,这些改进的方法相比传统方法在一定程度上提高了评估预测的效果,但是这些方法面对收集到的海量数据,在准确性和效率上还不理想,无法适应动态多变的网络安全需求。

人群搜索算法(soa)是一种智能搜索算法,应用较为广泛。我们先在研究中采用soa优化bp神经网络并应用于网络安全态势预测,从一定程度上提高了预测的精准度,但soa存在搜索后期易陷入局部最优即“早熟”现象和收敛缓慢的问题。因此,本申请采用模拟退火算法(sa)优化人群搜索算法(soa)来克服这种现象。



技术实现要素:

针对现有网络安全态势预测方法面对海量数据,在准确性和效率上不理想,无法适应动态多变的网络安全需求的技术问题,本发明提出一种基于sa_soa_bp神经网络的网络安全态势预测方法,将模拟退火算法(sa)引入人群搜索算法(soa)并与bp神经网络相结合,提高了网络安全态势预测的准确性和预测的收敛速度。

为了达到上述目的,本发明的技术方案是这样实现的:一种基于sa_soa_bp神经网络的网络安全态势预测方法,其步骤如下:

步骤一:采集网络安全数据信息为实验数据,对实验数据进行预处理并分成训练数据集和测试数据集;

步骤二:根据实验数据中的输入数量和输出数量利用试凑法确定bp神经网络的网络结构,并利用训练数据集中的训练样本初始化bp神经网络的连接权值和阈值;

步骤三:将模拟退火算法引入人群搜索算法中得到改进的人群搜索算法,初始化改进的人群搜索算法中的种群个体、种群规模、最大迭代次数、空间维数、最小最大隶属度、权重的最小值与最大值;

步骤四:初始化模拟退火算法的初始温度、降温速率、突跳概率;

步骤五:采用改进的人群搜索算法找到最优个体,以训练数据集经过训练产生的预测值和真实值之间的误差的绝对值之和为适应度函数,通过适应度函数计算个体的适应度值,找出全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值,将得到的最优个体对bp神经网络的连接权值和阈值进行优化;

步骤六:根据步骤五得到的bp神经网络优化后的连接权值和阈值,将测试数据集中测试样本代入bp神经网络中进行建模,得到网络安全态势的预测值。

所述步骤一中的实验数据为《网络安全信息与动态周报》所发布的网络安全数据,对实验数据进行了预处理操作,将数据归一化为[-1,1],即:

其中,y表示归一化后的值,x表示样本数据,xmin表示样本数据中的最小值,xmax表示样本数据中的最大值;

所述步骤二中以预处理后的实验数据中的感染病毒的主机数量、被篡改的网站总数、被植入后门网站总数、境内网站的仿冒页面数量和新增信息安全漏洞数量为bp神经网络的输入,以态势值为bp神经网络的输出,确定隐含层节点个数:

l<n-1(2)

l=log2n(4)

其中,n为输入层的节点数;l为隐含层的节点数;m为输出层节点数;a为0~10之间的常数;根据试凑法确定隐含层节点数l,确定bp神经网络的网络结构。

所述步骤四中模拟退火算法的初始温度确定为:

其中,fitnesszbest表示全局最佳适应度值,α为初始接受概率;

降温速率为:tt 1=γtt,t≥0,0≤γ≤1(6)

其中,γ为降温的速率,t为迭代次数;tt 1和tt分别表示第t 1和t次迭代的降温速率;

当退火温度确定时,当前最佳适应度值以突跳概率代替以前个体最佳适应度值和全局最佳适应度值,则突跳概率的确定为:

df=fitness(i)-fitnesszbest(8)

上式中,fitness(i)为当前个体i的适应度值,fitnesszbest为全局最佳适应度值,df表示当前个体的适应度值与全局最佳适应度值的差值;t表示退火温度;pi表示个体i被选择的突跳概率;如果差值df<0,则以概率1接受新解;否则以概率exp(-df/t)接受新解。

所述步骤五中改进的人群搜索算法的实现方法为:

步骤s5.1:确定改进的人群搜索算法的搜索方向和搜索步长,根据计算得到的搜索步长和搜索方向进行位置更新,更新个体最优和群体最优以及它们的适应度值;

步骤s5.2:在全局最优适应度值的邻域内选择一个搜寻者,计算当前个体的适应度值与全局最佳适应度值,如果当前新个体适应度值小于以前个体最佳适应度值,则将当前个体位置赋值给当前个体最优的最值,再将当前个体适应度值赋值给个体最佳适应度值;

步骤s5.3:模拟退火算法的降温处理:根据降温速率控制温度;

步骤s5.4:判断是否满足循环的终止条件,即是否超过最大迭代次数和种群规模。如果没有,继续迭代寻优,跳转至步骤5.1。

所述步骤s5.1中确定搜索步长的方法为:

对个体最优适应度值进行降序排列,并给每个个体赋予索引号作为模糊推理的输入,使用高斯线性隶属函数来表示搜索步长的模糊变量的输出,高斯线性隶属函数将第i个个体最佳适应度值线性的映射到最小隶属度和最大隶属度之间,映射公式如下:

uij=ui (1-ui)*randj=1,2,3,...d(10)

上式中,ui表示第i个个体对应的隶属度;indexfitnessgbest(i)为第i个个体最佳适应度值的索引号;sizepop为种群规模;umax和umin分别表示最大隶属度和最小隶属度;uij表示在j维探索空间中第i个个体所对应的隶属度;d表示探索空间维度;

确定搜索步长:

其中,aij表示为第i个个体在j维搜索空间的搜索步长,δij为高斯隶属函数的参数,参数δij为:

δij=h(t)*|zbest-5*rands(1,10)|(12)

其中,zbest表示为全局最佳;rands(1,10)表示为[1,10]之间的随机实数;h(t)表示第t次迭代的权重函数值,h(t)受最大迭代次数和当前迭代次数的影响,maxgen表示最大迭代次数。

所述步骤s5.1中搜索方向的确定方法为:

依据个体最佳和全体最佳与当前个体相比较确定搜索方向是利己方向、利他方向还是预动方向:

其中,为利己方向,为利他方向,为预动方向;分别为中的最佳位置;为搜寻第i个个体的最佳位置,为第i个个体所在种群的历史最佳位置;

以利己方向、利他方向和预动方向的随机加权几何平均数为标准确定搜索方向,计算公式如下:

其中,w为惯性权值,均为[0,1]内均匀分布的常数;sign()表示符号函数,搜索方向取值为{-1,0,1},表示个体i沿着j维搜索空间的正方向前进;表示个体i沿着j维搜索空间的负方向前进,表示表示个体i在第j维坐标下保持静止;t为当前迭代次数,wmax为权重最大值,wmin为权重最小值,maxgen表示最大迭代次数。

所述根据搜索步长和搜索方向进行位置更新的方法为:

计算得到个体探索的搜索方向和搜索步长后,对个体的位置进行更新,位置更新公式为:

其中,搜索方向的取值为{-1,0,1},aij(t)表示j维搜索空间的搜索步长,δxij(t)表示个体i第t次迭代的位置,δxij(t 1)表示个体i第t 1次迭代的位置;

根据位置更新,找到这个个体,再将这个个体的位置信息代入适应度函数中,计算它的适应度值,再通过与原来个体的最优个体和群体的适应度值进行比较,将最小的那个赋值给新的个体最优和群体最优,完成个体最优和群体最优的更新。

所述步骤s5.2的实现方法为:计算当前个体的适应度值与全局最佳适应度值的差值:

df=fitness(i)-fitnesszbest;

其中,fitness(i)为当前个体i的适应度值,fitnesszbest为全局最佳适应度值;

如果差值df<0,则以概率1接受新的位置,否则以概率exp(-df/t)接受新的位置,然后更新个体最优位置gbest和群体最优位置zbest。

所述步骤六的实现方法为:

步骤s61:根据步骤五得到的连接权值和阈值,并将连接权值和阈值分别赋给bp神经网络,得到训练好的bp神经网络模型;

步骤s62:bp神经网络训练及预测:调用bp神经网络本身自带的训练函数利用测试样本训练bp神经网络模型,对bp神经网络模型进行仿真预测。

所述bp神经网络的连接权值和阈值随机初始化为[-0.5,0.5]区间的随机数;根据训练数据集中训练样本中的输入层节点数n、隐含层节点数l和输出层节点数m,初始化输入层和隐含层、隐含层和输出层神经元之间的连接权值ωsv和ωvk,初始化隐含层阈值av和输出层阈值bk,同时确定学习速率和神经元激励函数;

所述步骤五中对bp神经网络的连接权值和阈值进行优化的方法为:

根据输入向量x,输入层和隐含层间连接权值ωsv以及隐含层阈值av,计算隐含层输出值:

式中,l为隐含层节点数,xs表示第s个输入个体的输入值,av表示第v个隐含层节点的阈值;f为激励函数,本发明所选激励函数为:

根据隐含层的输出值h和权值ωtk、输出层阈值b,计算bp神经网络预测输出:

其中,bk表示第k个输出层节点数的阈值;

根据bp神经网络预测第k个输出层节点的预测输出ok和期望输出yk,计算网络预测误差:

ek=yk-okk=1,2,...,m;

更新连接权值:根据误差ek更新网络连接权值ωsv和ωvk:

更新阈值:根据误差ek更新网络节点阈值av和bk:

bk=bk ekk=1,2,...,m。

本发明的有益效果:为了弥补bp神经网络的局限性,本发明将人群搜索算法(soa)应用到bp神经网络中,但是soa算法在迭代寻优的过程中易陷入局部最优和出现收敛缓慢等问题,因此又将模拟退火算法(sa)引入到人群搜索算法(soa)中,提高其全局搜索能力,并将经模拟退火算法优化的人群搜索算法(sa_soa)与bp神经网络相结合进行网络安全态势预测,提高基于bp神经网络进行网络安全态势预测的效率和准确性。本发明将模拟退火算法引入人群搜索算法中并与bp神经网络相结合,解决了bp神经网络权值和阈值难以确定和soa算法在搜索后期收敛速度缓慢并易陷入局部最优等问题,增强了人群搜索算法的全局寻优能力,加快了算法的收敛速度,提高了网络安全态势预测的准确性。对比实验结果表明,本发明比soa优化bp神经网络、ga优化bp神经网络以及pso算法优化bp神经网络的预测结果更为准确,具有较高的优越性和有效性;且准确性更好,稳定性更强,收敛速度更快。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的流程图。

图2为本发明样本数据归一化的示意图。

图3为本发明与soa优化bp神经网络的网络态势预测值对比图。

图4为本发明与不同算法得到的态势预测值对照图。

图5为soa优化算法中最优个体适应度值变化图。

图6为本发明中最优适应度值变化图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,一种基于sa_soa_bp神经网络的网络安全态势预测方法,其步骤如下:

步骤一:采集网络安全数据信息为实验数据,对实验数据进行预处理并分成训练数据集和测试数据集。

本发明的实验以《网络安全信息与动态周报》2015年第一期至2017年第七期所发布的网络安全数据信息为实验数据,它主要以感染病毒的主机数量、被篡改的网站总数、被植入后门网站总数、境内网站的仿冒页面数量和新增信息安全漏洞数量为评价指标,从上述的五个方面能够比较全面的反应现代网络安全的状况,由此可以作为评价每周的网络安全基本态势的指标。为了实验方便,将五个安全等级转化为数字等级,如表1所示。

表1网络安全态势值转换表

根据神经网络的特性,训练样本数量过多,将会增加训练的时间,数量过少将会降低预测的准确度,所以本发明选择101条数据为训练样本,10条为测试样本。为了提高实验的准确度和收敛速度,首先对数据进行了预处理即归一化的操作。数据归一化的方法一般有两种,一种是归一化为[0,1],一种是归一化为[-1,1]。本发明用到了后一种方法即归一化为[-1,1],归一化公式如公式(1),归一化后的结果如图2所示。

其中,y表示归一化后的值,xi表示第i个样本数据,xmin表示样本数据中的最小值,xmax表示样本数据中的最大值。

bp神经网络预测前首先要训练网络,此时用训练数据集进行训练,通过训练使网络具有联想记忆和预测能力。训练数据集中的训练样本是用于计算最优适应度值,最优适应度值是以训练样本训练bp神经网络得到的预测值与真实值之间的误差绝对值和作为个体适应度值的。测试数据集中的测试样本是用于对已经具有预测能力的bp神经网络进行测试,产生预测值。

步骤二:根据实验数据中的输入数量和输出数量利用试凑法确定bp神经网络的网络结构,并利用训练数据集中的训练样本初始化bp神经网络的连接权值和阈值。

bp(backpropagation)神经网络是1986年由rumellhart和mccelland为首的科学小组提出。由于bp神经网络结构简单,可以调整的参数多,训练的算法多,鲁棒性和自我学习能力强,并且可操作性好,因此它是目前应用最广泛的神经网络预测模型之一。现在大多数的神经网络模型都是以bp神经网络结构为基础。bp神经网络主要是通过反向传播算法反复调整网络的权值和阈值,直到得到最优的权值和阈值,再经过不断地学习和训练,使输出数据与真实值尽量地一致,最后当输出的误差平方和小于指定的误差时,训练完成,保存最优连接权值和阈值。但是它的初始连接权值和阈值难以准确获得并且迭代次数多、运算速度低,不能保证收敛到全局极值点。针对bp神经网络的这些局限性,大多数的研究都是通过智能优化算法寻找最优权值和阈值来弥补bp神经网络的不足,比如采用粒子群算法(pso)优化bp神经网络,采用遗传算法(ga)优化bp神经网络等。针对bp神经网络的这些局限性,大多数的研究都是通过智能优化算法寻找最优权值和阈值来弥补bp神经网络的不足,比如采用粒子群算法(pso)优化bp神经网络(见文献[c.li,x.liu.animprovedpso-bpneuralnetworkanditsapplicationtoearthquakeprediction[c].proceedingsofthechinesecontrolanddecisionconference(ccdc),yinchuan:ieee,2016,3434-3438.]),采用遗传算法(ga)优化bp神经网络(见文献[s.ding,c.su.applicationofoptimizingbpneuralnetworksalgorithmbasedongeneticalgorithm[c].proceedingsofthe29thchinesecontrolconference,beijing:ieee,2010,2425-2428])等。

由步骤一所知网络安全态势共有五大评价指标,最后要化为一个安全等级,所以此实验有五个输入参数,一个输出参数,再根据公式(2)~(4)确定隐含层节点个数。

l<n-1(2)

l=log2n(4)

其中,n为输入层的节点数;l为隐含层的节点数;m为输出层节点数;a为0~10之间的常数。根据试凑法确定本发明实验的隐含层节点数为8,最终确定本实验的网络结构为5-8-1。

以《网络安全信息与动态周报》所发布的网络安全数据信息,感染病毒的主机数量、被篡改的网站总数、被植入后门网站总数、境内网站的仿冒页面数量和新增信息安全漏洞数量为输入,以态势值为输出,再根据试凑法确定隐含层数量,以此确定bp神经网络的网络结构。

bp神经网络的权值和阈值一般通过随机初始化为[-0.5,0.5]区间的随机数。根据系统输入输出序列(x,y)确定网络结构的输入层节点数n、隐含层节点数l、输出层节点数m。然后初始化输入层、隐含层和输出层神经元之间的连接权值ωsv和ωvk,初始化隐含层阈值a和输出层阈值b,同时确定学习速率和神经元激励函数。初始化是根据训练样本数据中的个体x的输入层节点数、隐含层节点数和输出层节点数确定的。

隐含层输出计算。根据输入向量x,输入层和隐含层间连接权值ωsv以及隐含层阈值av,计算隐含层输出值hv:

式中,l为隐含层节点数,xs表示第s个输入个体的输入值,av表示第v个隐含层节点的阈值;f为激励函数,本发明所选激励函数为:

计算输出层的输出:根据隐含层的输出值h和权值ωvk、输出层阈值b,计算bp神经网络预测输出:

其中,bk为第k个输出层节点数的阈值。

步骤三:将模拟退火算法引入人群搜索算法中得到改进的人群搜索算法,初始化改进的人群搜索算法中的种群个体、种群规模、最大迭代次数、空间维数、最小最大隶属度、权重的最小值与最大值。

具体实例中,一般是直接赋值一个数值。种群规模:sizepop=30,最大迭代次数:maxgen=100;空间维度:v=57;最大隶属度:umax=0.9500;最小隶属度umin=0.0111;最大权重值:wmax=0.9;最小权重值:wmin=0.1。

步骤四:初始化模拟退火算法的初始温度、降温速率、突跳概率。

模拟退火算法(simulatedannealing,简称sa)最早是由metropolis在1953年提出,并由kirkpatrick等成功引入组合优化领域。sa算法主要是模拟高温金属降温的热力学过程,通过加温、等温和冷却这三个过程,将系统的能量看成优化问题的目标函数,其能量随着温度的降低也随之下降,当温度缓缓降温并趋于零时,此时既是能量最低状态也是得到相对全局最优解的时刻。sa算法具有较强的鲁棒性、隐含并行性、广泛的适应性,以及全局搜索能力,它主要利用metropolis算法并适当控制温度的下降过程,以一定的概率接受了劣质解,跳出陷入局部极值的陷阱,提高了算法的全局收敛性。

人群搜索算法(soa)具有收敛速度快和精度高等优点,但同时也易陷入局部最优,即出现“早熟”现象,原因是人群搜索算法(soa)在搜索后期,当搜索步长趋于零时,仍不能搜索到全局最优解。为了解决这一问题,本发明将模拟退火算法(sa)引入到人群搜索算法(soa)中,sa算法在搜索寻优过程中会以一定的概率接受劣质解,即sa算法既能接受优解又能接受恶解,从此避免了soa算法陷入局部最优。将模拟退火算法引入人群搜索算法中,解决人群搜索算法在搜索后期易陷入局部最优和收敛缓慢的问题。

1)初始化温度

在模拟退火算法中,初始化温度的确定很关键,它将会直接影响算法的初始性能,若确定不好,最终可能导致无用的搜索和增加搜索时间。初始温度确定如下:

上式中,fitnesszbest表示全局最佳适应度值。首先通过人群搜索算法寻找到最优个体,再通过适应度函数计算该个体的适应度值,将当前个体的适应度值与原来全局最佳适应度值进行比较,全局最佳适应度值在开始会赋予初始值。α为初始接受概率,一般取值为[0.2,0.5]。初始化温度:t=-fitnesszbest/log(0.2)。

2)退火速率的控制

tk 1=γtk,k≥0,0≤γ≤1(6)

上式中,γ为降温的速率,k为迭代次数。tk 1和tk分别表示第k 1和k次迭代的退火速率。

3)突跳概率的确定

当退火温度确定时,当前最佳适应度值就以突跳概率代替以前个体最佳适应度值和全局最佳适应度值,则突跳概率的确定公式如下:

df=fitness(i)-fitnesszbest(8)

上式中,fitness(i)为当前个体i的适应度值,fitnesszbest为全局最佳适应度值,df表示当前个体的适应度值与全局最佳适应度值的差值;t表示退火温度;pi表示每个个体被选择的概率。如果差值df<0,则以概率1接受新解;否则以概率exp(-df/t)接受新解。从上式可以看出,在一定程度上模拟退火算法可以帮助人群搜索算法避免陷入局部最优值,最后得到最优解。根据种群规模sizepop,初始化突跳概率:tfit=zeros(sizepop,1)。

步骤五:采用改进的人群搜索算法计算个体的适应度值,找出全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值,以训练数据集经过训练产生的预测值和真实值之间的误差的绝对值之和为适应度函数对bp神经网络的连接权值和阈值进行优化。

本发明最重要的是适应度函数的设计,在此实验里是以用训练数据训练bp神经网络得到的预测值与真实值之间的误差绝对值和作为个体适应度值。

适应度函数是一个函数,其中涉及了一个误差计算公式。根据网络预测第k个输出层节点数的输出ok和期望输出yk,计算网络预测误差ek:

ek=yk-okk=1,2,...,m。

首先通过随机初始化得到初始的全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值,再通过改进的人群搜索算法找到的个体,计算它的全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值,再与原来的进行比较,进行更新它们的值。

初始化种群个体:pop(i,:)=5*rands(1,numsum);

在计算全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值时都会用到pop(i,:)函数,numsum为编码长度,rands(1,numsum)表示一行numsum列的(0,1)之间的随机数,再扩大5倍,赋值给pop(i,:)。

步骤六:根据步骤五优化后的bp神经网络的连接权值和阈值,将测试数据集中测试样本代入bp神经网络中进行建模,得到网络安全态势的预测值。

步骤s6.1:确定改进的人群搜索算法的搜索方向、搜索步长以及高斯函数的参数δij,根据计算得到的搜索步长和方向进行位置更新,更新个体最优和群体最优以及它们的适应度值。

确定搜索策略即搜索方向的确定,根据公式(17)计算可得;确定高斯函数的参数δij,根据公式(12)~(13)计算可得;确定搜索步长的大小,根据公式(11)计算可得;根据计算得到的步长和方向按公式(19)更新位置,更新个体最优和群体最优以及它们的适应度值。

人群搜索算法(seekeroptimizationalgorithm,简称soa)是一种较新的启发式随机搜索算法。它是对人的随机搜索行为进行分析,依靠人类的社会经验,同时结合进化的思想,以搜索最优位置为核心,通过利己、利他、预动和不确定这四种搜索策略行为对其进行建模,确定人群搜索的方向和步长,然后不断地更新位置,获得最优解。soa算法的优点在于它简单、概念明确、清晰、易于理解、收敛速度快、收敛精度高。其计算步骤主要包括:

(1)搜索步长的确定

在确定步长时,需要对个体最优适应度值进行降序排列,并给每个个体赋予索引号作为模糊推理的输入,本发明是使用高斯线性隶属函数来表示搜索步长的模糊变量的输出,高斯线性隶属函数可以很好的将第i个个体最佳适应度值线性的映射到最小和最大隶属度之间,映射公式如下:

uij=ui (1-ui)*randj=1,2,3,...d(10)

上式中,ui表示第i个个体对应的隶属度;indexfitnessgbest(i)为第i个个体最佳适应度值的索引号;sizepop=30为种群规模;umax=0.95和umin=0.0111分别表示最大和最小函数隶属度;uij表示为在j维探索空间中第i个个体所对应的隶属度;d表示探索空间维度。根据公式(9)和(10)得到最佳适应度值个体对应的隶属度,再根据公式(11)确定步长:

上式中,aij表示为第i个个体在j维搜索空间的搜索步长,δij为高斯隶属函数的参数,其值由下列公式确定:

δij=h(t)*|zbest-5*rands(1,10)|(12)

其中,zbest表示为全局最佳;rands(1,10)表示为[1,10]之间的随机实数;h(t)表示第t次迭代的权重函数值,在迭代的过程中是不断的变化,它受最大迭代次数和当前迭代次数的影响,其中,maxgen=100。如果当前新个体适应度值<全局最佳适应度值,全局最佳zbest,全局最佳zbest是通过pop(i:)函数得到,此函数就是初始化种群的一个函数。pop(i,:)=5*rands(1,numsum)。

(2)搜索方向的确定

在确定搜索方向时,依据个体最佳和全体最佳与当前个体相比较确定搜索方向是利己、利他还是预动方向。

式中,为利己方向、为利他方向,为预动方向;分别为中的最佳位置;为第i个搜寻个体的最佳位置,为第i个搜寻个体所在种群的历史最佳位置;sign()为符号函数;为已知区间[0,1]内均匀随机选择的实数。

本发明是以三个方向的随机加权几何平均数为标准确定搜索方向,计算公式如下:

在上式中,w为惯性权值,均为[0,1]内均匀分布的常数。和sign()表示符号函数,所以搜索方向取值为{-1,0,1},表示个体i沿着j维坐标的正方向前进;表示个体i沿着j维坐标的负方向前进,表示表示个体i在第j维坐标下保持静止。t为当前迭代次数,取值范围为[2,maxgen]之间的整数,wmax=0.9为权重最大值,wmin=0.1为权重最小值。

(3)位置更新

计算得到个体探索的方向和步长之后,要对个体的位置进行更新。位置更新公式如下:

其中,搜索方向的取值为{-1,0,1}。aij(t)表示j维搜索空间的搜索步长。δxij(t)表示个体i第t次迭代的位置。δxij(t 1)表示个体i第t 1次迭代的位置。

位置更新就是更新pop(i,:)的值的。新的位置等于旧的位置加上方向乘以步长,更新位置:pop(i,:)=pop(i,:) di(i,:).*buchang(i,:),其中,di(i,:)表示搜索方向,buchang(i,:)表示搜索步长。

根据位置更新,找到这个个体,再将这个个体的位置信息代入适应度函数fitness(i)=fun(pop(i,:),inputnum,hiddennum,outputnum,net,inputn,outputn)中,计算它的适应度值,再通过与原来个体的最优的个体和群体的适应度值进行比较,将最小的那个赋值给新的个体最优和群体最优,完成个体最优和群体最优的更新。

步骤s6.2:根据metropolis准则,在全局最优适应度值的邻域内选择一个搜寻者,按公式(8)计算当前个体的适应度值与全局最佳适应度值的差值df。如果差值df<0,则以概率1接受新的位置,否则以概率exp(-df/t)接受新的位置,然后更新个体最优位置gbest和群体最优位置zbest。

metropolis准则就是公式(8),如果当前新个体适应度值小于以前个体最佳适应度值,则将当前个体位置赋值给当前个体最优的最值,再将当前个体适应度值赋值给个体最佳适应度值。

步骤s6.3:模拟退火算法的降温处理:根据公式(6)降温速率控制温度。

步骤s6.4:判断是否满足循环的终止条件,即是否超过最大迭代次数和种群规模。如果没有,继续迭代寻优,跳转至步骤s6.1;否则进入步骤s6.5。

测试样本就是要代入经过测试样本训练好的bp神经网络进行预测的,得到预测值的。traingdm函数是bp神经网络中的训练函数,bp神经网络本身自带的函数。误差就是预测值减去真实值,更新权值和阈值是根据预测误差更新的。

权值更新:根据误差ek更新网络连接权值ωsv和ωvk:

更新阈值:根据误差ek更新网络节点阈值aj和bk:

bk=bk ekk=1,2,...,m

验证本发明应用sa_soa算法优化bp神经网络进行预测的精准性和优越性,采用了均方误差(mse)、平均相对误差(mape)和均方根误差(rmse)三个性能指标来衡量真实值与预测值之间的差异。

均方误差指标:

平均相对误差指标:

均方根误差指标:

上式中,xt和分别表示真实值和预测值,t表示测试样本序号,n=10表示共有十个测试样本数据。

采用soa算法直接优化bp神经网络进行态势预测,在本发明中采用sa_soa算法优化bp神经网络进行安全态势预测,图3给出了两种算法实验结果的对比。从图3可以看出,本发明sa_soa算法优化bp神经网络得到的预测值相比soa优化bp神经网络得到的预测值更接近真实值,与真实值之间的误差更小,并且从整体上来看本发明相对更稳定,曲线波动更小。

图4给出了基于粒子群算法(pso)、遗传算法(ga)、soa和本发明sa_soa算法优化bp神经网络进行预测的实验结果对比图,展示了各个优化算法的预测值与真实值之间的差异以及它们的态势预测趋势变化情况。从图4可以看到,相比其它智能优化算法,本发明基于sa_soa算法优化bp神经网络进行网络安全态势预测得到的预测值最接近真实值,其准确性更高、稳定性更好。

表2给出了pso、ga、soa及本发明sa_soa优化bp神经网络进行网络安全态势预测得到的十个测试值以及与真实值之间的绝对误差。从表2可以微观地说明基于模拟退火算法改进的soa_bp算法的误差更小、准确性更高。

表2预测数据分析表

表3分别计算了pso、ga、soa、本发明sa_soa优化bp神经网络进行网络安全态势预测得到的预测值与真实值之间的均方误差、平均相对误差和均方根误差。从表3可以宏观地看出本发明得到的预测值与真实值之间的均方误差、平均相对误差和均方根误差三个衡量指标都是最小,这进一步表明了本发明具有更高的精准性和有效性。

表3精准度对照表

算法收敛性分析:图5和图6分别给出了soa优化bp神经网络算法和本发明sa_soa优化bp神经网络算法在迭代寻优过程中最优个体适应度值的变化趋势。由于在实验中是以训练数据预测误差绝对值和作为个体适应度值,个体适应度值越小,说明该个体越优。因此个体最优适应度变化情况既可以反应算法的收敛情况,又可以反应训练数据集的训练过程。

从图5和图6中的最优个体适应度值的变化趋势可以看出sa_soa优化bp神经网络进行预测的效果要比soa优化bp神经网络的预测效果更好。特别是在搜索后期,sa_soa优化bp神经网络进行网络安全态势预测的收敛速度相对较快,当在第80次迭代时,sa_soa算法基本趋于最优解,而soa算法在将近第100次迭代时才趋于最优解。可见,不管是在预测的精度方面,还是在收敛速度方面,sa_soa优化bp神经网络进行网络安全态势预测有着相对较高的收敛精度和速度。

本发明利用人群搜索算法特有的利己、利他、预动和不确定推理四大行为特征确定搜索策略,找到最佳适应度个体,获取最优权值和阈值,然后再对bp神经网络的随机初始阈值和权值进行赋值,经过神经网络训练后得到预测值。针对人群搜索算法在搜索后期易陷入局部最优和收敛缓慢等问题,又将模拟退火算法引入人群搜索算法,根据metropolis准则以一定的概率接受恶解,避免了算法陷入局部最优的陷阱,提高了该算法的全局搜索能力。与其它基于改进bp神经网络的预测算法进行对比的实验表明,本发明准确性更好,稳定性更强,收敛速度更快。

本发明一方面证明人群搜索算法优化bp神经网络在网络安全态势预测领域的可行性和有效性,另一方面提高了网络安全态势预测的准确性和收敛性。本发明使用人群搜索算法去优化bp神经网络的权值和阈值,提高了bp神经网络的性能,并将其应用到网络安全态势预测领域,同时为了克服soa算法存在搜索后期易陷入局部最优即“早熟”现象及收敛缓慢的问题和提高预测的精准度和收敛速度,又将模拟退火算法引入人群搜索算法中,较好地克服了人群搜索算法的局限性,并进一步提高了网络安全态势预测的准确性和收敛速度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。


技术特征:

1.一种基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,其步骤如下:

步骤一:采集网络安全数据信息为实验数据,对实验数据进行预处理并分成训练数据集和测试数据集;

步骤二:根据实验数据中的输入数量和输出数量利用试凑法确定bp神经网络的网络结构,并利用训练数据集中的训练样本初始化bp神经网络的连接权值和阈值;

步骤三:将模拟退火算法引入人群搜索算法中得到改进的人群搜索算法,初始化改进的人群搜索算法中的种群个体、种群规模、最大迭代次数、空间维数、最小最大隶属度、权重的最小值与最大值;

步骤四:初始化模拟退火算法的初始温度、降温速率、突跳概率;

步骤五:采用改进的人群搜索算法找到最优个体,以训练数据集经过训练产生的预测值和真实值之间的误差的绝对值之和为适应度函数,通过适应度函数计算个体的适应度值,找出全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值,将得到的最优个体对bp神经网络的连接权值和阈值进行优化;

步骤六:根据步骤五得到的bp神经网络优化后的连接权值和阈值,将测试数据集中测试样本代入bp神经网络中进行建模,得到网络安全态势的预测值。

2.根据权利要求1所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤一中的实验数据为《网络安全信息与动态周报》所发布的网络安全数据,对实验数据进行了预处理操作,将数据归一化为[-1,1],即:

其中,y表示归一化后的值,x表示样本数据,xmin表示样本数据中的最小值,xmax表示样本数据中的最大值;

所述步骤二中以预处理后的实验数据中的感染病毒的主机数量、被篡改的网站总数、被植入后门网站总数、境内网站的仿冒页面数量和新增信息安全漏洞数量为bp神经网络的输入,以态势值为bp神经网络的输出,确定隐含层节点个数:

l<n-1(2)

l=log2n(4)

其中,n为输入层的节点数;l为隐含层的节点数;m为输出层节点数;a为0~10之间的常数;根据试凑法确定隐含层节点数l,确定bp神经网络的网络结构。

3.根据权利要求1或2所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤四中模拟退火算法的初始温度确定为:

其中,fitnesszbest表示全局最佳适应度值,α为初始接受概率;

降温速率为:tt 1=γtt,t≥0,0≤γ≤1(6)

其中,γ为降温的速率,t为迭代次数;tt 1和tt分别表示第t 1和t次迭代的降温速率;

当退火温度确定时,当前最佳适应度值以突跳概率代替以前个体最佳适应度值和全局最佳适应度值,则突跳概率的确定为:

df=fitness(i)-fitnesszbest(8)

上式中,fitness(i)为当前个体i的适应度值,fitnesszbest为全局最佳适应度值,df表示当前个体的适应度值与全局最佳适应度值的差值;t表示退火温度;pi表示个体i被选择的突跳概率;如果差值df<0,则以概率1接受新解;否则以概率exp(-df/t)接受新解。

4.根据权利要求3所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤五中改进的人群搜索算法的实现方法为:

步骤s5.1:确定改进的人群搜索算法的搜索方向和搜索步长,根据计算得到的搜索步长和搜索方向进行位置更新,更新个体最优和群体最优以及它们的适应度值;

步骤s5.2:在全局最优适应度值的邻域内选择一个搜寻者,计算当前个体的适应度值与全局最佳适应度值,如果当前新个体适应度值小于以前个体最佳适应度值,则将当前个体位置赋值给当前个体最优的最值,再将当前个体适应度值赋值给个体最佳适应度值;

步骤s5.3:模拟退火算法的降温处理:根据降温速率控制温度;

步骤s5.4:判断是否满足循环的终止条件,即是否超过最大迭代次数和种群规模。如果没有,继续迭代寻优,跳转至步骤5.1。

5.根据权利要求4所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤s5.1中确定搜索步长的方法为:

对个体最优适应度值进行降序排列,并给每个个体赋予索引号作为模糊推理的输入,使用高斯线性隶属函数来表示搜索步长的模糊变量的输出,高斯线性隶属函数将第i个个体最佳适应度值线性的映射到最小隶属度和最大隶属度之间,映射公式如下:

uij=ui (1-ui)*randj=1,2,3,...d(10)

上式中,ui表示第i个个体对应的隶属度;indexfitnessgbest(i)为第i个个体最佳适应度值的索引号;sizepop为种群规模;umax和umin分别表示最大隶属度和最小隶属度;uij表示在j维探索空间中第i个个体所对应的隶属度;d表示探索空间维度;

确定搜索步长:

其中,aij表示为第i个个体在j维搜索空间的搜索步长,δij为高斯隶属函数的参数,参数δij为:

δij=h(t)*|zbest-5*rands(1,10)|(12)

其中,zbest表示为全局最佳;rands(1,10)表示为[1,10]之间的随机实数;h(t)表示第t次迭代的权重函数值,h(t)受最大迭代次数和当前迭代次数的影响,maxgen表示最大迭代次数。

6.根据权利要求4或5所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤s5.1中搜索方向的确定方法为:

依据个体最佳和全体最佳与当前个体相比较确定搜索方向是利己方向、利他方向还是预动方向:

其中,为利己方向,为利他方向,为预动方向;分别为中的最佳位置;为搜寻第i个个体的最佳位置,为第i个个体所在种群的历史最佳位置;

以利己方向、利他方向和预动方向的随机加权几何平均数为标准确定搜索方向,计算公式如下:

其中,w为惯性权值,均为[0,1]内均匀分布的常数;sign()表示符号函数,搜索方向取值为{-1,0,1},表示个体i沿着j维搜索空间的正方向前进;表示个体i沿着j维搜索空间的负方向前进,表示表示个体i在第j维坐标下保持静止;t为当前迭代次数,wmax为权重最大值,wmin为权重最小值,maxgen表示最大迭代次数。

7.根据权利要求6所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述根据搜索步长和搜索方向进行位置更新的方法为:

计算得到个体探索的搜索方向和搜索步长后,对个体的位置进行更新,位置更新公式为:

其中,搜索方向的取值为{-1,0,1},aij(t)表示j维搜索空间的搜索步长,δxij(t)表示个体i第t次迭代的位置,δxij(t 1)表示个体i第t 1次迭代的位置;

根据位置更新,找到这个个体,再将这个个体的位置信息代入适应度函数中,计算它的适应度值,再通过与原来个体的最优个体和群体的适应度值进行比较,将最小的那个赋值给新的个体最优和群体最优,完成个体最优和群体最优的更新。

8.根据权利要求4或7所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤s5.2的实现方法为:计算当前个体的适应度值与全局最佳适应度值的差值:

df=fitness(i)-fitnesszbest;

其中,fitness(i)为当前个体i的适应度值,fitnesszbest为全局最佳适应度值;

如果差值df<0,则以概率1接受新的位置,否则以概率exp(-df/t)接受新的位置,然后更新个体最优位置gbest和群体最优位置zbest。

9.根据权利要求8所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述步骤六的实现方法为:

步骤s61:根据步骤五得到的连接权值和阈值,并将连接权值和阈值分别赋给bp神经网络,得到训练好的bp神经网络模型;

步骤s62:bp神经网络训练及预测:调用bp神经网络本身自带的训练函数利用测试样本训练bp神经网络模型,对bp神经网络模型进行仿真预测。

10.根据权利要求1或9所述的基于sa_soa_bp神经网络的网络安全态势预测方法,其特征在于,所述bp神经网络的连接权值和阈值随机初始化为[-0.5,0.5]区间的随机数;根据训练数据集中训练样本中的输入层节点数n、隐含层节点数l和输出层节点数m,初始化输入层和隐含层、隐含层和输出层神经元之间的连接权值ωsv和ωvk,初始化隐含层阈值av和输出层阈值bk,同时确定学习速率和神经元激励函数;

所述步骤五中对bp神经网络的连接权值和阈值进行优化的方法为:

根据输入向量x,输入层和隐含层间连接权值ωsv以及隐含层阈值av,计算隐含层输出值:

式中,l为隐含层节点数,xs表示第s个输入个体的输入值,av表示第v个隐含层节点的阈值;f为激励函数,本发明所选激励函数为:

根据隐含层的输出值h和权值ωtk、输出层阈值b,计算bp神经网络预测输出:

其中,bk表示第k个输出层节点数的阈值;

根据bp神经网络预测第k个输出层节点的预测输出ok和期望输出yk,计算网络预测误差:

ek=yk-okk=1,2,...,m;

更新连接权值:根据误差ek更新网络连接权值ωsv和ωvk:

更新阈值:根据误差ek更新网络节点阈值av和bk:

bk=bk ekk=1,2,...,m。

技术总结
本发明提出了一种基于SA_SOA_BP神经网络的网络安全态势预测方法,其步骤如下:采集网络安全数据信息为实验数据进行预处理;根据实验数据中的输入数量和输出数量利用试凑法确定BP神经网络的网络结构;将模拟退火算法引入人群搜索算法中得到改进的人群搜索算法;初始化模拟退火算法,采用改进的人群搜索算法找到最优个体,并通过适应度函数计算个体的适应度值,对BP神经网络的连接权值和阈值进行优化;将测试样本代入BP神经网络中得到网络安全态势的预测值。本发明将模拟退火算法引入人群搜索算法,克服了人群搜索算法易陷入局部最优和收敛缓慢的问题,并利用改进的人群搜索算法在速度及全局搜索上的优势对BP神经网络进行优化改进。

技术研发人员:张然;刘敏;梁文静;张启坤;尹毅峰
受保护的技术使用者:郑州轻工业大学
技术研发日:2020.01.16
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-19289.html

最新回复(0)