一种在SDN网络上实现DANN在线训练的系统技术领域
本发明涉及网络技术领域,更具体地,涉及一种在SDN网络上实现DANN
在线训练的系统。
技术背景
神经网络检测技术通过学习已有的输入-输出矢量对集合,进而抽象出其内
在的联系,然后得到新的输入-输出的关系。利用神经网络进行网络入侵检测的
工作过程包括:首先构造适合进行网络入侵攻击检测的神经网络模型,并利用训
练数据集来训练该神经网络的模型参数;然后运行已训练过的神经网络,将采集
网络新数据作为神经网络的输入,经过神经网络的计算得出的结果来判断该数据
是否为攻击数据。
当然,现有的基于神经网络的网络入侵检测系统通常采用的是单个神经网络
的模型,其存在的缺点包括:
(1)可扩展性不好:当初始训练集中存在着正常行为和某几类攻击行为的
样本的时候,利用此训练集进行训练后的神经网络是可以检测到训练集中存在的
异常行为的。但是,当新攻击出现的时候,由于训练过的神经网络没有对新攻击
进行学习,所以此神经网络无法检测出新攻击。要使该神经网络可以识别出新攻
击,那么就需要该神经网络对新攻击的数据样本进行学习。由于系统采用单个神
经网络的结构,系统无法添加新的神经网络对新攻击数据进行学习。
(2)再学习能力差:网络中的攻击行为发生变化时,已利用初始训练数据
集训练过的神经网络可能无法检测出初始训练数据集中存在的但行为发生变化
的攻击类型。如果神经网络对包含攻击行为发生变化的新训练数据集进行再学习,
而新训练数据集与初始训练数据集差异较大,那么会导致新训练完的神经网络会
遗忘初始训练集中攻击行为的知识。
(3)模型较复杂带来的性能问题:当需要检测的攻击类型较多时,需要采
集的数据特征也会相应增多,那么会导致单个神经网络的结构变得复杂,从而带
来该神经网络的训练时间长、实时检测时计算效率低等问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种SDN网络上实现DANN
在线训练系统,克服现有ANN的可扩展性不好,再学习能力差,模型较复杂带
来的性能问题,实现ANN自动训练、自动检测功能。
为了实现本发明目的,采用的技术方案如下:
一种SDN网络上实现DANN在线训练系统,包括数据采集模块、DANN输
入层模块、DANN通信模块、DANN隐藏层模块、DANN输出层模块、输出反
馈模块,数据采集模块的输出端与DANN输入层模块的输入端连接,DANN输
入层模块通过DANN通信模块与DANN隐藏层模块连接,DANN隐藏层模块通
过DANN通信模块与DANN输出层模块连接,DANN输出层模块通过DANN
通信模块与输出反馈模块连接,且DANN输入层模块、DANN隐藏层模块、DANN
输出层模块、输出反馈模块两两模块之间均通过DANN通信模块连接。
待训练的数据流经过数据采集模块,再通过DANN通信模块分别经过
DANN输入层模块、DANN隐藏层模块、DANN输出层模块、输出反馈模块,
以总样本实际输出总误差数小于设定允许的最大误差为训练结束条件,当达到该
条件时,则训练结束。本系统可以在交换机中一次部署多个神经元,或者根据
需要多次部署神经元,根据网络状态选择神经元构造多个神经网络。系统神经网
络不断用最新的历史数据在线训练获得新权值。系统不断在线学习,更新权值,
即可克服可扩展性不好,在学习能力差,模型较复杂的性能问题。
一种在SDN网络上实现DANN在线训练的系统,其特征在于,包括数据采
集模块、DANN输入层模块、DANN通信模块、DANN隐藏层模块、DANN输
出层模块、输出反馈模块,数据采集模块的输出端与DANN输入层模块的输入
端连接,DANN输入层模块通过DANN通信模块与DANN隐藏层模块连接,
DANN隐藏层模块通过DANN通信模块与DANN输出层模块连接,DANN输出
层模块通过DANN通信模块与输出反馈模块连接,且DANN输入层模块、DANN
隐藏层模块、DANN输出层模块、输出反馈模块两两模块之间均通过DANN通
信模块连接;该系统以总样本实际输出总误差数小于设定允许的最大误差为训练
结束条件,当达到该条件时,则训练结束。
优选地,所述数据采集模块采集openflow交换机内数据包,采集数据包是
过去若干天内交换机的历史数据,提取数据包特征值作为训练样本,归一化存储;
训练结束后采集openflow交换机实时数据,用已训练权值的DANN做实时攻击
检测,同时存储交换机实时数据作为下一次DANN训练的样本。
优选地,所述的DANN输入层模块各神经元读取训练样本编码后发送给
DANN隐藏层模块的各神经元;DANN输入层模块各神经元接收输出反馈模块
反馈信息,根据反馈信息决定是否需要继续读取样本,训练结束后DANN输入
层模块接收数据采集模块实时数据编码后发送给隐藏层各神经元。
优选地,所述的DANN通信模块是将数据用UDP发送给下一层各神经元中,
发送完毕后使用UDP接收来自下一层各神经元和输出反馈模块反馈回来信息和
数据。
优选地,所述的DANN隐藏层模块将接收的数据进行解码存储与随机权值
计算,选择激活函数计算得出结果,并将结果编码发送给DANN输出层模块各
神经元,发送完毕后接收来自DANN输出层模块各神经元传输回来的数据包括
反传误差权值和输出反馈模块所返回的信息,
当样本没全部输入,则保存每条样本反馈回来的反传误差、权值和输入数据,
当输入一次全训练样本且训练还没结束,则根据接收的反传误差、权值、输入数
据更新权值;训练结束后,系统保存和使用最新的权值用来检测网络。
优选地,所述的DANN输出层模块对DANN隐藏层模块各神经元发送来的
结果进行解码,与输出层随机权值相乘,选取激活函数计算可得到输出均
方误差E(p)、反传误差均方误差E(p)发送给输出反馈模块,反传误差
和权值发送给DANN隐藏层模块,DANN输出层模块各神经元接收输出反
馈模块所反馈的信息决定是否更新权值。
优选地,所述的输出反馈模块接收DANN输出层模块各神经元发送的均方
误差E(p)并保存,样本全部输入后累加E(p)得到ET,ET与设定最大均方差ε比较,
如果不满足要求,即ET>ε,则反馈给DANN隐藏层模块和DANN输出层模块需
要下一次权值更新,如果满足要求,即ET<ε,则反馈给DANN隐藏层模块和
DANN输出层模块停止权值更新,保存权值,反馈给DANN输入层模块接收采
集openflow交换机实时数据,开始网络实时攻击检测。
优选地,所述系统还有DANN测试模块,训练完毕后,神经网络保存训练
权值,观察每条新采集数据输入ANN对应的输出结果是否正确,统计不正确的
检测结果,错误和漏报率超过一定比例需要重新训练。
所以本发明的突出优点克服ANN的可扩展性不好,再学习能力差,模型较
复杂带来的性能问题,实现ANN自动训练、自动检测功能。
附图说明
图1为本发明的系统总体结构示意图;
图2为虚拟ANN结构的示意图;
图3为本发明的数据采集模块结构示意图;
图4为本发明的DANN通信模块结构示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
本发明的系统总体结构示意图附图1所示,附图2为虚拟ANN结构的示意
图,附图3为数据采集模块结构示意图,附图4为DANN通信模块模块结构示
意图。
本发明的实施以BP神经网络Sigmoid激活函数3层模型为例如下:
1、总体系统构成
附图1所示,它包括数据采集模块、DANN通信模块、DANN输入层模块、
DANN隐藏层模块、DANN输出层模块、输出反馈模块。
附图2所示为虚拟ANN结构的示意图,为一个ANN1_3_2_2的例子。网络
中交换机虚拟创建神经元进程,不同交换机间的神经元通过DANN通信模块,
在虚拟连接间传递ANN的内部信息,以此形成DANN网络。
2、具体模块的详细介绍
1)数据采集模块
附图3所示,采集存储openflow交换机内数据包,数据包是过去10天交换
机内历史数据,每条样本提取特征值是过去10天内交换机每10s内各个特征数
据比例。10s内数据包中可提取的特征值有:ICMP数据包占总的数据包的比例
关系、UDP数据包占总的数据包的比例、TCP数据包占总的数据包的比例关系、
UDP数据包中不同的目端口数与UDP数据包的比例关系、TCP数据包中带有的
SYN标志的和带有ACK标志的数据包的比例关系、TCP数据包中不同的目端口
数与TCP数据包的比例关系等。输入层各神经元读取样本某一特征值作为输入。
2)DANN输入层模块
输入层神经元接收交换机内采集的数据。例如1号神经元接收Switch1中的
采集样本icmp包占包总数特征值,2号神经元接收Switch3中的采集样本tcp包
占包总数特征值等等。输入神经元越分布,对整个SDN网络系统检测效果越好,
对应的训练越准确。
3)DANN通信模块
附图4所示,DANN各层神经元之间需要通信,同一层神经元之间不通信,
通信方式采用UDP协议+定时器+编码方式来解决。DANN1_3_2_2的第一个数
字表示第几号神经网络,第二个数字为共几层,第三个数字表示所处的层,第四
个数字表示所处层的第几号神经元。输入层将要发送的数据使用UDP发送给下
一层各神经元,发送完毕后用UDP接收下一层各神经元和输出模块反馈回来信
息和数据。隐藏层各神经元等待接收输入层各神经元数据,计算后发送到输出层
各神经元。发送完毕后用UDP接收下一层各神经元和输出模块反馈回来信息和
数据。输出层各神经元和隐藏层各神经元相似。输出反馈模块接收输出层各神经
元均方误差,总样本一轮训练完后反馈给各神经元是否训练完毕,是否权值更新。
4)DANN隐藏层模块
隐藏层接收输入层各神经元发送过来数据x=(x0,x1,x2,…,xn)T,并与初始化随
机权值w1=(w0j,w1j,w2j,…,Wnj)T得到输出其中
其中x0=-1,为隐藏层第j号神经元阀值,为隐藏层第j号神经
元输出,f为激活函数Sigmod。发送给下一层各神经元后,接收和存储下一层
各神经元反馈回来的输出反馈模块反馈回来需要权值更新时计算
其中
i输入层第i个神经元,j隐藏层第j个神经元。
5)DANN输出层模块
DANN输出模块各神经元将接收隐藏层的输出结果进行解码,与输出层随
机权值相乘,激活函数计算得到输出E(p)、发送给隐藏层,
E(p)发送给输出反馈模块。接收反馈模块反馈信息是否更新权值
其中:
为输出层第l个神经元阀值,j为隐藏层第j号神经元,l为
输出层第l号神经元,α为学习率。
6)输出反馈模块
输出反馈模块接收输出层各神经元发送各样本均方误差E(p)累加得到ET与
设定最大均方差比较,如果不满足要求(ET>ε),反馈给隐藏层和输出层需要下
一次权值递归,如果满足要求(ET<ε),反馈给隐藏层和输出层停止权值递归,
保存权值。
其中:
P为样本总数,m输出神经元个数。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非
是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明
的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施
方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进
等,均应包含在本发明权利要求的保护范围之内。