一种基于BP神经网络的软件定义网络入侵检测方法与流程

文档序号:12478044阅读:来源:国知局

技术特征:

1.一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,包括如下步骤:

(1)利用软件定义网络控制平面的全局网络视图和软件定义网络的工作状态、入侵检测需求及网络安全策略,确定BP神经网络的输入层神经元数量和输出层神经元数量;

(2)根据BP神经网络的输入层神经元数量和输出层神经元数量,确定BP神经网络的隐含层神经元数量;

(3)根据BP神经网络的初始化参数构建初始BP神经网络;所述的初始参数包括输入层神经元数量、输出层神经元数量和隐含层神经元数量;

(4)对初始BP神经网络进行训练,得到用于入侵检测的BP神经网络;

(5)在当前入侵检测周期,根据软件定义网络的工作状态和负载情况,在软件定义网络中选择全部或部分网络节点进行实时的入侵检测;

(6)根据入侵检测结果完成对参与入侵检测的网络节点的数据流表配置,并通过软件定义网络的控制平面将数据流表下发到参与入侵检测的网络节点;

(7)等待进入下一入侵检测周期,将下一入侵检测周期更新为当前入侵检测周期,重复执行步骤(5)和步骤(6)。

2.根据权利要求1所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,所述的步骤(4)具体包括以下步骤:

(401)在初始BP神经网络中输入训练集,并设定初始BP神经网络的初始链接权值、初始阈值和学习率;所述的训练集的训练样本个数与输入层神经元数量相同,链接权值包括输入层与隐含层之间的链接权值和隐含层与输出层之间的链接权值,阈值包括隐含层神经元的阈值和输出层神经元的阈值;

(402)根据训练集和学习率进行多次训练,输出BP神经网络各神经元之间的链接权值及阈值,得到用于入侵检测的BP神经网络。

3.根据权利要求2所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,步骤(401)中初始链接权值及初始阈值是在(0,1)范围内随机设定的;η为学习率,η∈(0,1)。

4.根据权利要求2或3所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,所述的步骤(402)具体包括步骤:

(a)根据当前参数和输入的训练样本,计算针对该训练样本的输出向量、输出层神经元的梯度项和隐含层神经元的梯度项;所述的参数包括链接权值、阈值和学习率,参数的初始值为初始链接权值、初始阈值和学习率;

(b)根据训练样本的输出向量、输出层神经元的梯度项和隐含层神经元的梯度项更新当前BP神经网络中输入层与隐含层之间的链接权值、隐含层与输出层之间的链接权值、隐含层神经元的阈值和输出层神经元的阈值;

(c)判断步骤(b)得到的各链接权值和各阈值是否满足预定收敛条件,如果满足预定收敛条件,则结束本流程;否则,返回步骤(a),进行下一轮训练过程。

5.根据权利要求4所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,步骤(b)具体为:

Δviq=ηeqxi,viq=viq+Δviq

Δwqj=ηgjbq,wqj=wqj+Δwqj

Δγq=-ηeq,γq=γq+Δγq

Δθj=-ηgj,θj=θj+Δθj

式中,eq为隐含层第q个神经元的梯度项,gj为输出层第j个神经元的梯度项,bq为隐含层第q个神经元的输出,xi为输入层第i个神经元的输入,viq为输入层与隐含层之间的链接权值,wqj为隐含层与输出层之间的链接权值,γq为隐含层神经元的阈值,θj为输出层神经元的阈值,Δviq为输入层第i个神经元与隐含层第q个神经元之间链接权值的修正值,Δwqj为隐含层第q个神经元与输出层第j个神经元之间链接权值的修正值,Δγq为隐含层第q个神经元输出阈值的修正值,Δθj为输出层第j个神经元输出阈值的修正值。

6.根据权利要求4所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,步骤(c)中预定收敛条件为:

<mrow> <mo>|</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <mrow> <msub> <mi>E</mi> <mi>k</mi> </msub> <mo>|</mo> </mrow> <mo>&le;</mo> <mi>&epsiv;</mi> </mrow>

<mrow> <msub> <mi>E</mi> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>l</mi> </munderover> <msup> <mrow> <mo>(</mo> <msubsup> <mover> <mi>y</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>k</mi> </msubsup> <mo>-</mo> <msubsup> <mi>y</mi> <mi>j</mi> <mi>k</mi> </msubsup> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中,ε∈(0,1),为预设收敛阈值;为第k个训练样本在本轮计算中的预期输出向量中的第j个分量,为第k个训练样本在本轮计算中得到的输出向量中的第j个分量,m为输入层神经元数量、l为得到的输出向量的长度;Ek为BP神经网络在训练样本上的均方差。

7.根据权利要求1所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,步骤(5)所述的入侵检测过程,具体包括以下步骤:

(501)从流经参与入侵检测的网络节点的数据中提取网络特征值向量;

(502)隐含层中的神经元接收网络特征值向量,并通过计算产生隐含层的输出结果特征值向量;

(503)输出层中的神经元接收来自于隐含层的输出结果特征值向量,并通过计算产生最终的检测结果向量。

8.根据权利要求7所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,所述的步骤(502)具体为:

<mrow> <msubsup> <mi>y</mi> <mi>j</mi> <mi>k</mi> </msubsup> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <msubsup> <mi>x</mi> <mi>i</mi> <mi>k</mi> </msubsup> </mrow>

<mrow> <msubsup> <mi>z</mi> <mi>j</mi> <mi>k</mi> </msubsup> <mo>=</mo> <mfrac> <mrow> <mn>1</mn> <mo>-</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mn>2</mn> <msubsup> <mi>y</mi> <mi>j</mi> <mi>k</mi> </msubsup> <mo>)</mo> </mrow> </mrow> <mrow> <mn>1</mn> <mo>+</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mn>2</mn> <msubsup> <mi>y</mi> <mi>j</mi> <mi>k</mi> </msubsup> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,vij为输入层神经元i与隐含层神经元j之间的链接权值,为输入层神经元i归一化后的第k个网络特征值;为隐含层中第j个神经元输出的第k个输出结果特征值,m为BP神经网络输入层神经元数量,为第k个训练样本的预期输出向量中的第j个分量。

9.根据权利要求7所述的一种基于BP神经网络的软件定义网络入侵检测方法,其特征在于,所述的步骤(503)具体为:

<mrow> <msubsup> <mi>p</mi> <mi>l</mi> <mi>k</mi> </msubsup> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>h</mi> </msubsup> <msub> <mi>w</mi> <mrow> <mi>j</mi> <mi>l</mi> </mrow> </msub> <msubsup> <mi>z</mi> <mi>j</mi> <mi>k</mi> </msubsup> </mrow>

<mrow> <msubsup> <mi>o</mi> <mi>l</mi> <mi>k</mi> </msubsup> <mo>=</mo> <mfrac> <mrow> <mn>1</mn> <mo>-</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mn>2</mn> <msubsup> <mi>p</mi> <mi>l</mi> <mi>k</mi> </msubsup> <mo>)</mo> </mrow> </mrow> <mrow> <mn>1</mn> <mo>+</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mn>2</mn> <msubsup> <mi>p</mi> <mi>l</mi> <mi>k</mi> </msubsup> <mo>)</mo> </mrow> </mrow> </mfrac> </mrow>

其中,wjl为隐含层神经元j与输出层神经元l之间的链接权值,为来自隐含层神经元的输出结果特征值;h为隐含层神经元的数量,为输出层神经元l的第k个特征变量的加权和,为输出层神经元l的检测结果特征向量中的第k个特征值。

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