前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯毕业设计-基于深度学习的网络流量异常检测系统
课题背景和意义
随着科技的发展,互联在世界范围内越来越普及,逐渐成为人类活动中的基础 设施。网络在人们的生活与经济发展中都扮演着重要作用。截止至 2020 年 12 月, 据《中国互联网发展状况统计报告》的调查显示,中国网民数量超过 9 亿大关, 达到了 9.8899 亿的规模,占全国人口的 70.4%。互联网因为开放性、传递性、自由性和共享性在全世界范围内被广泛接受和应用于生活中,也正因为开放性和自由 性给网络空间带来巨大的安全隐患。近年来网络安全事件呈现逐年增长的趋势,给 网络安全和网络秩序造成了巨大威胁,同时也给社会造成了巨大的经济损失。2013 年,“棱镜门”事件被公之于众,表明我国的网络安全常年受到美国网络攻击的严 重威胁。在当前设计一套网络流量入侵检测系统同时满足高准确性和低 系统延时的需求来应对日益增多的网络攻击问题,为用户提供一个具备安全性与 稳定性的网络环境,已经成为一个在网络安全领域十分重要的课题。
实现技术思路
一、相关技术与理论介绍
入侵类型介绍
1、拒绝服务攻击
拒绝服务攻击 (Denial of Service Attacks,Dos Attacks) 是黑客向服务器发送大量 垃圾数据流量,以达到占用目标服务器的带宽和链接请求的目的。
2、远程用户攻击
远程用户攻击 (Remote to Local Attacks, R2L) 指的远程机器非法访问本地机器 的攻击。攻击者利用目标主机本地一组漏洞获得一些非法的访问权限。
3、提权攻击
提权攻击 (User to Root Attacks, U2L) 通常指的是攻击者利用一组漏洞,让无特 权的的用户得到目标主机的 root 权限,root 权限是计算机的最高权限。
4、探测攻击
探测攻击 (Probe),它的主要目的是利用特定是手段和方式搜集目标主机的属 性和信息。
网络流量异常检测技术分类
1、基于数理统计的网络流量异常检测
基于数理统计的网络流量异常检测方法会对每个被检测的对象生成一个当前 活动简档和历史活动简档。活动简档记录着每个对象日常行为记录,包括监控对象 的网络流量审计数据的分布信息、监控对象的活跃度等。
2、基于数据挖掘的网络流量异常检测
基于数据挖掘的网络流量异常检测方法是建立在大量的数据基础上,通过分 析或者建模等手段,将数据之中潜在规则或者隐藏的模式给挖掘出来。一些经典 常用的算法包括基因算法、归纳规则算法等。
3、基于机器学习的网络流量异常检测
在机器学习领域,传统机器学习算法和深度学习算法是两个更加具体的分支。 在过去的很长一段时间里,大量的研究都集中在传统机器学习算法中,目前已经存 在许多经典且十分优秀的算法,相关的理论也十分完备,因此传统机器学习在网络 流量异常检测领域已经积累了大量的研究和应用实践经验
传统机器学习常见模型
1、逻辑回归
回归任务指的是预测值为一个连续值,如房价预测、温度预测等都属于回归任 务。逻辑回归虽然名称中含有” 回归” 二字,但是逻辑回归是属于二分类算法,广 义上是属于线性回归模型。逻辑回归由于其简单、高效和具有较强的可解释性的 特点被广泛应用于工业界。逻辑回归的函数形式如公式所示。
2、支持向量机
支持向量机 (Support Vector Machine, SVM) 与逻辑回归模型一样,也是一个二 分类模型。逻辑回归的本质是寻找一个超平面将样本划分成两个不同类别,而 SVM 同样是学习一个超平面将样本划分成两个类别,但是在求解这个超平面的时候需 要满足“间隔最大化”的约束条件。
在最大间隔 距离 margin 可以由公式表示。为了使得 margin 最大化,相当于最小化 ∥W∥。
同时考虑到约束条件,如公式所示。
那么求解 SVM 的的问题可以转化为求解公式,即求解目标函数 J(W) 的最 优解。公式可以理解为在两个约束条件下求参数 W 的最优解,在高等数学中 可以使用拉格朗日乘数法求解。
3、随机森林
随机森林 (Random Froest, RF) 是一种基于 bagging的经典算法,同时也是 一种集成算法。由于其具备较高的准确性和泛化性,已经被广泛应用于各种回归任 务与分类任务中。
4、LightGBM
LightGBM 是微软提出的一种基于 GBDT 的算法,同时也是一种 boosting[41] 算法。该算法主要解决的是 GBDT 在海量数据中训练速度慢的问题。
深度学习理论基础
1、感知机理论
感知机 (Perceptron Learning Algorithm, PLA)是神经网络的基础,因其能简 单的模拟人脑的电信号,所以又被称为“人工神经元”。
感知机的输入可以接收多 个信号,输出为一个信号。感知机的信号只有 0 或者 1,分别对应物理意义为不传 递信号和传递信号。如图:
在整个计算过程中,每个输入与权重相乘,下一个神经元 会计算传递到当前信号的总和,即 y = x1 ∗ w1 + x2 ∗ w2。当这个总和超过一定阈值,则输出 0,反之输出 1。对应的数学公式如所示。
2、激活函数
多层感知机本质上是一种多重的线性变换,不具备非线性表达能力。因此加 入激活函数能够让多层感知机具备非线性的表达能力。下面具体介绍 4 种激活函数:Sigmoid、 Tanh、Relu 和 LeakyRelu。
①Sigmoid
公式是 Sigmoid 的数学表达式
其图像如图所示。
②Tanh
公式是 Tanh 的数学表达式
其图像如图所示。
③Relu
激活函数的数学表达公式如公式所示
其图像如图所示
④LeakyRelu
LeakyRelu是一种在 Relu 基础上改进的激活函数。Relu 属于非饱和型一类 中的激活函数,当 x>0 时,梯度与 x 正相关,梯度一直会保持在一个健康的状态。 然而当 Relu 激活函数在 x<0 的部分,函数的梯度始终保持为 0,在这种情况下由 于梯度始终为 0,那么参数无法更新,造成神经元失活的问题。
3、Dropout
深度神经网络模型越复杂,参数量也会增多,增加了模型在训练过程中过拟合 的风险。过拟合问题指的是在训练集和测试集基本保证独立同分布的情况下,在 训练过程中,模型在训练集上的损失不断降低,相关指标在不断优化,而在测试集 上的相关指标变得越来越差,这说明模型已经过拟合了。
4、批归一化
批归一化 (Batch Normalization,BN) 的提出主要是用于解决协变量偏移的 问题。BN 的思路主要思路是在每次迭代的过程中,针对每一批次的数据,将每个 特征的分布变成均值为 0,方差为 1 的分布。
5、卷积神经网络
LeNet-5是卷积神经网络的开端,图2.8展示的 LeNet-5 的模型结构。卷积神 经网络因卷积层的卷积操作而得名。一个完整的卷积神经网络,除了卷积层,还主 要包括池化层和全连接层。
二、基于深度学习的网络流量二分类模型
网络流量二分类模型 本文提出的二分类异常检测模型的网络结构如图所示。样本的特征可包含 两部分:离散特征和连续值特征。首先将离散特征送入 embedding 层,利用 embedding 层将离散特征经过变换映射到另一个低维的特征空间中,从而得到稠密且 低维的特征向量。
Embedding 层 每条网络流量视作一个样本,一条网络流量有若干个特征,每个特征依据它们 的属性可以划分为类别型和数值型。数值特征经过归一化后,可以直接作为神经 网络的输入。
2、自注意力机制层
Transformer 和 RNN 系列的模型都可以很好的处理时序问题。Transformer 与 RNN 类模型最大的区别在于前者能够实现并行训练,而后者只能串行训练,这得 益于 Transformer 中的自注意力机制。自注意力机制的计算公式如所示。
3、批归一化层
内部协变量偏移是指在网络训练过程中,内部中间数据的分布发生了偏移。在 深度学习中数据服从独立同分布是一个十分重要的前提假设,因此数据分布的不 断变化,会降低模型的收敛速度。
解决数据分布不一致的问题可以使用白化操作解决。白 化操作可以分为两种:PCA 白化和 ZCA 白化。PCA 白化是针对每一个特征做标准 差归一化,其公式如所示。
ZCA 白化是在 PCA 白化的基础之上,将变换后的特征转换到原始的坐标空间中。ZCA 的计算公式如所示。
三、网络流量异常检测系统
服务器 服务器部分主要是用于部署算法模型和对实时流量经行预测的一个重要模块。 该模块主要包括离线数据处理模块和流量分类模块。离线数据处理主要用于数据 预处理,流量分类模块主要使用二阶段的模型将网络流量分类。
离线数据处理模块
离线数据处理模块主要是针对模型训练而言。实时的网络流量数据不能直接作 为二分类模型和多分类模型的直接输入,所以首先需要将流量数据进行预处理。这 些数据经过数据处理模块,得到的输出能够直接作为模型的输入。
归一化操作采用的是线性函数归一化 (Min-Max scaling),公式如所 示。
系统会保存一个字典维护每个连续值特征的最大值与最小值,字典形式如下。 在模型预测阶段,网络流量需要根据训练集中的取值范围来进行归一化。
终端
终端是系统使用者对网络流量进行监测和预警的,其功能部分主要包括在线 数据处理模块、流量处理模块以及可视化模块。在线数据处理模块用于实时的将 数据处理成模型可接受输入的格式,流量处理模块将流量按照预测的类型经行不 同的处理,如果流量为异常,那么对异常流量进行拦截,否则放行。
1、在线数据处理模块
在系统对流量进行预测时,实时的网络流量需要处理成和训练集一样的格式 才能输入到流量分类模块中,调用模型进行预测。在线数据处理模块同样包含两个 步骤,类别特征数值化和归一化操作。改进后的线性归一化公式所示。
2、流量处理模块
流量处理模块从服务器中接收到服务端流量分类模块的结果。如果预测流量 的标签为正常,那么放行该流量;如果是异常流量,那么会生成一个告警信息并且 拦截该流量。
3、可视化界面
可视化模块用于对网络流量异常情况的实时展示,包括实时网络流量异常情 况和历史网络流量的统计数据。通过可视化模块,用户能够更加及时的关注网络 流量的实时动态信息,提高用户对软件的使用感受。可视化模块使用 Python 语言 实现,采用的是 Django 框架。终端界面如所示。
实现效果图样例
网络流量异常检测系统:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!
最后
版权归原作者 HaiLang_IT 所有, 如有侵权,请联系我们删除。