论文部分内容阅读
随着人工智能的不断普及,其应用逐渐覆盖了各个方面。机器学习是实现人工智能最有效的方法之一。机器学习是使用算法来解析数据,从中学习,并对真实世界的事件做出决策和预测。深度学习(DL,Deep Learning)是机器学习领域的一个新的研究方向,深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征,在搜索技术,数据挖掘等相关领域取得了很多成果。深度学习在科学和工程领域同样获得了广泛的应用,例如生物信息学,医疗保健,网络安全等等。在这些领域中深度学习主要被用于做出一些重要决策。但是,实际工程当中并不能保证输入的数据都是已知的。根据研究显示,深度学习会错误的将一些未知类别分类为高置信度的已知类别,这些未知类别也被称为分布外数据(OOD,Out-of-Distribution)或异常。在某些领域中这些误分行为将会导致严重的后果。因此,如何检测出测试样本中的未知类别数据是非常有必要的。本文主要研究了面向网络流量的分布外异常检测技术,根据分布外数据的特点,分别提出了基于计算似然比的检测方法和基于马氏距离的检测方法。首先基于计算似然比的检测方法,通过训练两个模型来提高分类的可信度。使用分布内数据训练原始模型,通过对分布内数据加入噪声模拟OOD数据并以此训练扰动模型,从而计算样本通过两个模型的似然比判断是否属于OOD数据。由于基于计算似然比的方法过多依赖超参数,因此进一步提出了基于计算马氏距离的检测方法,通过计算原始样本和测试样本的马氏距离得分判断测试样本中是否含有分布外数据。为了测试本文提出的两种测试方法,通过使用公开流量数据集和采集的数据,分别使用BP神经网络,卷积神经网络,朴素贝叶斯,决策树,支持向量机等机器学习算法训练原始模型和扰动模型。实验结果显示,在第一种方法中,支持向量机算法得到的性能最佳,识别准确率可以达到92.1%,第二种方法的准确率也可达到95%。最后本文设计了一个原始模型更新系统,该系统会识别出测试样本中的分布外数据类型并将此加入到原模型中,提高原模型的鲁棒性。