模糊k均值算法和神经网络算法在入侵检测中的应用
2013-07-23夏淑华
夏淑华
湖南司法警官职业学院管理系 湖南 410131
0 引言
随着计算机技术和网络技术的迅速发展,黑客工具泛滥,大量的公司、企业和个人电脑遭到不同程度的入侵和破坏,给个人和企业财产带来了严重损失。入侵检测作为一种主动防御技术,已经成为网络安全防卫的重要组成部分。入侵检测通过对计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。随着智能计算技术的日趋成熟,人们利用BP神经网络、遗传算法及各种改进算法用于入侵检测系统的研究,开拓了一个新的入侵检测发展方向。
1 基于模糊k均值和神经网络的入侵检测算法
图1 基于模糊k均值和神经网络的入侵检测算法流程
BP神经网络具有较强的自适应学习能力、非线性映射能力和泛化能力,但是BP神经网络作为一种局部搜索的优化方法,也存在着收敛速度慢和容易陷入局部极小的问题。利用 K-means对样本数据聚类并提取训练集和测试集,能够克服样本不均和神经元个数过多的问题,尽可能满足类中的数据近似度高,各类间数据近似度低,提高神经网络训练时间和训练精度。图1为基于模糊k均值和神经网络的入侵检测算法流程。
2 基于模糊k均值和神经网络的入侵检测算法实现
为了验证基于模糊 k均值和神经网络算法的性能及效率,生成一个三层结构的神经网络,包括六个神经元的隐藏层。采用通用的入侵检测KDD CUP 99 数据集进行实验,对算法进行100次训练。算法实现的部分Matlab代码如下:
i=0;
M=[];
% while i<1 %设置一个循环用于计算5次平均误差
%% 生成神经元网络并训练神经元网络
numnue1=nuecell(clusternumb); %调用一下模糊聚类函数判断聚类个数,计算神经网络的神经元个数;
% net=newff(all_tra,all_bar,numnue1,{'tansig','purelin'},'trainscg');
net=newff(all_tra,all_bar,numnue1,{'tan sig','purelin'},'trainbfg'); %有弹回的BP算法,用于消除梯度模值对网络训练带来的影响,提高训练的速度
net=init(net); %初始化一个神经网络数据
net.trainParam.goal=0.000001; %设置相应的参数
net.trainParam.show=1;
net.trainParam.mc=0.9;
net.trainParam.lr=0.5;
net.trainParam.epochs=50;
[net tr]=train(net,all_tra,all_bar);%训练神经网络
MSE=tr.perf;
% figure(1);
% % plot(MSE);
% % axis([0 50 0 100]);
% % title('神经网络预测');
% % xlabel('x');
% % ylabel('y %误差度');
% % legend('训练集误差曲线');
plotming(tr);
%% 运用已训练好的网络进行预测
an1=sim(net,all_tra); %用训练的神经网络得到预测结果
C=all_bar-an1; %计算与真实结果的差距
B=abs(C); %绝对值运算
A=(B>0.5); %算出预测错误的个数
a=sum(A);
s_n=length(A);
p=(s_n-a)/s_n; %计算百分比
M(i+1)=p; %记录数据
i=i+1;
M_sumtrain=mean(M); %求多次预测的误差均值
dis('')
fprintf('训练集精度: %g%% ',M_sumtrain*100);
%%
i=0;
MSE=tr.perf;
an2=sim(net,all_test); %用训练的神经网络得到预测结果
C=all_theory-an2; %计算与真实结果的差距
B=abs(C); %绝对值运算
A=(B>0.5); %算出预测错误的个数
a=sum(A);
s_nu=length(A);
p=(s_nu-a)/s_nu; %计算百分比
M(i+1)=p; %记录数据
i=i+1;
% end
M_sumtest=mean(M); %求多次预测的误差均值
fprintf('测试集精度:%% ',M_sumtest*100);
通过实验得到了如表1所示数据,其中训练集精度为97.0928%,测试集精度为97.8777%。从测试结果来看,相比神经网络算法,基于模糊k均值和神经网络的组合算法识别率得到了一定程度的提高,能够快速、准确地对各种攻击方式进行学习训练,从而及时有效地检测、预报网络攻击。
表1 模糊k均值算法和神经网络算法预测实验结果
图2 基于模糊k均值和神经网络的入侵检测算法均方根误差
3 结束语
互联网的开放性使得计算机网络受到来自内外的攻击与挑战,针对网络数据中各个字段属性差异及其对产生入侵行为的作用不同,运用模糊k均值结合神经网络改进算法对网络数据建模,通过多次学习确定模型参数,从而对网络数据进行预测。实验表明提高了BP神经网络的训练速度和计算精度,算法具有较强的实用性。
[1]廖年冬.神经网络在入侵检测系统中的研究[D].贵州:贵州大学.2006.
[2]高新波.模糊聚类分析及其应用[M].西安:西安电子科技大学出版社.2004.
[3]唐正军.网络入侵检测系统的设计与实现[M].北京:电子工业出版社.2005.
[4]杨建刚.人工神经网络实用教程[M].浙江大学出版社.2001.
[5]郭翠英,余雪丽.基于神经网络的入侵检测模型[J].太原理工大学学报.2001.