智能性能阈值监测的设计实现方案
项目名称:智能化网管技术预研项目
文档编号:DTM4.387.G92SJ
版本号:V1.0.0
作者:陈怡
审核:
批准:
版权所有
大唐移动通信设备有限公司
本资料及其包含的所有内容为大唐移动通信设备有限公司(大唐移动)所有,受中国法律及适用之国际公约中有关著作权法律的保护。未经大唐移动书面授权,任何人不得以任何形式复制、传播、散布、改动或以其它方式使用本资料的部分或全部内容,违者将被依法追究责任。
模板更新记录
|
日期 |
更新人 |
版本 |
备注 |
|
|
陈怡 |
|
|
|
2018.10.10 |
陈怡 |
V1.0.0 |
创建初稿 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
目录
1 引言.... 1
1.1 编写目的... 1
1.2 预期读者建议... 1
1.3 参考资料... 1
1.4 缩写术语... 1
2 智能性能阈值监测的设计实现方案.... 2
2.1 智能化网管整体架构... 2
2.2 智能性能阈值监测架构... 2
2.3 基于随机森林算法的性能阈值监测实现: 3
2.4 基于LSTM神经网络算法的性能阈值监测实现: 5
3 接口参数定义.... 6
3.1 基于随机森林算法的性能阈值监测实现的接口定义... 6
3.1.1 模型训练阶段接口定义... 6
3.1.2 模型使用阶段接口定义... 7
3.2 基于LSTM算法的性能阈值监测实现的接口定义... 8
3.2.1 模型训练阶段接口定义... 8
3.2.2 模型使用阶段接口定义... 8
4 遗留问题.... 9
1 引言
1.1 编写目的
按照《5G接入网OMC网管架构研究报告》中关于需支持基于人工智能技术的智能网管功能要求,结合《机器学习的技术应用与框架研究报告》中引入机器学习算法来进行阈值动态化的异常检测,在本文中描述了具体算法模型的应用落地方案以及外围支撑系统的实现方案,重点阐述和实现相关的核心内容以及技术细节。
1.2 预期读者建议
项目经理、研发经理、研发人员与测试人员等。
1.3 参考资料
《机器学习实战》人民邮电出版社,Peter Harrington著 李锐等译
《5G接入网OMC网管架构研究报告》
《机器学习的技术应用与框架研究报告》
1.4 缩写术语
Python:是一种面向对象的解释型计算机程序设计语言,众多开源的科学计算软件包都提供了Python的调用接口。
NumPy: 是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
SciPy:是一款方便、易于使用、专为科学和工程设计的Python工具包。它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。
Scikit-Learn: 是用Python开发的机器学习库,其中包含大量机器学习算法、数据集,是数据挖掘方便的工具。
TensorFlow:是谷歌基于DistBelief进行研发的第二代人工智能学习系统,提供有python工具包,支持CNN(卷积神经网络)、RNN(循环神经网络)和LSTM算法。
LSTM:(Long Short-Term Memory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。
2 智能性能阈值监测的设计实现方案
2.1 智能化网管整体架构
对传统网管系统(EMS)进行架构与技术扩展,设置独立数据接口,通过数据接口对数据进行统一处理和格式化,在原有传统数据库的基础上,同时引入分布式存储系统,适应大数据业务场景要求,通过构建智能运维中心为传统的管理运维业务添加智能化计算和响应能力。
图1 智能化网管整体架构图
2.2 智能性能阈值监测架构
智能性能阈值监测架构如下图2所示,主要分为3层:
数据源层:通过数据接入系统接入数据,接入数据的方式主要分为两种:一种是从数据库直接拉取,一种是通过接口读取网管性能报表,对原始数据源进行数据清洗,进行初步的提取特征,即统一对数据进行格式化。
模型体系层:对数据源层提供的数据进行二次特性提取,过滤掉不合理的数据记录,通过特征变换后,将特征连同设置好的训练参数传入对应的算法接口,进行模型训练,对训练出来的模型进行评估,根据评估结果决定继续模型训练还是将模型输出给应用体系予以应用。
应用体系层:将应用数据导入训练好的模型,进行结果预测,生成结果数据。
图2 智能性能阈值监测架构图
2.3 基于随机森林算法的性能阈值监测实现:
如图3所示:对于从数据接入系统获取的数据,对其进行随机森林的模型训练。
输入特征值为:DN,时间,RRC连接成功率相关的性能指标(包括RRC紧急呼叫连接次数,高优先级RRC连接次数,被叫接入类RRC连接次数,主叫信令类RRC连接次数,主叫数据类RRC连接次数)
输出值为:RRC连接成功率阈值
图3:随机森林的训练过程
如图4所示:迭代训练出专家知识库的机器学习模型,对于新生的未设置阈值的数据,根据其输入值(DN,时间,RRC性能指标)回归得出阈值,根据RRC性能指标计算得出RRC接通率阈值,统一交由上层应用管理系统。
图4:使用模型回归数据
2.4 基于LSTM神经网络算法的性能阈值监测实现:
见图5:对于数据接入系统传来的报表文件,我们以时间粒度为基准生成报表并传递文件,因此根据此数据回归得出的阈值为准实时的。利用循环神经网络的变体LSTM,依据过去产生的数据进行模型训练,以此来预测未来的数据,并对数据进行分析,做到实时告警。
搭建LSTM神经网络,对数据进行预处理,以DN分类,按时间排序,生成指定DN的时间序列数据。
对于处理好的数据,以时间为序,五个为一组组成输入值,第六个为输出值,训练神经网络,使得神经网络可以根据前五个值推导出第六个值,对阈值进行神经网络模型训练。
图5:神经网络的生成
如图6所示:依据报表传来的数据,解析并使用训练好的神经网络模型对将来时刻的数据进行预测分析,得出预测的RRC接通率阈值,达到实时或提前告警的作用。
图6:神经网络的使用
3 接口参数定义
3.1 基于随机森林算法的性能阈值监测实现的接口定义
3.1.1 模型训练阶段接口定义
接口名称:def StartForestTrain(filename,modelname)
filename:训练数据文件名,
modelname:训练模型保存地址。
训练随机森林算法模型的数据格式及其含义如下:
|
字段名称 |
字段类型 |
字段说明 |
|
DN |
Varchar2(64) |
网元标识 |
|
BEGIN_TIME |
Date |
上报时间 |
|
R001_013 |
Number |
RRC连接建立请求次数-紧急呼叫 |
|
R001_014 |
Number |
RRC连接建立成功次数-紧急呼叫 |
|
R001_015 |
Number |
RRC连接建立请求次数-高优先级 |
|
R001_016 |
Number |
RRC连接建立成功次数-高优先级 |
|
R001_017 |
Number |
RRC连接建立请求次数-被叫 |
|
R001_018 |
Number |
RRC连接建立成功次数-被叫 |
|
R001_019 |
Number |
RRC连接建立请求次数-主叫信令 |
|
R001_020 |
Number |
RRC连接建立成功次数-主叫信令 |
|
R001_021 |
Number |
RRC连接建立请求次数-主叫数据 |
|
R001_022 |
Number |
RRC连接建立成功次数-主叫数据 |
|
RRC_THRESHOLD_RATE |
Number |
RRC连接成功率阈值 |
3.1.2 模型使用阶段接口定义
接口名称:def UseForestModel(featurefilename,modelname)return result
filename:特征数据文件名,
modelname:模型加载地址。
Result:结果阈值
使用随机森林算法模型的特征数据格式及其含义如下:
|
字段名称 |
字段类型 |
字段说明 |
|
DN |
Varchar2(64) |
网元标识 |
|
BEGIN_TIME |
Date |
上报时间 |
|
R001_013 |
Number |
RRC连接建立请求次数-紧急呼叫 |
|
R001_014 |
Number |
RRC连接建立成功次数-紧急呼叫 |
|
R001_015 |
Number |
RRC连接建立请求次数-高优先级 |
|
R001_016 |
Number |
RRC连接建立成功次数-高优先级 |
|
R001_017 |
Number |
RRC连接建立请求次数-被叫 |
|
R001_018 |
Number |
RRC连接建立成功次数-被叫 |
|
R001_019 |
Number |
RRC连接建立请求次数-主叫信令 |
|
R001_020 |
Number |
RRC连接建立成功次数-主叫信令 |
|
R001_021 |
Number |
RRC连接建立请求次数-主叫数据 |
|
R001_022 |
Number |
RRC连接建立成功次数-主叫数据 |
使用随机森林算法模型的结果数据格式及其含义如下:
|
字段名称 |
字段类型 |
字段说明 |
|
RRC_THRESHOLD_RATE |
Number |
RRC连接成功率阈值 |
3.2 基于LSTM算法的性能阈值监测实现的接口定义
3.2.1 模型训练阶段接口定义
接口名称:def StartLSTMTrain(filename,modelname)
filename:训练数据文件名,
modelname:训练模型保存地址。
训练LSTM算法模型的数据格式及其含义如下:
|
字段名称 |
字段类型 |
字段说明 |
|
DN |
Varchar2(64) |
网元标识 |
|
BEGIN_TIME |
Date |
上报时间 |
|
RRC_THRESHOLD_RATE |
Number |
RRC连接成功率阈值 |
3.2.2 模型使用阶段接口定义
接口名称:def UseLSTMModel(featurefilename,modelname)return result
filename:特征数据文件名,
modelname:模型加载地址。
Result:结果阈值
目前我们是拿5个值进行训练的,即每个间隔15分钟,因此当我们要预测当前时间粒度的阈值时,我们就需要传入单个网元标识的前5个粒度的阈值数据作为特征输入。
使用LSTM算法模型的特征数据格式及其含义如下:
|
字段名称 |
字段类型 |
字段说明 |
|
DN |
Varchar2(64) |
网元标识 |
|
BEGIN_TIME |
Date |
上报时间 |
|
RRC_THRESHOLD_RATE |
Number |
RRC连接成功率阈值 |
使用LSTM算法模型的结果数据格式及其含义如下:
|
字段名称 |
字段类型 |
字段说明 |
|
RRC_THRESHOLD_RATE |
Number |
RRC连接成功率阈值 |
4 遗留问题
目前仅考虑了单指标指定特征的算法模型,以后可以考虑引入多指标不同特征的算法模型。