A Comprehensive survey of machine learning for Internet (2018) via Boutaba,Mohammed et al【Sec 2】

这是AI for Net的一篇survey。



Section 2

A primer of AI for net

2.1 learning paradigm
  • ml-based
    • 监督式
    • 半监督式
    • 无监督式
      最适合做分类,例如网络中的异常值检测和密度估计问题可以涉及基于它们的相似性对不同的攻击实例进行分组。
  • agent-based
    - RL

2.2 Data collection
  • 两个阶段:离线和在线
    • 离线可以用历史数据或者找各种数据集合
      WITS\UCI KDD\ MAWI Traffic Archive\IMPACT Archive
      ( 更详细的介绍见Background Info
    • 综合利用离线和在线的可以考虑一些网络监测工具和协议
      SNMP\Cisco Net-Flow\IP Flow Information Export ( IPFIX )
      • 分成被动式检测和主动式检测
        主动式会造成带宽开销,被动式会造成额外的设备开销(检测设备,导出数据的接收设备)
        ( 详见Background Info
  • 数据集分解
    • training , validation , test datasets 各自的作用
    • 使用validation 和test set 的两种方法——hold out 与 k-fold

2.3 Feature engineering
  • 可以分很多粒度
    • 最粗的力度——packet level
      1. 包括包的统计信息(包括均值、方差、RMS,以及时间序列的一些信息(比如hurst指数))
      2. 好处:
        对采样数据不敏感,所以常用于数据收集和作为特征提取的干扰项
    • 流级特征 flow-level
      平均流持续时间,每个流的平均数据包数和每个流的平均字节数
    • connection-level
      用来推断连接的情况
    • 传输层的细节数据
      TCP连接头中的吞吐量和通告窗口大小

虽然这些特性会产生高质量的数据,但它们会产生计算开销,并且极易受到采样和路由不对称的影响

2.4 Establishing ground truth
  • 对数据打标签有很多方法可以借用
    DPIsee more \ Pattern matching (e.g.applictaion signatures) \Unsupervised ML techniques (e.g. Auto-Class using EM )

  • 应用程序签名(application signature)

    • 使用特征构建的,例如平均数据包大小,流持续时间,每个流的字节数,每个流的数据包数,均方根数据包大小和IP流量数据包有效负载[176,390]。
    • 平均数据包大小和流量持续时间已被证明是良好的鉴别器[390].
    • 加密流量的应用程序签名(例如SSH,HTTPS)从未加密的握手中提取签名。
    • 各类训练数据数量的不平衡违反了许多ML技术所保持的假设,即数据是独立的,并且是相对分布的。因此,通常需要通过应用欠采样,过采样,联合采集或整体采样技术来对抗类不平衡。

2.5 Performance metrics and model validation

  • 性能指标可用于测量模型的不同方面,例如可靠性,稳健性,准确性和复杂性。
  • 在本节中讨论ML模型在准确性方面的验证(参见表2),这是模型在网络问题中的适用性的一个关键方面。
    此外,准确性通常用作增量学习的反馈[389],以增加动态环境中的模型稳健性和弹性。
    准确度
  • 计算误差用来衡量精度
    • 分类问题中:binary and categorical cross-entropy

    • 回归问题:MAE \ MSE \ MAPE等,其中归一化RMSE(NRMSE)允许在不同规模上工作的模型之间进行比较,这与所描述的其他误差指标不同。

    • 高偏差:模型太简单,很难映射特征和结果之间的关系(欠拟合)

    • 高variable:ML模型适合训练数据,但不能很好地推广预先判断新数据(过拟合)

    • 改进方法:

      • 数据收集,用于获取更多训练数据(仅用于高variable)
      • 特征工程,用于增加或减少特征集
      • 模型学习,用于构建更简单或更复杂的模型,或用于调整正则化参数。
    • 传统的,用来衡量分类模型的准确性的一个指标:
      传统误差衡量指标

      • 然而,当数据相对于类别倾斜时,准确度度量是不可靠的。例如,如果与收件箱电子邮件相比,实际的推送电子邮件的实际数量非常小,则将每个电子邮件预测为收件箱的简单分类模型仍将实现高精度。所以一般使用使用混淆矩阵
        TN:(预测是)真的阳,预测是阳,实际也是阳
        FN:(预测是)假的阴,预测是阴,实际是阳

    记忆小tip:True & False 都是针对预测来说的

混淆矩阵适用于二元分类,多元分类问题我们可以使用one-vs-rest策略将其转换为多个二分类问题(see more)

tip : 多元分类不应该和多标签分类相混淆,多标签分类要为每个示例预测多个标签,即一个示例可以同时被归为多个类别。

由多元分类引出两个指标,召回率(TPR)和误报率(FPR)
召回率
(在所有真的里面,我们把真的找回了多少——关注我们做对了多少),又常被叫为:灵敏度(sensitivity)和检测率(detection rate)
误报率
(在所有假的里面,我们把错的漏掉了多少——关注我们做错了多少)

有点类似概率论里面的第一类误差和第二类误差

  • ROC图:TPR与FPR的比率。

    在ROC图中,TPR位于y轴上,FPR位于x轴上,良好的分类模型将产生具有高度正梯度的ROC曲线。这意味着FP的微小变化具有高TP。随着梯度接近1,ML模型的预测恶化,因为正确和不正确的预测的数量大致相同。
    应该注意的是,通过从模型[16]翻转预测或交换实际实例的标签,可以容易地改进ROC曲线中具有负梯度的分类模型。

  • AUC area under ROC curve(理想情况下为1)
    是模型中置信度概率(probility of confidence)的度量,用于准确预测实际阳性实例的阳性结果。所以,ML模型的精度可以正式定义为实际正实例的正确预测频率:
    在这里插入图片描述

    • 精度和召回率之间存在权衡。召回率高,把目标认成非目标的概率下降,但是把非目标认成目标的概率上升(有点像放低阈值的感觉);精度高,把非目标认成目标的概率下降了,但是识别出目标的几率上升了。例如:在二进制垃圾邮件分类器中,较高的召回率可以避免丢失过多的垃圾邮件(较低的FN),但会错误地将更多电子邮件预先定义为垃圾邮件(更高的FP)。然而,更高的精确度会减少错误预测电子邮件的数量(较低的FP),但会错过更多的垃圾邮件(更高的FN)。

    这里实际上也指明了此处accuracy和precison的区别(召回率是用来衡量accuracy的一个指标)

  • F-measure的提出,允许通过提供这些指标的谐波平均值(1是最好的情况)来分析召回和精确度之间的权衡:
    F-measure

  • 变异系数(CV —— cofficient of variant)是另一个精度度量,特别用于报告使用群集(或状态)进行分类的无监督模型的性能。较低的CV意味着每个结果相对于相应聚类的平均值的小变化。这表示更高的簇内相似性和更高的分类准确度。



Background Info (supplemented myself)

OID( Object Identifier )对象标识符

 又称为物联网域名是由ISO/IEC、ITU国际标准组织共同提出的标识机制,用于对任何类型的对象、概念或者“事物”进行全球无歧义、唯一命名。一旦命名,该名称终生有效。由于OID具有分层灵活、可扩展性强等特点,适合作为现有各种编码方案之间进行交换的元标识机制。
OID举例

时间序列中的hurst指数(hurst exponent or hurst coefficient )

  一个具有赫斯特统计特性的系统,不需要通常概率统计学的独立随机事件假设。它反映的是一长串相互联系事件的结果。今天发生的事将影响未来,过去的事也会影响现在。这正是我们分析资本市场所需要的理论和方法。传统的概率统计学,对此是难办到的。
https://baike.baidu.com/item/赫斯特指数/5972509?fr=aladdin

批量数据和流式数据的区别:

  • 数据处理单位:批量计算往往得等任务全部跑完之后才能得到结果,而流式计算则可以实时获取最新的计算结果。
  • 数据源:批量计算通常处理的是有限数据(bound data),数据源一般采用文件系统,而流式计算通常处理无限数据(unbound data),一般采用消息队列作为数据源。
  • 任务类型:批量计算中的每个任务都是短任务,任务在处理完其负责的数据后关闭,而流式计算往往是长任务,每个work一直运行,持续接受数据源传过来的数据。
    https://www.jianshu.com/p/16323566f3c6

流式传输和数据包传输的区别:

  tcp具有粘包特性,发10次,一次接收可以一起接收完毕;而udp的消息与消息之间是天然被分割开的,发10次, 就需要10次来接收。
https://blog.csdn.net/stpeace/article/details/73699603

multi-modal 多模态

 multi-modal data 多模态数据,即不同来源的数据。e.g.医学图像中,CT、MRI、PET等数据,为反映同一病灶采取不同成像模式得到的数据;在做视频检索时,你可以使用音频特征,也可以使用图像特征,这就是两种模态的数据;做测谎识别,你可以使用面部特征、肢体特征,也可以使用血压心跳等生理特征,这也是不同模态的数据.
 multi-modal application 多模式设备,用户将能够通过语音,手写或键击提供输入,输出通过显示器,预先录制的和合成的语音/音频以及诸如振动器和盲文带的触觉机制呈现。for example ,mobile phone is one of them.

deep packet inspection深度数据包检测

 又称完全数据包探测(complete packet inspection)或信息萃取(Information eXtraction,IX),是一种计算机网上数据包过滤技术,用来检查通过检测点之数据包的数据部分(亦可能包含其标头),以搜索不匹配规范之协议、病毒、垃圾邮件、入侵,或以预定之准则来决定数据包是否可通过或需被路由至其他不同目的地,亦或是为了收集统计数据之目的。IP数据包有许多个标头;正常运作下,网上设备只需要使用第一个标头(IP标头),而使用到第二个标头(TCP、UDP等)则通常会与深度数据包检测相对,而被称之为浅度数据包检测(一般称为状态数据包检测)。
https://zh.wikipedia.org/wiki/深度包检测

数据集

  • waikato internet traffic storage
      怀卡托被动网络流量数据集 这个是怀卡托大学的WAND group做的数据集
  • UCI KDD
      UCI大学收集的数据集
  • MAWI Working Group Traffic Archive
      packet traces from WIDE backbone
  • MAWI working group
      WAMI:measurement and analysis of wide-area(WIDE) Internet ; 这是日本的一个组织,和国际很多公司有合作,包括怀卡托大学

检测网络流量的常用协议

  monitor_protocal
  • SNMP
      simple networkk management protocal 简单网络管理协议
    https://blog.csdn.net/shmily_cml0603/article/details/12968157

  • Cisco Net-Flow
      netflow是Cisco开发的一种协议,用于收集和记录进出Netflow的Cisco路由器或交换机的所有IP流量。它允许您通过程序(通常称为Netflow收集器或分析器)收集流量并对其进行分析,然后将流记录组织为允许IT管理员或网络工程师进一步分析流量(源,目的地等)的格式。
    https://en.wikipedia.org/wiki/NetFlow

  • IP Flow Information Export ( IPFIX )
      Internet协议流信息导出(IPFIX)是IETF协议,以及定义协议的IETF 工作组的名称。它的创建基于对来自路由器,探测器和其他设备的互联网协议流信息的通用通用标准的出口,这些信息被中介系统,计费/计费系统和网络管理系统用于促进诸如测量,计费等服务和计费。IPFIX标准定义了如何格式化IP流信息并将其从导出器传输到收集器。[1]以前许多数据网络运营商都依赖思科系统公司的专有技术NetFlow技术用于交通流信息输出。
      原始RFC 3917中概述了IPFIX标准要求。Cisco NetFlow版本9是IPFIX的基础。RFC 7011通过RFC 7015和RFC 5103记录了IPFIX的基本规范。
    https://en.wikipedia.org/wiki/IP_Flow_Information_Export

  • over-,under- sample 常见的还有一个移动阈值采样,这里就先不详细查了

  under smaple,也叫下采样 对训练集里面样本数量较多的类别(多数类)进行欠采样,抛弃一些样本来缓解类不平衡
  over sample,也叫上采样 对训练集里面样本数量较少的类别(少数类)进行过采样,合成新的样本来缓解类不平衡。

  • one-vs-rest(或one-vs.-all,OvA或OvR)

      策略需要为每一个类建立一个唯一的分类器,属于此类的所有样例均为正例,其余的全部为负例。这一策略需要基础分类器去产生一个实值置信度以供决策,而不仅仅是一个类标签;单独产生的类标签可能会导致归类的不明确,以致于一个样例会被预测属于多个类。
      尽管这一策略很流行,但它是一个受些许问题困扰的启发法。首先,分类器之间置信值的范围可能不同。其次,即使一个训练集的类是均衡分布的,二元分类器学习者所看到的类分布也是不均衡的,因为它们所看到的负例集通常比正例集来的大。
    one-vs-one(OvO)
      对于一个K类多元问题,训练 K (K − 1) / 2 个二元分类器;每一个从初始训练集中收到一对类样例,并且必须学习去区分这两个类。在预测时间内,会有一个投票:所有 K (K − 1) / 2 个解释器被应用于一个未知样例,并且那个得到最多"+1" 预测的类会成为组合分类器的预测结果。
      像OvR一样, OvO也受些许问题困扰:在它输入空间的一些区域会收到相同数目的投票。
    https://zh.wikipedia.org/wiki/多元分类

猜你喜欢

转载自blog.csdn.net/Hesy_H/article/details/84140451