前言
威脅檢測是網路安全領域一個重要方向。如今在網路安全公司中已經開展了很多利用機器學習、深度學習方法進行威脅檢測的研究。不少安全研究人員利用專家知識結合機器學習將網路中的威脅透過模型演算法檢測出來。但是這個過程不僅僅需要巨大的算力,而且需要引入過多的人力才能夠找到適合場景的模型演算法,後期甚至花大量時間進行引數最佳化。花費大量精力來進行模型和演算法的選擇以及訓練對於需求不斷增長的業務場景來說往往是不夠的,因此一種自動化進行機器學習的研究方向應運而生。
自動機器學習(AutoML)是最近幾年興起的一個將機器學習應用過程自動化的研究方向,並在產業界得到了越來越多的應用。目前AutoML的研究主要包括兩個方向,一個是基於傳統機器學習技術自動化建立一個端到端的模型方法,另一個是基於神經網路模型探索神經網路架構搜尋演算法(NAS)。基於傳統機器學習技術進行自動化建模的AutoML方法主要是基於傳統的機器學習模型演算法,利用資料進行自動化特徵工程,自動化建模,最後透過自動化調參搭建出一個完整的pipeline。而NAS神經網路架構搜尋演算法是AutoML的另一種研究方式,區別於傳統的機器學習模型,NAS神經網路模型可以透過不同的神經網路結構進行定義(例如CNN、RNN等),因此在不同的業務場景中所使用的最佳神經網路架構可能是不一樣的,因此在NAS神經網路架構搜尋演算法中可以透過先構建出單元網路結構,然後堆疊單元網路鏈式的形成整個網路,或者是採用分級層次的結構透過堆疊若干低階結構單元進而生成高階結構單元。AutoML的研究過程可以總結為下圖所示。
圖1 - AutoML流程
AutoML核心過程
採用傳統機器學習模型進行AutoML構建的過程中,首先利用準備的資料作為輸入,分別透過特徵工程、模型構建以及引數最佳化三個階段的處理之後,最終得到用於測試效果的演算法模型,這個過程如下圖所示。
圖2 – 傳統機器學習流程
在整個過程中三個重要的階段可以被看作是傳統機器學習模型演算法自動化的核心過程。首先自動化特徵工程主要是自動化特徵選取以及自動化特徵生成,在自動化特徵選取階段會對眾多特徵進行最佳特徵組合選擇,而自動化特徵生成階段會利用已知的特徵進行自動化特徵的交叉組合構成新的特徵應用在後續的模型構建階段;而模型構建階段會選擇合適的模型進行建模,這個過程和引數最佳化階段相輔相成,利用合適的模型以及最最佳化的超引數進行自動化的模型選擇以及引數調整。
圖3 – 模型自動化
NAS作為AutoML方向的研究熱點,主要是希望設計出最好的神經網路結構,希望透過自動化的方式找到最適合的神經網路架構。實現NAS的過程主要包括透過搜尋空間確定網路結構,這個過程中結合搜尋策略進行結構的最佳化。這個最佳化的過程和傳統機器學習自動化過程中的引數最佳化是類似的,統稱為最佳化演算法。完成搜尋空間和搜尋策略之後,最後對模型演算法進行評估。
搜尋空間主要包括四種方式,主要如下:
entire-structure搜尋空間方式:entire-structure是利用預先設計的search space進行網路結構選擇,然後設計出一個網路結構,不同的神經網路層之間可以直接或者跳躍連線。該方法侷限性比較高,需要人工設定好網路結構以及神經元數量
cell-based structure搜尋空間方式:cell-based structure透過搜尋得到一個最優的cell,然後堆疊這個cell得到最佳的網路結果。這種方式解決了entire-structure搜尋空間方式在遷移性和擴充套件性方面不夠好的問題。
Hierarchical結構搜尋空間方式:分層的Hierarchical結構是利用低層次的cell來構成高層次的cell,只需要預先設定好低層次的cell結構即可,有效的解決了網路結構單一的問題。
Morphism搜尋空間方式:Morphism搜尋空間方式主要是基於已知的模型進行擴充套件,可以將模型在深度或者寬度上進行擴充變成更寬或者更深的網路結構。
圖4 – 搜尋空間分類
搜尋策略的主要方法包括基於梯度的最佳化方法,基於強化學習的方法,隨機搜尋方法以及遺傳進化演算法等。基於梯度下降的最佳化演算法主要是希望減少搜尋過程的時間,無論是超引數的搜尋還是網路結構的搜尋都需要佔用大量的計算和時間開銷,因此基於梯度下降演算法進行搜尋可以更快的找到合適的結構和引數。相似的隨機搜尋方式是採用隨機的選擇網路結合和超引數進行最佳化,迭代實現網路結構和引數的最佳搜尋,這種搜尋最佳化策略進一步降低了時間開銷。常見的網格搜尋方式是一種比較魯棒但是時間開銷很大的方式,在最佳化網路結構和引數的過程中很難做到在網格上進行全量搜尋,因此不是一種理想的實踐方式。
圖5 – 搜尋策略分類
基於強化學習的搜尋策略是一種將控制器和獎勵網路應用在網路結構搜尋的方式。控制器的動作是選擇神經網路結構,對應的獎勵網路會基於神經網路結構對資料進行效果評估,透過在獎勵網路中迭代學習得到最佳的神經網路結構。
圖6 – 強化學習過程
目前網路安全威脅檢測領域已經部署了一些基於機器學習以及深度學習的模型演算法,網路威脅檢測面臨資料量大、場景變化多、攻擊者手法複雜的特點,因此每次安全研究專家針對單一資料集、單一攻擊場景進行建模並訓練檢測模型,會佔用一定人力和時間成本;如果針對每個不同的攻擊場景都建立一套獨立的模型方案,在升級演算法和運營期間都會很耗時,難以支撐實時響應的需求。因此基於AutoML建立一套應用於網路威脅檢測的模型演算法,在面對不同的場景變化時,可以做到自動化適配不同的演算法和網路結構,透過空間搜尋結合模型自動化達到快速搭建檢測模型並實時響應不同的攻擊場景需求,能夠助力網安產品提升專業競爭力。
總結與展望
近些年AutoML已經開始逐漸應用到計算機視覺、廣告、網路安全等領域中,在後續的研究方向上除了關於NAS等熱點問題的研究之外,AutoML的靈活性、魯棒性以及可解釋性都是需要進一步探索,當前無論是基於傳統機器學習演算法的AutoML還是透過NAS探索出的深度神經網路都還缺乏靈活性,搜尋空間有時需要人為設定,需要參考現成的神經網路結構進行學習,距離完全的自動化還有一定距離,此外由於自動化特徵工程以及自動化神經網路結構的解釋性比較差,現在透過AutoML學習出來的演算法模型依然是一個黑盒模型,很難解釋其特徵工程進行特徵選擇和特徵生成的邏輯以及神經網路結構搭建的邏輯。AutoML在未來應用在產品的過程中,還需要對靈活性以及可解釋性進行進一步的研究探討。