作者简介:胡冠宇(1982-),男,博士研究生,讲师.研究方向:智能计算,网络安全.E-mail:huguanyu0708@163.com
提出了一种基于云群的高维差分进化算法(CPDE),并将其应用在网络安全态势预测领域.该算法所提出的云群和分布链概念增加了种群的多样性.算法中的入侵算子将获胜个体的分布植入给其他个体,使得在进化的过程中,个体的形态呈现多样性.协作算子在个体之间引入了合作机制并执行差分操作.局部搜索算子增加了算法的搜索精度.实验结果显示CPDE是一个有效的高维进化算法,它在优化网络安全态势预测模型中具有一定的优势.
A novel differential evolutionary algorithm based on could population (CPDE) is proposed to solve the network security situation prediction. The proposed concepts of cloud population and the distribution chain promote the diversity of the population. In this algorithm, first, the intrusion operator is employed to introduce the competition among the cloud populations, where the winners will implant their distribution into other cloud individuals. Then, cooperative operator is used to introduce the collaboration among the cloud individuals and perform the differential operation. Finally, the accuracy of the algorithm is improved using the local search operator. Experiment results show that the proposed CPDE is an efficient high-dimensional evolutionary algorithm and possesses certain advantages in optimizing the prediction model of the network security.
目前, 业界已经提出了很多改进的进化算法用于解决高维优化问题[1, 2, 3].文献[4, 5, 6]利用云模型提出了一些新的进化算法, 例如Zhang等[4]在2008年提出了基于云模型的进化算法(CBEA), 该算法利用正态云生成器生成种群, 并定义最优个体向量, 以最优向量中的个体为种子生成新的种群, 越优良的个体生成的种群越大.Dai等[5]在2007年引入了基于云模型的遗传算法CGA, CGA采用正态云模型中的Y条件正态云发生器完成交叉操作.Dai等[6]在2007年提出了云自适应遗传算法(CAGA).该算法以条件云发生器自适应调整交叉变异概率.以上这些算法都利用了云模型在统计学和模糊数学上的特点, 对传统的进化算法进行了改进, 得到了良好的效果, 为进化算法开辟了新的思路.但是这些算法在高维优化问题中容易陷入局部最优解.本文借鉴云模型提出了一种新的进化算法--基于云群的高维差分进化算法(以下简称CPDE).所提算法在高维优化中表现良好.该算法把利用云模型[7]生成的小规模种群当做云个体, 在群体层面操作进化算子.
CPDE包含入侵算子, 协作算子和局部搜索算子三种基本操作.入侵算子体现了种群之间的竞争, 保证了算法的多样性.协作算子采用差分操作[8, 9]体现了物种之间的合作, 保证了算法的启发性.局部算子保证了算法的精确性.CPDE具备了前述的三个必要特性, 具有很好的全局搜索能力, 在优化高维度多峰复杂函数时表现优异.因此, CPDE适用于解决网络安全态势预测这类高维复杂优化问题.
云模型是由李德毅[7]提出的一种在定性与定量知识之间的不确定转换模型, 可以用来描述模糊的不确定的信息.一个云模型有很多云滴构成, 每个云滴都是某个概念的一次具体实现.云的外观形态由三个参数决定:期望值(Expected value)Ex, 熵(Entropy)En和超熵(Hyper entropy)He, 其中期望Ex是云模型中最能代表定性概念的取值, 处于云的形心, 决定了云的位置.熵En代表了概念可被接受的范围, 决定了云的延展度.超熵He是熵的不确定性度量, 它反映了云的厚度, 即云滴的离散程度.某个定性概念的一维正态云如图1所示.
图1中的横轴代表概念的取值, 纵轴代表取值所对应的隶属度.
设I为论域U上的语言值, 映射CI(x):U→ [0, 1], 存在x∈ U, x→ CI(x), 则CI(x)在U上的分布称为I的隶属云, 当CI(x)满足正态分布时, 称为正态云模型, 记为C(Ex, En, He), 正态云模型可以由正态云发生器获得, 多维正态云模型的生成算法如下.
算法1:多维正态云生成算法
(1)确定云模型的云滴个数N和维度D;
(2)确定期望值(Ex1, Ex2, , et al., ExD);
(3)确定熵值(En1, En2, , et al., EnD);
(4)确定超熵值(He1, He2, , et al., HeD);
(5)进入循环:while I< N.
以(En1, En2, , et al., EnD)作为期望值, (He1, He2, , et al., HeD)作为标准差, 产生一个D维正态随机向量(En'1, En'2, , et al., En'D).
以(Ex1, Ex2, , et al., ExD)作为期望值, (En'1, En'2, , et al., En'D)作为标准差, 产生一个D维正态随机向量(xi1, xi2, , et al., xiD), i∈ [1, N].
计算其隶属的ui:
End while
CPDE将云模型生成的种群当做个体.在进化过程中, 云个体的形态可以根据环境做出相应的调整, 一个二维的正态云个体如图2所示.
图2描述了一个处于三维适应度景观中的二维云个体, 其形态由Ex、En、He以及构成云个体的解个数N共同决定.云个体本质上是一个围绕某个解生成的小种群.云个体是CPDE中的基本单元, 它们由不同的分布模型在解空间中采样而成, 所以云个体是由解构成的.我们扩展了正态云模型, 使用不同的分布产生云个体, 例如幂率分布, 柯西分布和泊松分布.不同的个体有不同的特点, 并且在搜索最优解时呈现了不同的特征.本文构造了如下云个体.
(1)正态分布云个体中的解x从正态分布取样:
式中:
设云个体中心点(分布的期望)为
正态分布云个体大多数的解都集中在均值周围, 远离中心的解会越来越稀疏.正态分布云个体在探索和开采性能上比较均衡.
(2)柯西分布云个体中的解从柯西分布取样:
柯西分布没有均值和方差,
(3)泊松分布云个体中的解是从泊松分布取样的:
泊松分布
(4)幂律分布云个体中的解从幂律分布取样:
幂律分布表现了一种很强的不平等性, 因此幂律分布具有更好的探索能力.
对上述云个体的特性可以总结为:正态分布云个体非常普通, 大多数的解都集中在中心点周围.越远离中心的位置被搜索的概率就越低.幂率分布云个体极端且不平等, 绝大多数的解都分散在中心点的周围, 呈现出良好的局部搜索能力.柯西分布云个体没有期望和方差, 它有一个良好的全局搜索能力.泊松分布云个体具有更强的随机性, 所以它们有很好的跳出局部最优解的能力.这些云个体的二维形态如图3所示.
云个体最初是由一种分布生成的, 这时它就属于该分布对应的云群(云群是指若干相同分布特性的云个体构成的种群).随着进化的深入, 云个体也可以由多种不同的分布共同生成, 我们赋予云群一个描述每种分布所占比例的分布链, 分布链的长度等于分布的种类数
式中:P表示云个体中的解服从某个分布的概率, P的上标表示分布的种类, 下标表示云群的编号, 第
随着进化的深入, 分布链也会发生变化, 每种分布的比例也会此消彼长, 按分布链生成的云个体会呈现多样化, 称之为多态的混合云个体.需要注意的是, 无论云个体最终由多少种分布构成, 它属于哪个云群是在初始时就确定了的.
多态的云个体使得种群具备多重特性, 并且增加了种群的多样性, 使得基于多态云个体的进化算法可以很大程度上避免个体早熟和种群进化的停滞.
分布链的想法来源于自然界中个体的基因链, 基因链生成生物体, 分布链构成云个体; 在进化的过程中, 基因链会发生改变, 导致生物体具备某个特性, 从而可以适应环境的变化.在接下来的进化操作算子中, 分布链也会发生变化.
入侵算子引入了竞争机制, 如果某个云个体找到了全局最优解, 那么它所属的云群就会将自己的分布扩散给其他云群, 扩散的程度取决于被入侵云群获得的惩罚度, 定义惩罚度为:
式中:
为了保证分布比例总和小于1, 新的分布链还要做归一化处理:
被入侵后的云群分布链不再是只有一种分布存在, 经过多轮的入侵博弈, 云群中的云个体越来越多样化, 最终云个体会变成一种混合分布形式.例如, 当分布的种类为4个时, 分布链的长度n=4, 设p1代表正态分布的云群; p2代表幂律分布的云群; p3代表柯西分布的云群; p4代表泊松分布的云群.那么4种云群的初始分布链分别为:
假设在第一轮时, 云群1中的云个体找到了全局最优值1, 其他三种云群找到的本群中的最优值分别为0.4, 0.7, 0.5, 设
其分布链更新为:
可以看出第4个云群分布链中的正态分布增长了0.1786, 而自己原有分布减少了0.1786, 当按照此分布链生成云个体时, 其内部的解分布也会有17.86%是正态分布, 而余下的82.14%则是泊松分布.当运行到第
图4描述了4种具备不同分布链的混合云个体, 其中图4(a)的分布链为
协作算子是一种变形的差分进化操作, 新的云个体期望等于旧期望与四种差值之和, 这4种差值分别是:① 云个体期望与云个体内部最优解的差值; ② 云个体期望与本种类云群最优解的差值; ③ 云个体期望与本代全局最优解的差值; ④ 任意两个云个体期望差值.假设在
如果全局最优解在某个云个体内部, 那么这个云个体将不执行公式(11), 而执行公式(12):
公式(12)表示包含全局最优解的云个体不执行协作操作, 其新的期望将直接等于全局最优解.协作操作的细节如图5所示.图5描述了期望的更新步骤(从
实验结果表明, 带有入侵和协作算子的CPDE算法具有良好的全局搜索能力, 即使在高维空间搜索时, 也能很快收敛到全局最优解附近, 但是由于云个体在小范围解空间内的结构松散, 并且云个体的解内部没有进化机制, 所以算法缺少很好的局部搜索能力.
本文提出了两种手段改善搜索精度, 一种是缩小最优解附近的云个体的熵, 使其结构更加紧密.另一种是让最优解执行局部搜索算法, 例如梯度下降算法, 单纯形优化算法, 粒子群算法和CMA-ES(Covariance matrix adaptation evolution strategy)[14], CMA-ES是一个有效的局部搜索算法, 它被认为是目前最先进的进化算法, CMA-ES是协方差矩阵的适应进化策略.
选择CMA-ES作为CPDE的局部搜索算子, 只有每轮的最优解才会执行CMA-ES去寻找更精确的解, 局部搜索算子的执行次数为:
在公式(13)中, I代表CPDE的运行代数, K是一个系数, K的值不应该太大也不应该太小, 大的
算法2:CPDE算法
(1)初始化输入:
确定进化代数G∈ N, 分布的种类数n∈ N, 云个体数目Cn∈ N;
初始化云个体参数;
解空间范围[Rmin, Rmax];
解的个数Sn∈ N;
熵的范围[Enmin, Enmax];
超熵的范围[Hemin, Hemax];
种群期望Ex∈ [Rmin, Rmax];
初始分布链L;
(2)根据初始参数产生云个体;
初始入侵操作的缩小因子a∈ [0, 1];
初始协作操作的扩大因子F1~F4∈ [0, 1];
初始局部搜索操作系数K∈ N;
(3)进入循环, WhileI≤ Gdo
1.计算每个云个体内部的解的适应度值;
2.找出全局最优解(gxbest);
3.找出每种云群的最优解(pxbest);
4.找出每个云个体中的最优解(xbest);
6.执行入侵操作;
6.计算每种云群的惩罚度, 更新云群分布链;
7.执行协作操作;
8.执行局部搜索操作;
9.用更新后期望和分布链产生新的云个体;
10.比较并更新全局解;
I=I+1))
满足条件结束循环, end While
(4)输出全局最优解.
整个算法的流程如图6所示.
实验使用了一些高维的标准测试函数测试CPDE在高维优化问题上的性能.测试的维度取值为[50, 100, 500, 1000]维, 测试结果为运行30次的平均值.目标函数如表1所示, 其中
为了测试CPDE在不同参数取值下的性能, 我们使用不同个体数目做测试。以Ackley函数为例, 图7表明了CPDE在不同个体数目和不同维度上的收敛性能, x轴代表函数的评价次数, y轴代表函数值, D代表维度, P代表个体数目。
图7阐述了随着维度的增加, 更多的个体数目将会获得更好的收敛性能.当维度为50时, 8个个体获得最好的收敛性能, 当维度为100时, 16个个体获得最好的收敛性能, 当维度是500时, 32个个体获得最好的收敛性能, 当维度是1000时, 32个个体获得最好的收敛性能, 其他函数的测试结果与图7相近, 不再赘述.
CPDE与其他算法在高维度上的比较结果如表3~表5所示.选择CMA-ES[14]算法, Standard Differential Evolutionary(SDE)[15]和Particle Swarm Optimization(PSO)[16]与CPDE算法比较.
测试实验运行30次, 结果取平均值.Dim表示维度, Mean Error表示搜索的平均精度值, FES代表平均函数评价次数.
表3~表5的结果显示CPDE的高维收敛性能优于传统算法.尤其是在某些难解函数中, CPDE的平均函数评价次数要低于其他算法, 甚至是在高达1000维时, 也能找到全局最优解.由于本文的目标主要是定位与解决网络安全态势预测问题, 所以并没有列出太多的标准测试函数.即使CPDE在个别测试函数中表现一般, 也并不影响它在实际工程中的应用.
网络安全态势是指对网络系统平台安全情况的整体描述[17].网络安全态势预测是网络安全感知技术中的重要环节[18], 通过准确预测网络安全态势值并预警, 网络管理员可以提前采取相应的防范措施, 真正做到主动防御.
网络安全态势的预测技术刚刚起步, 目前以神经网络预测模型为主.本文选取径向基神经网络(RBF)模型[19]作为预测模型, 利用CPDE算法优化RBF模型的参数, 然后再用优化完的预测模型预测网络安全态势.
本文收集了2014年度某个真实网络平台上的攻击数据, 采用层次化加权平均的方法[20]将这些数据整合成网络安全态势值, 并归一化, 得到如图8所示的态势值.
为了能够适合RBF神经网络模型的多维输入, 将图8所示的网络安全态势值通过设置滑动窗口的方法得到了362组样本, 每组样本中包含1个输入数据和1个输出数据(假定滑动窗口大小为k=3, 从收集到的网络安全态势的第1个值开始, 将前k个数值设为输入, 第k+1个数值设为输出, 然后依次移动窗口1个单位, 得到下一组样本).再将362组样本中的前262组作为训练数据, 后100组作为测试数据.
本文结合云模型和差分进化的优点, 提出了一种基于云群的差分进化算法(CPDE), 该算法有良好的高维优化能力和天然的并行性, 它能有效地在高维复杂函数的优化中找到全局最优解.云模型是一种模糊化的方法, 并能够很好地处理复杂的问题.所提出的云群和分布链的概念增加了种群的多样性, 有效地避免了算法早熟.最后, 通过网络安全态势预测的案例验证了算法的有效性和实用性.
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|