基于猴群算法优化的神经网络在入侵检测中的应用研究

2016-05-14 11:05吴春琼黄晓
网络空间安全 2016年6期
关键词:猴群神经元向量

吴春琼 黄晓

1 引言

网络安全是信息时代不可回避的重要课题,其中对入侵检测的研究一直是重点。网络安全状况千变万化,采用静态防御无法跟上危机处理节奏,因此对入侵检测的研究逐渐采用动态防御技术。通常以动态防御技术为主体,以静态防御技术为补充,建立一个相对完整、可靠的防御系统[1]。

2 入侵检测

一般的入侵检测分类标准有[2]数据来源、反映机制、体系结构、反映时间、检测机制、检测时效等。入侵分析的任务是在采集网络系统不同节点的行为数据的基础上,依赖各种入侵检测和分析技术、方法,用来甄别网络行为数据中潜在的入侵行为,达到防范与预处理的作用。入侵检测分析技术有多种,如模式匹配的入侵检测模型、基于神经网络的检测技术等。无论是哪一种方法,都是在数据挖掘与人工智能技术的发展上演变出来的。

入侵检测方法虽然很多,但是在各个方面都存在局限性。首先入侵检测的专家系统的数据来源是已知的入侵行为,虽然因此能够对已知的、现有的入侵行为做出准确、高效的判断与保护,但缺点也是显而易见的。这些重复的、历史的入侵行为数据很难应对网络上新出现的入侵手段或攻击行为。只有在新的入侵行为表现出迹象并造成攻击事实后,入侵检测系统才会捕捉这一入侵数据,用以完善自己的入侵行为数据库。在这个过程中入侵检测系统是一个自适应、自学习的过程,通过完善数据库、优化行为规则,来达到更高的检测效率与更准确的入侵检测判断。

3 BP神经网络

神经网络算法是最早的仿生模拟算法之一,自建立以来一直受到国内外学者的青睐。神经网络算法从生物脑神经信息传递模式得到灵感,把神经元当做一种可供信息数据传递的通道单位,用以获取信息、传递信息,适用于行为检测,尤其是一场检测方面。它具有学习能力,能够学习检测对象的一些行为特征、表现和该对象的一些信息资源,通过分析处理这些数据并利用神经网络通过计算方法[3]来实现这一功能,因此神经网络对提高入侵检测系统的学习与对未知攻击行为的识别能力有极大的帮助。

一个典型的人工神经元是模拟生物神经元来建立的,包括接受输入信息、加权与相应的神经元输出。

一个典型的人工神经网络结构图如图1人工神经网络所示。

BP(Back Propagation)神经网络由隐层、输出层和输入层组成。算法利用误差反向传播的方式训练神经网络,利用误差的逆向传播来调整网络的权值。

3.1 网络初始化

(1)设输入层的神经元有n个,这同时也是由输入层的神经元传导进的条件变量。

(2)设隐藏层中神经元有p个,输出层中神经元有q个。

(3)设x为神经元所需要的输入向量,定义为x=(x1,x2,x3,...,xn )。

(4)设hi为隐含层的输入向量,定义为hi =(hk1,hk2,hk3,...,hkp ),隐含层的输出向量ho定义为ho =(ho1,ho2,ho3,...,hop )。

(5)设yi为输出层的输入向量,定义为yi =(yi1,yi2,yi3,...,yip ),输出层的输出向量yo定义为yo =(yo1,yo2,yo3,...,yoq )。

(6)设do为系统的输出向量期望值,定义为do =(do1,do2,do3,...,doq )。

(7)设e为误差函数,定义为

e =■■(do(k)-yoo(k))2。 (公式1)

3.2 算法流程

(1)首先生成一个各层路径连接权值的随机值,取值范围为(-1,1),e为误差函数,?着为计算精度,M为最大学习次数。

(2)随机选择一个输入样本k,该样本对应的期望输出为:x(k)=(x1(k),x2(k),x3(k),…,xn(k)),do(k)=(d1(k),d2(k),d3(k),…,dq(k))。

(3)设wih为输入层与隐含层之间的连接权值,who为隐含层与输出层之间的连接权值,bh为隐含层中各个神经元之间的阈值,bo为输出层中各个神经元之间的阈值。则对应k=1,2,3,...,m个样本数据,其隐藏层中各神经元的输入、输出计算分别为:

(公式2)

(4)其中误差函数对输出层各个神经元的偏导数?啄o(k)计算过程为:

(公式3)

(5)根据?啄o(k)、who(k)、yoo(k)的结果分别计算误差函数对隐含层各个神经元的偏导数?啄h(k)的计算过程为:

(公式4)

(6)通过对比?啄o(k)、who(k)、hoh(k)计算出?驻who(k)=-?滋■=?滋?啄o(k)hoh(k)和w■■ =w■■+ ?浊?啄o(k)hoh(k)。路径的连接权值?驻wih(k)根据?啄h(k)、hih(k)予以修正,以确保算法的效率,修正过程为:

(公式5)

(公式6)

全局误差计算为: E =■■■(do(k)-yo(k))2

(公式7)

误差值是否超过预期值,是确定神经网络是否终止当前训练重新开始学习的参数。

在实际应用过程中,BP神经网络还是存在许多问题。最典型的表现为收敛速度、局部最优值、网络延时、不稳定、学习样本对后期新样本速度造成影响等问题。

尤其是BP神经网络的训练过程使用了最速下降法,学习是从某一个神经元节点开始,按照误差曲面的斜面逐步推进,直到满足误差精度值的要求。但是在误差曲面的维度空间里,存在无数局部极小点,由神经元节点推进的训练有可能因此陷入局部极小值,仅仅达到了局部最优解,这使得整个网络都不能达到全局优化。

这需要有一种补充算法,来使陷入局部最优解的训练脱离出来,重新推向全局最优解。猴群算法就是一种适合跳出局部最小点的仿生算法。

4 猴群算法

猴群算法是一种模拟猴群爬山的优化算法,是一种多群体智能算法,尤其适用于大规模多峰优化问题。它不受优化问题的维数影响,也与优化问题的可行域大小无关,具有运行速度快、精度高的特点。

猴群算法主要包括解的表示、初始化、攀爬过程、眺望过程和翻过程五个过程。

(1)定义猴群表示。设M为猴群的种群规模。在种群中随机选择的一个猴子i(i=1,2,3,……,M),该猴子的位置即为xi =(xi1 ,xi2,xi3,...,xim)。xij 代表猴子i在j维的实际位置,这个位置同时也表示最优化问题的解的一个决策向量。

(2)当初始化猴子位置的时候,基本猴群算法采用在求解空间内随机初始化。因为种群的初始化对算法的全局收敛和寻优效率都有重要影响。假设存在一个区域可以事先确定其中有包含潜在的最优解方案,在理想化的状态下,这个区域被定义为n维立方体,从数据立方体中随机采样。设有第j维空间,则优化方案在空间内存在一个上界xmin,j和一个下界xmax,j 。产生一个在区间[0,1]上的随机实数,如果它是可使用的则被提供作为猴子i的初始点,否则从n维立方体中重新采样,则可以表示为:xi,j = xmin,j + (xmax,j -xmin,j)*rand。rand为随机数产生方法。

(3)仿生算法一般是通过迭代计算来逼近最优解的过程,猴群算法的攀爬过程也可以看做是迭代的最优解逼近过程[4],在攀爬的过程中使猴子的位置从初始值逐步逼近能够解决目标函数的位置。假设信息在和目标函数相关联的梯度向量是可用的,如同时扰动随机逼近(SPSA)[5][6]这样的算法,它基于对目标函数的梯度值近似的原则,计算与比较只在当前位置的相邻两点之间进行,以此为移动目标,通过比较二者权重逐步来移动,它不依赖于梯度信息或者测量信息。整个攀爬过程步骤为:

1)产生随机向量?驻Xi = (?驻Xi1,?驻Xi2,?驻Xi3,...,?驻Xin),满足:

?驻Xij =a, with probability ■-a, with probability ■ (公式8)

其中| a |为攀爬过程的步长,步长值与待解问题的解空间大小成正比。

2)计算f 'ij(xi)= ■,j=1,2,3…,n。向量f 'i(xi)=(f 'i1(xi),f 'i2(xi),...,f 'in(xi))被称为目标函数在点xi处的伪梯度。

3)令yi = xij + a*sign(f 'ij(xi)),j=1,2,3…,n,且Y=(y1,y2,y3,...,yn)。

4)当Y在可解区域内,Xi =Y;反之Xi 的值不变。

重复以上4个步骤,直到达到迭代终止条件或迭代步长值不再变化。

(4)当猴群经过若干次攀爬之后,设每只猴子都能达到当前位置的最高峰,也就是达到了局部最优值[4]。为了突破局部最优值,每个猴子都眺望周围,寻找比当前位置更高的攀登点。如果更高位置的点存在,猴子从当前点跳到新的高点上。眺望的目的是寻找当前山峰之外的更高山峰,也就是寻找当前问题局部最优解之外的其他全局最优解的过程。眺望过程为:

1)在区间(xij-b,xij+b),j=1,2,3,...,n中随机产生一个实数yj,且Y=(y1,y2,y3,...,yn),其中b为猴子能够眺望的视野范围。视野范围的大小也和待解问题的解空间大小成正比,当优化问题的可行域大,则b的取值也大,反之则比较小。

2)如果Y是可用的,能满足约束条件,且有f(Y)>f(Xi),则Xi =Y。否则回到1)直到产生满足条件的Y。只替换函数值大于当前f(xi)的xi。

3)将Y视为初始位置,重复攀爬过程。

(5)翻过程是猴群算法最具特色的部分,其目的是帮助猴子开辟新的搜索空间,避免陷入局部最优解。解空间内的猴群都应试图进行翻过程操作,令每一只猴子标识当前自身所在位置为中心,令每一只猴子以该中心为支点,选定一个方向(或相反方向)翻到一个新的区域。

对于猴子i,翻过程步骤为:

1)设翻区间[c,d],其大小根据优化空间的解空间大小相关,优化问题可行域越大,[c,d]的区域也越大。在翻区间中产生一个随机的实数a。

2)令yj =xij + a(pj -xij),且pj = ■■xij,j=1,2,…,n,即所有猴子的位置中点。翻支点P表示为P = (p1,p2,p3,...,pn)。当a>0时,代表猴子翻空的方向与支点的指向方向同向,反之则代表猴子翻空的方向为支点指向方向的反方向。

3)如果Y=(y1,y2,y3,...,yn)是可用的,则Xi =Y,否则重复1)和2)直到产生可行的点Y。

猴群算法和遗传算法有相似之处,都是优化种群算法。重要的区别在于猴群攀爬的过程中采用SPSA方法代替普通的牛顿下山法,比遗传算法更适用于大维数优化问题。

5 猴群优化算法在BP神经网络中的应用

BP算法的本质是一种局部寻优算法,寻优存在明显的局部极值问题。而猴群算法在局部达到最优值的时候,能采用眺望与翻空的方式跳离局部最优值,所以适合作为BP算法的补充,主要帮助BP算法离开局部极值的困境。

用猴群算法控制BP神经网络算法离开局部极值,本质是将神经网络的代价函数描述为猴群算法所要眺望和空翻的目标函数,其中,将BP神经网络中参数作为猴群算法中的猴子i,在d维空间随机搜索最优解。因为 代价函数存在最小值,神经网络局部最优解问题可以转换成为求取函数最优值(眺望与空翻)的问题。一旦猴群空翻成功,神经网络的参数即进入新的搜索空间,因此使BP神经网络脱离了局部极值,再次逼近全局最优解。

本文对BP神经网络算法的局部搜索过程进行改进,具体改进过程:(1)初始化种群;(2)计算每个神经元的适应度值,然后进行降序排列;(3)按照基本的BP神经网络算法的操作步骤将F个神经元分别放在猴群的子群中;(4)执行局部搜索。假设猴群攀爬的步长为a或-a,其选中概率为0.5,则根据基本猴群算法生成随机向量?驻Xi =(?驻Xi1,?驻Xi2,?驻Xi3,...,?驻Xin),计算在xi 位置的伪梯度,定义参数b为猴子能眺望的视野长度,视野范围为(xij -b,xij +b),在视野参数范围内搜索更优位置,并更新猴群到更优的位置;(5)更新全局最优位置Xbest和个体最优位置xibest 。

6 仿真实验分析

实验数据采用入侵检测领域比较权威的测试数据[7][8]KDD99,采用的是MIT Lincoln Labs98数据,其内置5000000条数据,入侵数据有4大类,24小类。在训练过程中,系统利用训练数据进行学习,改进后的猴群算法最大进化代数为2000代,种群初始规模为1000,设置攀爬步长a=0.00001,区间[c,d] = [-1,1]。完成训练后,选其中200个较好的规则作为最后的分类规则,以此作为检测训练数据和测试数据。传统BP网络学习算法和猴群优化的BP神经网络算法的执行时间对比如图2执行时间对比所示。

从实验结果可以看出,传统的BP神经网络算法的稳定性不如改进后的猴群优化神经网络算法。改进后的猴群优化神经网络算法虽然也存在抖动问题,而且有较明显的起伏,但是已经改进了许多,运行时间优于传统BP算法。

7 结束语

实验表明,基于猴群优化的BP神经网络算法能够有效地扩展神经网络的搜索空间,并弥补神经网络收敛速度和收敛精度上的短板,与其他算法相比,该算法能够更好地跳出局部最优解,并寻找全局最优解。

参考文献

[1] 郭春.基于数据挖掘的网络入侵检测关键技术研究[D].北京邮电大学,2014.

[2] 刘伉伉.云计算环境下入侵检测技术的研究[D].山东师范大学,2015.

[3] 吴玉香,王聪.不确定机器人的自适应神经网络控制与学习[J].控制理论与应用,2013,v.3008:990-997.

[4] 张佳佳,张亚平,孙济洲.基于猴群算法的入侵检测技术[J].计算机工程,2011,v.37;No.38414:131-133.

[5] 齐艳玉,兰燕飞.一类基于动态优化问题的混沌猴群算法[J].武汉理工大学学报(信息与管理工程版),2013,v.35;No.17502:164-167.

[6] 贾瑞民,何登旭,石绍堂.学习猴群爬过程的人工蜂群优化算法[J]. 计算机工程与应用,2012,v.48;No.76627:53-57.

[7] 张玲,白中英,罗守山,谢康,崔冠宁,孙茂华.基于粗糙集和人工免疫的集成入侵检测模型[J].通信学报,2013,v.34;No.30809:166-176.

[8] 毛健,赵红东,姚婧婧.人工神经网络的发展及应用[J].电子设计工程,2011,v.19;No.23024:62-65.

作者简介:

吴春琼(1979-),女,汉族,福建永定人;毕业于福州大学,硕士研究生;阳光学院管理系,讲师;主要研究方向和关注领域:数据挖掘、网络安全。

黄晓(1989-),女,汉族,福建福州人;毕业于莫纳什大学(Monash University),硕士研究生;阳光学院管理系,助教;主要研究方向和关注领域:网络安全、网上社区。

猜你喜欢
猴群神经元向量
向量的分解
AI讲座:神经网络的空间对应
印度猴群杀人母亲与4个孩子遇难
猴子吃灵芝
仿生芯片可再现生物神经元行为
悬崖上的猴群
这个神经元负责改变我们的习惯
研究人员精确定位控制饮酒的神经元
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线