1. 程式人生 > >A Comprehensive survey of machine learning for Internet (2018) via Boutaba,Mohammed et al【Sec 2】

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/多元分類