一种基于Taylor神经网络的入侵检测方法及系统

文档序号:25991923发布日期:2021-07-23 21:04阅读:282来源:国知局
一种基于Taylor神经网络的入侵检测方法及系统

本申请实施例涉及网络安全技术领域,具体涉及一种基于taylor神经网络的入侵检测方法及系统。



背景技术:

互联网和计算机系统已经成为现代社会生活中的重要组成部分,随之带来的安全问题。成为影响社会稳定的关键因素。

因此,如何辨别网络入侵行为成为各界高度关注的问题。入侵检测技术作为一种能够检测和抵御恶意软件侵害的新型安全机制,逐渐发展成为保护网络安全的关键技术。



技术实现要素:

为此,本申请实施例提供一种基于taylor神经网络的入侵检测方法及系统,克服入侵检测数据特征不相关性等问题,有效提高神经网络的入侵检测性能。

为了实现上述目的,本申请实施例提供如下技术方案:

根据本申请实施例的第一方面,提供了一种基于taylor神经网络的入侵检测方法,所述方法包括:

步骤1:初始化人工蜂群算法的种群数目、蜜源位置、最大迭代次数和搜索空间;

步骤2:对原始数据x进行预处理;所述预处理包括将数据集中的离散特征转换为数值型特征;以及将数值型特征进行归一化处理,使其都是分布在0到1之间的实数;

步骤3:将归一化后的数据特征进行变换,以满足taylor神经网络层的输入条件;

步骤4:将变换后的数据划分为训练集x_train、测试集x_test;

步骤5:将训练集x_train输入至taylor神经网络tnn中,并进行训练;

步骤6:计算并返回训练集的损失值,并将其作为人工蜂群算法gabc的目标函数,更新相关参数;

步骤7:反复执行步骤2至步骤6,直至触发gabc的迭代终止条件,获得tnn的最优展开项数;

步骤8:传递参数至tnn并对其进行训练,训练完成后在测试集上进行测试。

可选地,所述将训练集x_train输入至taylor神经网络tnn中,并进行训练,具体包括如下步骤:

步骤a:初始化种群数、最大迭代次数以及搜索空间,并更新种群位置;

步骤b:计算并评估每个初始解的适应度函数值,根据适应度函数值确定极值以及最好最差的位置;

步骤c:按照如下公式进行贪婪选择,如果vi的适应度优于xi,则用vi代替xi,将vi作为当前最好的解,否则保留xi不变;

步骤d:设置循环条件开始循环;

步骤e:利用高斯过程更新引领蜂位置;

步骤f:利用轮盘机制更新跟随蜂位置;

步骤g:若一个食物源经过数次迭代后仍未被更新,则将其放弃,则此引领蜂转成一个侦查峰,计算产生一个新的食物源;

步骤h:记录目前为止的最优解;

步骤i:判断是否满足循环终止条件,若满足,循环结束,输出最优解,否则返回步骤d继续搜索。

可选地,所述更新种群位置是按照如下公式进行更新:

xij=li+η*(uj-lj)

其中,i=1,2,……m,m为蜜源个数;j=1,2……n,n为问题的维数;η是一个介于(0,1)之间的随机数;uj和lj分别是xij的最大和最小边界值;

所述计算并评估每个初始解的适应度函数值是按照如下公式进行计算:

其中,yk表示神经网络的实际输出,yk’表示神经网络的预测结果,m表示输入神经元的个数。适应度值高的将作为下次迭代的初始值,直到选出适应度最好的一组蜂群位置,迭代结束后把该位置作为taylor神经网络的初始值。

可选地,所述利用高斯过程更新引领蜂位置是按照如下公式计算:

ζij=p(f*|x,y,x*)=n(<f*>,cov(f*))

其中j是介于[1,m]之间的随机整数,i,k∈{1,2…m},且k≠i;xkj为随机选取的蜜源;

所述利用轮盘机制更新跟随蜂位置是按照如下公式计算:

其中,pm为跟随蜂通过轮盘赌机制选择某个蜜源而更新位置的概率。

根据本申请实施例的第二方面,提供了一种基于taylor神经网络的入侵检测系统,所述系统包括:

数据预处理模块,用于执行:步骤1:初始化人工蜂群算法的种群数目、蜜源位置、最大迭代次数和搜索空间;还用于执行步骤2:对原始数据x进行预处理;所述预处理包括将数据集中的离散特征转换为数值型特征;以及将数值型特征进行归一化处理,使其都是分布在0到1之间的实数;还用于执行步骤3:将归一化后的数据特征进行变换,以满足taylor神经网络层的输入条件;还用于执行步骤4:将变换后的数据划分为训练集x_train、测试集x_test;

tnn训练模块,用于执行步骤5:将训练集x_train输入至taylor神经网络tnn中,并进行训练;还用于执行步骤6:计算并返回训练集的损失值,并将其作为人工蜂群算法gabc的目标函数,更新相关参数;步骤7:反复执行步骤2至步骤6,直至触发gabc的迭代终止条件,获得tnn的最优展开项数;

tnn测试模块,用于执行步骤8:传递参数至tnn并对其进行训练,训练完成后在测试集上进行测试。

可选地,所述tnn训练模块具体用于:执行如下步骤:

步骤a:初始化种群数、最大迭代次数以及搜索空间,并更新种群位置;

步骤b:计算并评估每个初始解的适应度函数值,根据适应度函数值确定极值以及最好最差的位置;

步骤c:按照如下公式进行贪婪选择,如果vi的适应度优于xi,则用vi代替xi,将vi作为当前最好的解,否则保留xi不变;

步骤d:设置循环条件开始循环;

步骤e:利用高斯过程更新引领蜂位置;

步骤f:利用轮盘机制更新跟随蜂位置;

步骤g:若一个食物源经过数次迭代后仍未被更新,则将其放弃,则此引领蜂转成一个侦查峰,计算产生一个新的食物源;

步骤h:记录目前为止的最优解;

步骤i:判断是否满足循环终止条件,若满足,循环结束,输出最优解,否则返回步骤d继续搜索。

可选地,所述更新种群位置是按照如下公式进行更新:

xij=li+η*(uj-lj)

其中,i=1,2,……m,m为蜜源个数;j=1,2……n,n为问题的维数;η是一个介于(0,1)之间的随机数;uj和lj分别是xij的最大和最小边界值;

所述计算并评估每个初始解的适应度函数值是按照如下公式进行计算:

其中,yk表示神经网络的实际输出,yk’表示神经网络的预测结果,m表示输入神经元的个数。适应度值高的将作为下次迭代的初始值,直到选出适应度最好的一组蜂群位置,迭代结束后把该位置作为taylor神经网络的初始值。

可选地,所述利用高斯过程更新引领蜂位置是按照如下公式计算:

ζij=p(f*|x,y,x*)=n(<f*>,cov(f*))

其中j是介于[1,m]之间的随机整数,i,k∈{1,2…m},且k≠i;xkj为随机选取的蜜源;

所述利用轮盘机制更新跟随蜂位置是按照如下公式计算:

其中,pm为跟随蜂通过轮盘赌机制选择某个蜜源而更新位置的概率。

根据本申请实施例的第三方面,提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行第一方面任一项所述的方法。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如第一方面任一项所述的方法。

综上所述,本申请实施例提供了一种基于taylor神经网络的入侵检测方法及系统,针对现阶段攻击数据的特点提出了一种新型神经元——taylor神经元(tn),并利用taylor神经元设计了taylor神经网络层(tnl),再结合传统神经网络(dnn)搭建了适合入侵数据特征的taylor神经网络(tnn)入侵检测算法。将基于高斯过程的人工蜂群算法引入taylor神经网络,并建立simple_tnn与multi_tnn的入侵检测模型。实验证明,使用了gabc的simple_tnn和multi_tnn相较于传统的dnn等入侵检测算法具有明显的优势。

附图说明

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

本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。

图1为本申请实施例提供的一种基于taylor神经网络的入侵检测方法流程示意图;

图2为本申请实施例提供的传统taylor神经元结构示意图;

图3为本申请实施例提供的一元taylor神经元结构示意图;

图4为本申请实施例提供的多元taylor神经元结构示意图;

图5为本申请实施例提供的taylor神经网络结构示意图;

图6为本申请实施例提供的gabc算法流程示意图;

图7为本申请实施例提供的基于gabc的tnn入侵检测算法框架示意图;

图8a和图8b为本申请实施例提供的二分类roc曲线示意图;

图9a和9b为本申请实施例提供的nsl-kdd微平均roc曲线图和宏平均roc曲线图;

图9c和9d为本申请实施例提供的unsw-nb15微平均roc曲线图和宏平均roc曲线图;

图10为本申请实施例提供的二分类比较示意图;

图11为本申请实施例提供的多分类比较示意图;

图12为本申请实施例提供的一种基于taylor神经网络的入侵检测系统框图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

国内外相关研究者对入侵检测技术进行了深入研究,提出了基于机器学习、数据挖掘和神经网络等多种入侵检测算法。然而,机器学习算法大部分过于复杂,模型训练时间过长,计算成本偏高;数据挖掘算法对大数据中的噪声较为敏感,易出现过拟合现象;神经网络通过模拟生物大脑的思维方式处理信息,具有自组织、自学习和自适应地特点,可以在保证性能的同时,控制算法中的参数量,降低计算成本。

目前,研究者使用神经网络如bp、rnn、cnn、dbn等设计了一系列入侵检测算法。bp神经网络具有强大的自学习能力、泛化能力和非线性映射能力。文献将bp神经网络应用于入侵检测,得到了较高的检测率和较低的误报率,但bp算法权值阈值初始化随机性较大,易陷入局部极值,导致训练时间过长。rnn神经网络能够挖掘出数据中的时序信息和语义信息,被广泛用于序列相关的入侵检测。文献结合rnn和区域自适应合成过采样算法来提升低频攻击的检测率,得到了较优结果,但大多数攻击数据不存在明显的序列相关性,导致难以适用于入侵检测系统。cnn是一个典型的基于最小化预处理数据要求而产生的区分性深度结构,通常处理高度非线性抽象分类问题,文献将其与权值下降相结合应用于入侵检测,保留数据间长期依赖关系,丢弃重复特征,有效避免了过拟合现象,然而cnn计算过程复杂,导致运算时间及成本偏高。dbn神经网络可以有效解决高维数据的检测问题。文献提出一种改进遗传算法与dbn的入侵检测技术,通过遗传算法自适应地生成最优隐藏层数和神经元数,以适应不同攻击类型,然而攻击数据通常是一维,将其用于入侵检测存在明显缺陷,并且dbn的学习过程较慢,参数的选择不当会导致结果陷入局部最优。

入侵检测技术已成为保护网络安全的关键技术,然而攻击数据特征之间存在明显的不相关性,现阶段用于入侵检测的算法难以拟合其中的关系,对此,为提高算法拟合度,设计了基于taylor神经网络的入侵检测算法。

首先,提出taylor神经元(taylorneuron,tn),攻击数据经过taylor神经元求解后通过线性嵌套分离特征,明显提高了特征之间的相关性。在此基础上,设计了taylor神经网络层(taylorneuralnetworklayer,tnl),将其与传统深度神经网络结合构建了taylor神经网络(taylorneuralnetwork,tnn)。为优化taylor公式的展开项数,提出了基于高斯过程的人工蜂群算法。实验结果表明,基于taylor神经网络的入侵检测算法在nsl-kdd和unsw-nb15数据集上具有明显的优势。

对此,本申请实施例提出了一种基于taylor神经网络的入侵检测算法。taylor公式可以有效描述多项式对复杂函数的逼近,将其作为神经网络中的神经元,即输入向量与输出向量间的传递函数。与传统的全连接神经网络不同,taylor神经网络能够通过线性嵌套来分离特征,克服入侵检测数据特征不相关性等问题,有效提高神经网络的入侵检测性能。为避免经验选择taylor公式的展开项数,设计了基于高斯过程的人工蜂群算法对其进行优化。实验结果表明,基于一元taylor神经网络的入侵检测算法(simple-tnn)与基于多元taylor神经网络的入侵检测算法(multi-tnn)均具有较优性能。

图1示出了本申请实施例提供的一种基于taylor神经网络的入侵检测方法,如图1所示,所述方法包括如下步骤:

步骤101:初始化人工蜂群算法的种群数目、蜜源位置、最大迭代次数和搜索空间;

步骤102:对原始数据x进行预处理;所述预处理包括将数据集中的离散特征转换为数值型特征;以及将数值型特征进行归一化处理,使其都是分布在0到1之间的实数;

步骤103:将归一化后的数据特征进行变换,以满足taylor神经网络层的输入条件;

步骤104:将变换后的数据划分为训练集x_train、测试集x_test;

步骤105:将训练集x_train输入至taylor神经网络tnn中,并进行训练;

步骤106:计算并返回训练集的损失值,并将其作为人工蜂群算法gabc的目标函数,更新相关参数;

步骤107:反复执行步骤102至步骤106,直至触发gabc的迭代终止条件,获得tnn的最优展开项数;

步骤108:传递参数至tnn并对其进行训练,训练完成后在测试集上进行测试。

在一种可能的实施方式中,所述将训练集x_train输入至taylor神经网络tnn中,并进行训练,具体包括如下步骤:

步骤a:初始化种群数、最大迭代次数以及搜索空间,并更新种群位置;

步骤b:计算并评估每个初始解的适应度函数值,根据适应度函数值确定极值以及最好最差的位置;

步骤c:按照如下公式a进行贪婪选择,如果vi的适应度优于xi,则用vi代替xi,将vi作为当前最好的解,否则保留xi不变;

步骤d:设置循环条件开始循环;

步骤e:利用高斯过程更新引领蜂位置;

步骤f:利用轮盘机制更新跟随蜂位置;

步骤g:若一个食物源经过数次迭代后仍未被更新,则将其放弃,则此引领蜂转成一个侦查峰,计算产生一个新的食物源;

步骤h:记录目前为止的最优解;

步骤i:判断是否满足循环终止条件,若满足,循环结束,输出最优解,否则返回步骤d继续搜索。

在一种可能的实施方式中,所述更新种群位置是按照如下公式b进行更新:

xij=li+η*(uj-lj)……公式b

其中,i=1,2,……m,m为蜜源个数;j=1,2……n,n为问题的维数;η是一个介于(0,1)之间的随机数;uj和lj分别是xij的最大和最小边界值;

所述计算并评估每个初始解的适应度函数值是按照如下公式进行计算:

其中,yk表示神经网络的实际输出,yk’表示神经网络的预测结果,m表示输入神经元的个数。适应度值高的将作为下次迭代的初始值,直到选出适应度最好的一组蜂群位置,迭代结束后把该位置作为taylor神经网络的初始值。

在一种可能的实施方式中,所述利用高斯过程更新引领蜂位置是按照如下公式d、e、f、g计算:

ζij=p(f*|x,y,x*)=n(<f*>,cov(f*))……公式e

其中j是介于[1,m]之间的随机整数,i,k∈{1,2…m},且k≠i;xkj为随机选取的蜜源;

所述利用轮盘机制更新跟随蜂位置是按照如下公式h计算:

其中,pm为跟随蜂通过轮盘赌机制选择某个蜜源而更新位置的概率,如果该值大于随机产生的一个数,跟随蜂则依附到此蜜源。

下面对本申请实施例提供的基于taylor神经网络的入侵检测方法进行详细说明。

第一方面,taylor神经元。

神经元模型包含了输入、输出和计算功能。图2为典型神经元模型结构。神经网络研究中,主要关注两个问题:一为神经网络的结构,作为拓扑路径;二为神经元的设计,以执行功能。因此可将神经元视为输入向量和输出向量间的传递函数,神经网络为一组传递函数,从而耦合成更复杂的转换系统。

传统神经元通常处理特征与目标之间线性相关的情形。然而现有攻击数据间的特征存在相关性,而传统神经元无法拟合其中的联系。为提高神经网络的拟合度,将taylor公式引入神经元,即使用taylor公式作为输入向量与输出向量间的传递函数,数据经taylor公式求解后利用线性嵌套来分离特征,其运算法则及神经元结构如下所示,其中图3示出了一元taylor神经元示意图。

r=on……公式(3)

其中,fn+1(x)是taylor神经元中n(展开项数)个节点的激活函数,dn+1和r分别是微分分量和麦克劳林分量,均由神经网络计算得到。f(x)是f(x)在x=0处的一元taylor公式(麦克劳林公式)。

taylor公式分为带佩亚诺型余项的泰勒公式和带拉格朗日余项的泰勒公式,前者对函数f(x)的展开要求较低,只需在点x0处n阶可导即可,不需要连续可导,更无须在x0的邻域内存在n+1阶导数,因此本申请实施例采用带佩亚诺型余项的泰勒公式作为传递函数。

图4示出了多元taylor神经元结构示意图,运算算法如下:

r=on……公式(7)

其中,df为导数矩阵,hf为黑塞矩阵,本申请实施例统称为微分分量。基于工程简单且易于实现,取a=0,r为麦克劳林分量,由神经网络计算。f(x)是f(x)在x=0处的多元taylor公式。

第二方面,taylor神经网络。

在taylor神经元的基础上,设计taylor网络层(tnl),将其与现阶段流行的深度神经网络(dnn)相结合构成taylor神经网络(tnn),结构如图5所示。将taylor网络层置于结构的初始层,模拟数据预处理后在[0,1]范围内的高频振动曲线,即目标函数的近似值,并且在给定的训练样本容量下,使用一系列激活函数扩展所需函数,从而使用确定的准确率拟合训练样本。taylor公式求解后,使用线性嵌套来分离特征,提高了数据特征间的相关性,再传递给后续的dnn进行更深层次的处理和分类。

1、taylor神经网络的前向传播。

以x作为输入数据,使用神经网络计算出微分矩阵d((n×n)维)和麦克劳林矩阵r((n×1)维),见公式(12)和公式(13)。

其中,n为数据的维数,n为taylor公式展开的项数,f(0)(n)为f(x)在第n次求导后x=0时的函数值。为满足taylor神经元的输入条件,将输入数据x做下列变换得到x(n×n)。

将变换后的x与矩阵d进行点乘:

再将y按行相加:

再与矩阵r相加:

以上为一元taylor神经网络层前向传播的过程,输出数据是n×1维数据。多元taylor神经网络层与一元taylor神经网络层相同,使用神经网络计算出导数矩阵df和黑塞矩阵hf后,再代入输入数据x即可。

再考虑taylor网络层至第一层dnn中信息的前向传播过程:

x1=σ1(w1y+b1)……公式(18)

其中,y是taylor网络层的输出;x1为第一层dnn的输出;w1为第一层dnn的权重;b1为第一层dnn的偏置;σ1为第一层dnn的激活函数。

dnn中前向传播的过程为:

xl=σl(wlxl-1+bl)……公式(19)

其中xl-1为第l-1层dnn的输出,同时也是第l层dnn的输入;xl为第l层dnn的输出;wl为第l层dnn的权重;bl为第l层dnn的偏置;σl为第l层dnn的激活函数。

2、泰勒公式的反向传播。

在经过一次传输后,记输出值与标签值间的损失值为l。则可计算出梯度信息在dnn中的反向传播过程可表示为:

上式分别是第l层dnn的权重(wl)和偏置(bl)的梯度信息反向传播过程。

taylor网络层中的f(0)、f(0)’、f(0)”以及r0、r1等都是由神经网络得到,所以接下来分析在taylor网络层中的梯度信息反向传播过程(以f(0)”为例):

上式分别是taylor网络层的权值(w)和偏置(b)的梯度信息反向传播过程。其中是dnn网络在n-1层的输出,xt表示泰勒网络层的输出。

在dnn前加入一个taylor网络层,不仅能够提高算法精度,还可节省系统运行时间。然而,taylor展开式持续展开至n项并不现实,不仅会占据大量内存空间且得不到较好结果。因此,本申请实施例提出一种基于高斯过程的人工蜂群算法,对展开项数n进行优化。

第三方面,基于高斯过程的人工蜂群算法。

人工蜂群算法(artificialbeecolony,abc)由karaboga于2005年提出,该算法用蜜源所在位置表示问题的解,用蜜源产出的花粉数量表示解的适应度值。根据分工的不同,算法将蜜蜂划分为引领蜂、跟随蜂以及侦查蜂三种。其中,引领蜂发现食物源并以一定的概率将其分享给跟随蜂;跟随蜂根据引领蜂分享的概率选择蜜源;侦查峰在蜂巢附近寻找新的蜜源。算法迭代运行,对蜂群和蜜源位置初始化后,对三种蜂的位置迭代更新以寻找问题的最优解。

人工蜂群算法鲁棒性强,通用性好,但是局部开采能力较差,易陷入“早熟”,因此本申请实施例设计了基于高斯过程的人工蜂群算法。

1、高斯过程。

高斯过程(gaussianprocesses,gp)是一种常见的非参数模型,其本质是通过一个映射将自变量从低维空间映射到高维空间(类似于支持向量机中的核函数将低维线性不可分映射为高维线性可分)。高斯过程是多元高斯概率分布的一种泛化形式,通过先验知识确定参数的后验分布,从而确定一组任意且有限的输入数据和目标输出之间的函数关系。如同高斯分布一样,可以用均值和方差来刻画,如下:

f(x)=gp(m(x),k(x,x′))……公式(24)

其中,m(x)为均值函数,通常取m(x)=e[f(x)];k(x,x’)为核函数,通常取k(x,x’)=e[(f(x)-m(x))(f(x’)-m(x’))]。为方便计算,取m(x)=0,0均值高斯过程直接由其核函数决定。

给定输入数据x=x1…xn。由于目标输出通常包含高斯噪声,且与真实值之间相差ξ,即:

y=f(x)+ξ……公式(25)

其中,ξ为一个独立随机变量,服从均值为0,方差为σ2的高斯分布,即

从而观测值y的先验分布为:

其中,k为协方差矩阵。此时,n个训练样本的目标输出y和测试数据的预测值f*构成了联合高斯先验分布:

其中,k*=[k(x*,x1)k(x*,x2)…k(x*,xn)],k**=k(x*,x*),x*为预测输入。取f*的边缘分布,并根据联合高斯分布的边缘分布性质可得到如下预测分布:

p(f*|x,y,x*)=n(<f*>,cov(f*))……公式(28)

其中,f*若为标量,那么<f*>为预测均值,cov(f*)为预测协方差;f*若为向量,那么<f*>为预测均值向量,cov(f*)为预测协方差矩阵。

2、基于高斯过程的人工蜂群算法。

由于人工蜂群普遍存在收敛速度慢,局部开采能力差,易陷入“早熟”等缺点,所以引入高斯过程对其进行优化,过程如下:

初始化蜜源阶段:

xij=li+η*(uj-lj)……公式(31)

其中,i=1,2,……m,m为蜜源个数;j=1,2……n,n为问题的维数;η是一个介于(0,1)之间的随机数;uj和lj分别是xij的最大和最小边界值。

引领蜂位置更新阶段:

ζij=p(f*|x,y,x*)=n(<f*>,cov(f*))……公式(33)

其中j是介于[1,m]之间的随机整数,i,k∈{1,2…m},且k≠i;xkj为随机选取的蜜源;将改为服从高斯分布的随机数,相对于均匀分布的随机数,可以提供相对集中的搜索区域,从而加快收敛速度,扩大搜索范围,增加种群多样性。

跟随蜂阶段:

其中,pm为跟随蜂通过轮盘赌机制选择某个蜜源而更新位置的概率,如果该值大于随机产生的一个数,那么跟随蜂就依附到此蜜源。

侦查峰阶段:当引领蜂和跟随蜂搜索完整个空间时,一个蜜源的适应度函数值在给定的有限次数内没有提高,则将该蜜源丢弃,该蜜源相对应的引领蜂从而变成侦查蜂,并使用公式搜索新的可能解。

3、适应度函数。

将神经网络得到的预测结果与实际输出之间产生的误差和作为适应度函数,计算简单,无需反复确定适应度函数表达式。数学表达式为:

其中,yk表示神经网络的实际输出,yk’表示神经网络的预测结果,m表示输入神经元的个数。适应度值高的将作为下次迭代的初始值,直到选出适应度最好的一组蜂群位置,迭代结束后把该位置作为taylor神经网络的初始值。

4、基于高斯过程的人工蜂群算法步骤。

基于高斯过程的人工蜂群算法(gabc)步骤如下,具体流程图见图6:

步骤1:初始化种群数、最大迭代次数以及搜索空间,并利用公式(31)更新种群位置;

步骤2:利用公式(37)计算并评估每个初始解的适应度函数值,根据适应度函数值确定极值以及最好最差的位置;

步骤3:利用公式(38)进行贪婪选择,如果vi的适应度优于xi,则用vi代替xi,将vi作为当前最好的解,否则保留xi不变;

步骤4:设置循环条件开始循环;

步骤5:利用公式(32-35)更新引领蜂位置;

步骤6:利用公式(36)更新跟随蜂位置;

步骤7:若一个食物源经过数次迭代后仍未被更新,那么就将其放弃,则此引领蜂转成一个侦查峰,由公式(31)产生一个新的食物源;

步骤8:记录目前为止的最优解;

步骤9:判断是否满足循环终止条件,若满足,循环结束,输出最优解,否则返回步骤4继续搜索。

第四方面,基于人工蜂群的taylor神经网络入侵检测算法。

将基于高斯过程的人工蜂群算法引入taylor神经网络,并建立simple_tnn与multi_tnn的入侵检测模型。图7示出了基于gabc的tnn入侵检测算法框架示意图。

1、算法模型描述。

使用基于高斯过程的人工蜂群算法优化tnn的基本思路是求出适应度函数最好的一组蜂群位置,在迭代结束后,将该位置作为tnn的最优展开项数建立入侵检测模型,模型训练过程及结构如下所示。

步骤1:初始化人工蜂群算法的种群数目、蜜源位置、最大迭代次数和搜索空间。

步骤2:对原始数据x进行预处理。

(1)将数据集中的离散特征转换为数值型特征;

(2)将数值型特征进行归一化处理,使其都是分布在[0,1]之间的实数。

步骤3:将归一化后的数据特征进行变换,使其满足taylor神经网络层的输入条件;

步骤4:将变换后的数据划分为训练集x_train、测试集x_test;

步骤5:将训练数据x_train输入至tnn中,并对其进行训练;

步骤6:计算并返回训练数据的损失值,并将其作为gabc的目标函数,更新相关参数;

步骤7:反复执行步骤2至步骤6,直至触发gabc的迭代终止条件,获得tnn的最优展开项数;

步骤8:传递参数至tnn并对其进行训练,训练完成后在测试集上进行测试。

第五方面,实验设计与分析。

为验证simple_tnn和multi_tnn入侵检测算法的性能,采用nsl-kdd和unsw-nb15数据集对其进行验证,其中nsl-kdd包含41个特征属性和1个类别标签,较kdd而言,数据分布更平衡,不包含冗余数据;nsl-kdd将攻击类型分为dos、probe、r2l、u2r的4大类攻击。unsw-nb15包含49个特征属性,更能真实的反应现代网络数据;unsw-nb15将攻击分为fuzzers,analysis,backdoors,dos,exploits,generic,reconnaissance,shellcodeandworms的9大类攻击。

1、性能指标。

两种数据集无论是正常行为和攻击行为之间,或是各类攻击行为之间都存在数据不平衡等问题,所以除准确率外,还需要引入精确率,召回率和f1值对算法进行评价。

准确率(accuracy):预测对的样本数占样本总数的比例,其数学表达式如下:

精确率(precision):预测为正的样本中有多少是真正的正样本,其数学表达式如下:

召回率(recall):样本中的正例有多少被预测正确了,其数学表达式如下:

f1-score是基于召回率和精确率计算的,其数学表达式如下:

f1-score=(∑α*f1)2……公式(43)

2、与经典机器学习算法的比较。

(1)二分类实验结果。

二分类实验结果将其与经典的机器学习算法和神经网络进行对比,显然,在几种算法中,不论是nsl-kdd数据集还是unsw-nb15数据集,所提出的simple_tnn和multi_tnn效果总是最优的,分别是97.6%、99.6%和96.8%、97.3%。在nsl-kdd数据集上,svm的accuracy为53.4%,recall和f1-score仅仅只有0.1%,说明svm在此数据集上完全失效;相较于机器学习算法,神经网络算法在此数据集上表现更好,cnn的precision甚至达到了98.8%,仅仅与simple_tnn差了0.1%;而simple_tnn的recall却比cnn低了4.2%,说明simple_tnn在分类正样本时的性能较cnn差,总是将一部分正样本错误的预测为负样本;multi_tnn的四种性能指标分别达到了99.6%、99.7%、99.4%和99.5%,是几种算法种性能最佳的。在unsw-nb15数据集上,cart的precision最差,仅仅只有70.4%,但是recall却是最高,达到了99.8%,说明cart在分类正样本时,性能较优;相较于神经网络算法,机器学习算法反而在此数据集上表现更好,knn是几种经典算法性能最优的,但是较simple_tnn和multi_tnn的precision而言,还是低了3.2%和2%;再观察simple_tnn和multi_tnn可看出,虽然multi_tnn的accuracy比simple_tnn高了0.5%,但是precision却低了1.2%,说明multi_tnn将部分负样本预测为了正样本,这样会给网络安全带来更大的威胁。roc曲线图反应真正率和假正率之间关系的曲线,曲线将整个区域划分成两个部分,曲线下部分的面积被称为auc,用来表示预测准确性,从图8a和图8b的二分类roc曲线可以看出,在各算法中,无论检测正样本数据还是负样本数据,simple_tnn和multi_tnn的auc均较优。

(2)多分类实验结果。

多分类实验将其与经典的机器学习算法和神经网络进行对比,可看出不论是nsl-kdd数据集还是unsw-nb15数据集multi_tnn性能总是最佳的。在nsl-kdd数据集上,与机器学习算法相比,神经网络算法较优;svm如二分类一样,效果极差,accuracy只有53.5%,precision也只有37.6%,相当于把大部分正样本预测为负样本,大部分负样本预测为正样本;其他几种经典算法几乎都达到了80%以上,性能较优;然而simple_tnn算法性能下降,accuracy低于cnn算法3.9%,说明simpletaylor在处理nsl-kdd数据时,不如cnn效果好;但是multi_tnn却比cnn的precision高3.3%,说明multitaylor在该数据集上更具有优势。在umsw-nb15数据集上,较机器学习而言,神经网络算法的多分类性能明显下降;svm在几种算法种位居首位,accuracy达到了80.5%,仅仅比最好的multi_tnn差了3.8%;svm与其他几种机器学习算法的precision相差不大,但是recall却高约5%,说明svm在预测正样本时比其他几种经典算法更具有优势;cnn却是性能最差的,precision只有53%,相当于接近一半的负样本预测为正样本,这将给网络安全带来更严重的危害;其他几种经典算法几乎都达到了70%以上,相对较优,但与multi_tnn还是差了10%左右。微平均roc和宏平均roc曲线图来直观的反应算法在大量数据和少量数据中的检测性能,图9a和图9b示出了nsl-kdd微平均roc曲线图和宏平均roc曲线图,图9c和图9d示出了unsw-nb15微平均roc曲线图和宏平均roc曲线图,如图9所示的多分类微平均和宏平均roc曲线,不论是nsl-kdd数据集,还是unsw-nb15数据集,也无论是大量数据中还是少量数据中,所提出的simple_tnn和multi_tnn的auc总是最优的。

3、与现阶段最新入侵检测算法的比较。

将本申请实施例所提simple_tnn和multi_tnn实验结果与现阶段最新的入侵检测算法进行比较如图10和图11所示(由于每种论文给出的性能指标都不相同,所以只对accuracy进行比较)。一些论文对数据特征进行选择后再分类;一些论文基于某种规则检测;一些论文多步骤分类;一些论文对现有入侵算法改进;一些论文对神经网络结构优化后再分类,上述所得到的实验结果确实较优,然而,并没有一种算法是针对攻击数据而专门提出的入侵检测算法,因此,本申请实施例提出基于taylor公式的神经网络,很显然,不论是二分类还是多分类,本申请实施例所提算法较其他算法而言,性能总是最优,说明simple_tnn和multi_tnn入侵检测算法确实有效。

针对现阶段攻击数据的特点提出了一种新型神经元——taylor神经元(tn),并利用taylor神经元设计了taylor神经网络层(tnl),再结合传统神经网络(dnn)搭建了适合入侵数据特征的taylor神经网络(tnn)入侵检测算法。为得到最优展开项数n,提出了基于高斯过程的人工蜂群算法(gabc)。实验证明,使用了gabc的simple_tnn和multi_tnn相较于传统的dnn等入侵检测算法具有明显的优势。

simple_tnn和multi_tnn作为一种新型的神经网络,相关理论还不够完善,后续将对其进行更加深入的探索,继续开发基于taylor的高性能神经网络。

综上所述,本申请实施例提供了一种基于taylor神经网络的入侵检测方法及系统,针对现阶段攻击数据的特点提出了一种新型神经元——taylor神经元(tn),并利用taylor神经元设计了taylor神经网络层(tnl),再结合传统神经网络(dnn)搭建了适合入侵数据特征的taylor神经网络(tnn)入侵检测算法。将基于高斯过程的人工蜂群算法引入taylor神经网络,并建立simple_tnn与multi_tnn的入侵检测模型。实验证明,使用了gabc的simple_tnn和multi_tnn相较于传统的dnn等入侵检测算法具有明显的优势。

基于相同的技术构思,本申请实施例还提供了一种基于taylor神经网络的入侵检测系统,如图12所示,所述系统包括:

数据预处理模块1201,用于执行:步骤1:初始化人工蜂群算法的种群数目、蜜源位置、最大迭代次数和搜索空间;还用于执行步骤2:对原始数据x进行预处理;所述预处理包括将数据集中的离散特征转换为数值型特征;以及将数值型特征进行归一化处理,使其都是分布在0到1之间的实数;还用于执行步骤3:将归一化后的数据特征进行变换,以满足taylor神经网络层的输入条件;还用于执行步骤4:将变换后的数据划分为训练集x_train、测试集x_test;

tnn训练模块1202,用于执行步骤5:将训练集x_train输入至taylor神经网络tnn中,并进行训练;还用于执行步骤6:计算并返回训练集的损失值,并将其作为人工蜂群算法gabc的目标函数,更新相关参数;步骤7:反复执行步骤2至步骤6,直至触发gabc的迭代终止条件,获得tnn的最优展开项数;

tnn测试模块1203,用于执行步骤8:传递参数至tnn并对其进行训练,训练完成后在测试集上进行测试。

在一种可能的实施方式中,所述tnn训练模块具体用于:执行如下步骤:

步骤a:初始化种群数、最大迭代次数以及搜索空间,并更新种群位置;

步骤b:计算并评估每个初始解的适应度函数值,根据适应度函数值确定极值以及最好最差的位置;

步骤c:进行贪婪选择,如果vi的适应度优于xi,则用vi代替xi,将vi作为当前最好的解,否则保留xi不变;

步骤d:设置循环条件开始循环;

步骤e:利用高斯过程更新引领蜂位置;

步骤f:利用轮盘机制更新跟随蜂位置;

步骤g:若一个食物源经过数次迭代后仍未被更新,则将其放弃,则此引领蜂转成一个侦查峰,计算产生一个新的食物源;

步骤h:记录目前为止的最优解;

步骤i:判断是否满足循环终止条件,若满足,循环结束,输出最优解,否则返回步骤d继续搜索。

基于相同的技术构思,本申请实施例还提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行所述的方法。

基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行所述的方法。

本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1