基于深度学习的移动网络异常检测

2023-05-16


1、文章信息

文章题为《Detection of mobile network abnormality using deep learning models on massive network measurement data》,是发表在Computer Networks期刊上的一篇关于网络异常检测的文章。


2、摘要

近年来,随着移动网络用户地不断增长,基于专家经验和阈值分析的传统方法已经难以满足网络维护的需要。这些传统的方法暴露出许多弱点,如主观性、差异性和不一致性。

  • 主观性具体:专家在分析网络时,主要关注投诉最多的移动网络小区(Mobile Network Cell),进行主观判断,会忽略一些潜在异常小区。

  • 差异性:有时专家可能会得出不同结论,若没有一个标准,很难得到一个统一的结论。

  • 不一致性:由于一些移动网络单元可能会自动恢复,专家的判断可能会随着时间的推移而失效。此外,专家系统通常需要很长时间才能产生结果。

本文提出了一种利用海量移动数据替代专家系统的深度学习方法(VAE/LSTM+XGBoost)。利用网络测量数据伪标签对监督学习模型进行训练,帮助深度学习模型进行特征选择。通过大量的实验和分析,证明了该方法在异常检测方面的有效性,并取得了比传统专家系统更好的性能。如下图所示,对比了传统的检测方法以及文章提出的检测方法。

2c30aa5fa310a247e4f376d9dbb0be32.png


3、文章结构

  1. 首先提出了在网络异常检测中常用的专家检测方法的缺陷与不足,并分别介绍了传统的网络异常检测模型,基于深度学习的异常检测方法,以及SDN(Software-Defined Networking)检测方法。同时提出了本文的基于深度学习的异常检测模型。

  2. 描述了数据的获取与预处理的方法,以及定义了如何判断网络异常。

  3. 提出了基于深度学习的网络异常检测模型。

  4. 输入具体数值,验证模型的有效性。


4、模型结构

方法的整体流程如下所示。

0763e88cbe6ee165ec963a5a93a746eb.png

数据处理模块(Data Collection),收集了大量的测量数据,文章设计了一个测量数据计数结构,用于收集不同的LTE cells的测量数据,该结构如下图所示。

f0098f36ff52b78f87ed0aa37eac85c4.png

每个测量结果来自一个特定的Measurement Object,每个Measurement Object由多个Measurement Unit组成。共有四种收集方式:累计计数器(收集数据的累积值,如RRC connection establishment attempts);动态计数器(收集动态变换的数据,如E-RAB建立的最长时间);DER (Discrete Event Registration)(如平均E-RAB设置时间);状态检测(收集类似于平均E-RAB连接时间的数据)

伪标签生成模块(Pseudo-labels Generation)与XGBoost Training模块,LTE cells多维异常检测的一大难题就是缺乏标签,在处理好缺失值之后,文章通过伪标签生成和非监督的方式(即XGBoost)解决这一问题。具体步骤,首先,使用6西格玛规则检测21项指标(经过预处理后得到的目标指标)中哪项在历史上(过去一周或今天)有异常。然后,利用模拟的专家规则判断移动网络小区是否存在异常。如下图所示。

9073c57b6a7f256844ed7e0816255d0d.png

处理好的伪标签,用于训练XGBoost(Extreme Gradient Boosting)。(XGBoost是一种集成树模型。该算法采用boosting方法对多个弱树模型进行序列训练,并使用损失函数的负梯度来拟合当前模型的残差。)

特征选择(Feature Selection),在训练好XGBoost之后,文章通过重要性得分(Important Score)来选取所需的特征。该得分可以直接获取,即若一个特性(feature)对分裂点的性能提高得越大(即,离树的根节点越近),其重要性得分就越高。

深度学习模块(Deeplearning Model)与拟专家规则模块(Simulated expert rule),深度学习部分主要采用VAE与LSTM。VAE是一种神经网络,经常用于重构未标记数据,也是一种包含变分网络和生成网络的生成神经网络模型,其结构如下图所示。

9c6de54da2c3df60f07e5f97e347c1fc.png

文章考虑到LSTM是前向传播,在训练时增加了额外的24小时数据。LSTM结构如下图所示。

da9b052a0f83b3ceb7d5d7d36984b7a5.png

文章使用VAE和LSTM来生成多维指标的期望值。通过计算期望值与历史值之间的绝对误差,可以得到异常指标。整个过程如下图所示。

e87309f7fdd4c800d978ed5c497f82b8.png


5、实验结果及分析

文章提出了一种新的检测指标Corr来评价检测异常的能力,通过构造两个集合,一个集合存储所有异常单元,一个集合存储所有正常单元,计算两个协方差,在计算比值即可得到。其具体反映了异常细胞组与正常细胞组的周期性差异的平均程度。

9bb3f9aeec57bf00247150e9ff569c22.png

其中Rn代表正常单元构成的集合,Ra代表异常单元构成的集合。

文章从两个角度验证了模型的有效性:一致性改进性

一致性是指文章提出的方法的大部分结果与专家系统一致,差异在合理范围内。在本部分中,我们使用6 西格玛的结果作为事实(ground truth)来计算精度和混淆矩阵。

改进性是本文的另一个关键评价指标,表明该方法在异常检测方面比专家系统有更好的性能。本文使用评价指标Corr和对样本的可视化分析来证明我们的方法对潜在的异常细胞有更强的检测能力。

文章最后选取21个特征中的19个作为有效特征,进行验证,baseline为专家系统,结果如下。

4e3aa047316b23c578bb12af759bb5d3.png

4fa9254ff076e7648649fccb6a0e4b2f.png

c7ba5fe80fdfd3c97fefe5d1a9b5801d.png

Attention

如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于深度学习的移动网络异常检测 的相关文章

随机推荐

  • 梯度下降方法中的学习率(learning rate), 衰减因子(decay) 冲量(momentum)

    本文总结自如下两个链接的内容 xff0c 建议读者直接阅读链接中的文章 1 https www jianshu com p 58b3fe300ecb 2 https www jianshu com p d8222a84613c 学习率 学习
  • Linux下Python 缩进 SyntaxError: 'break' outside loop

    这段代码将会报错 xff0c SyntaxError 39 break 39 outside loop 因为Python要求严格缩进 xff0c while循环的内容所有都必须缩进一空格 while循环体覆盖了剩下所有代码 因为if els
  • Linux ZRAM的简单介绍

    1 概念 zram 又称内存压缩 xff0c Linux kernel会把不常用的内存进行压缩 xff0c 以换出更多的内存供系统使用 平时空闲时候会做压缩 xff0c 以备不时之需 kernel 申请不到内存 xff0c 会触发压缩机制
  • 07 - 如何查看镜像及MySQL各环境参数的说明(Docker系列)

    本文章来自 知识林 在 06 分析docker run hello world xff08 Docker系列 xff09 一文中看到了docker run hello world xff0c 也描述了hello world是镜像名称 xff
  • Bootloader 相关概念理解及测试用例设计

    一 什么是Bootloader 单看单词 xff1a boot v 启动 xff1b loader n 装货设备 xff0c bootloader存在的意义就是指更新App程序 xff0c 以下简称bl 在14229规范中的Boot Sof
  • PixHawk飞控 配置参数

    PixHawk飞控 PixHawk是著名飞控厂商3DR推出的新一代独立 开源 高效的飞行控制器 xff0c 前身为APM飞控 xff0c 不仅提供了丰富的外设模块和可靠的飞行体验 xff0c 有能力的爱好者还可在其基础上进行二次开发 第一次
  • strcat函数--字符串连接函数

    strcat是STRing CATenate 字符串连接 xff09 的缩写 xff0c 调用strcat函数首先要有 lt string h gt 这个头文件 xff0c 它的作用是把两个字符数组中的字符串连接起来 xff0c 把字符串2
  • 最新使用深度相机D435i运行Vins-fusion并建立octomap八叉树栅格地图

    目录 一 xff0c 软件安装 二 xff0c 配置参数 三 xff0c 使用Vins fusion建立Octomap 四 xff0c 使用 DenseSurfelMapping建立Octomap 先决条件 Ubuntu 64 bit 16
  • 2022-10-13 js中数组删除对象

    JavaScript splice 方法 说明 xff1a splice 方法可删除从 index 处开始的零个或多个元素 xff0c 并且用参数列表中声明的一个或多个值来替换那些被删除的元素 数组 splice 数组索引下标 个数len
  • mmcv 报错undefined symbol: _ZNK2at6Tensor7is_cudaEv

    gt gt gt from mmcv ops import nms Traceback most recent call last File 34 lt stdin gt 34 line 1 in lt module gt File 34
  • 学校人力资源管理系统可行性分析

    学校人力资源管理系统可行性分析 一 技术可行性 硬件实施的可行性 xff0c 学校电脑配置相对较高 xff0c 可满足信息系统运行的需要 xff1b 学校可以采用常用的数据库应用程序开发工具实现学校内部的业务管理是完全可行的 xff0c 不
  • Jetson TX2 刷机教程(JetPack4.2版本)

    自从NVIDIA出现JetPack4 2 Ubuntu18 04 版本之后 xff0c 安装方式和之前就大不相同 xff0c 看了前面的几个安装版本之后 xff0c 感觉新版的好像安装起来更加简洁了 xff0c 只需要一个SDK就可以 xf
  • FactSystem设计思路

    Fact System 模块设计思路与学习总结 组成结构 FactSystem xff08 事件系统 参数系统 xff09 FactControls xff08 事件控制 xff09 FactPanelController xff08 事件
  • GPS设计思路

    GPS模块设计思路与学习总结 1 组成结构 Drivers src xff08 驱动程序资源包 xff09 gps helper xff08 GPS助手 xff09 ubx xff08 UBX协议 xff09 RTCM RTCMMavlin
  • ipv4和ipv6的区别

    ipv4 和ipv6 的区别本质在于它们的二进制表示位数 xff0c ipv4是用32位0 1序列来表示的 xff0c 而ipv6使用128位0 1序列来表示的 ipv4用32位 xff0c 为了方便人类记录和阅读 xff0c 我们通常将i
  • PHP字符串函数strrev(反转字符串)

    在PHP中 xff0c 字符串函数 strrev 用来反转字符串 函数语法 xff1a strrev string string string 函数参数说明 xff1a 参数描述string必需 规定要反转的字符串 strrev 用来反转字
  • STL(标准模板库)中class并不一定是“类”

    在模板库里面 xff0c 可谓 处处 皆模板 xff0c 当然了不是模板就不叫模板库了 xff0c 但是有一点经常让人忽视 xff0c 使用模板时候 xff0c 类就真的时候类 xff1f 也就是说class就真的是类 xff1f 答案是否
  • VS2008 和 MatlabR2015a 混合编程

    唉 xff0c 在做支持向量机分类优化实验的时候 xff0c 支持向量机的c 代码写的头疼 有些核函数和分类训练函数不会写 xff0c 搞得头疼 后来听同学介绍说matlab里面有包直接可以用 xff0c 我又去载了一个R2015a最新的m
  • 学习总结:C++中STL的数据结构

    1 STL介绍 STL xff08 Standard Template Library xff09 xff0c 即标准模板库 xff0c 是一个具有工业强度的 xff0c 高效的C 43 43 程序库 它被容纳于C 43 43 标准程序库
  • 基于深度学习的移动网络异常检测

    1 文章信息 文章题为 Detection of mobile network abnormality using deep learning models on massive network measurement data xff0c