機器學習的技術秘密-走進Imperva的「魔法秘籍」
近期,我們在生活中經常會聽到關於機器學習與人工智慧(AI)方面的信息。機器正學著模仿人類大腦,自動處理各類工作。能夠自動駕駛的車輛則在學習了解駕駛路況,還有能夠與人類對話的私人助手,以及像人類一樣預測股票市場走勢的機器等。從某些方面來說,機器學習簡直像「魔法」一樣神奇。
但在機器學習的背後,應用了許多基礎性、深入研究過的技術。人類需要學習如何利用這些技術來解決某類問題。首先需要了解一下這些技術,再來說明發現存在不當訪問非結構化數據問題時的解決方案。
機器學習——定義:
機器學習屬於人工智慧,計算機能夠利用訓練或觀察學習到的演算法來探測相關模式並確定其基準行為。機器學習能夠處理與分析海量數據,這對於人類來說可不是輕而易舉的事情。
機器學習任務主要分為兩大類:
1、監督學習:向機器內輸入各種資料,以及預期輸出內容,如此,以後只要錄入相關內容,就能得出預期輸出。
2、無監督學習:此類機器用於在沒有明確輸入具體查詢模式的前提下,檢測數據集中的各類數據模式。
更重要的是,在無監督機器學習過程中,有多種技術可識別各類數據模式,最終生成有價值的分析結構。了解問題域是正確的選擇應用技術的關鍵。數據專家們的主要任務之一就是要確定該使用哪種技術。如數據專家不了解問題域,則無法選擇正確的方法解決問題。
聚類:
聚類是向同類組分配對象的過程(亦稱為簇),旨在確保各組的對象都不同。聚類屬於無監督任務,用於描述對象的隱藏結構。
各對象由一系列特點組成,稱之為特徵。劃分對象到不同集群時,首先要確定各個對象間的距離。定義適當距離測量法是成功完成聚類的關鍵。
k-means:
目前有許多聚類演算法可用,各有優缺點。常用的聚類演算法就是 k-means,這種演算法可以迭代法識別出最佳的k 聚類中心。聚類中心是與聚類相關的對象「代表」,k-means的主要優缺點如下:
1、必需明確指定聚類數量,但某些情況下無法知道各類聚類的數量;
2、k-means的迭代特性容易因局部最小值匯聚產生錯誤結果。
3、假設聚類是球狀的。
雖然有這些缺點,但在許多情況下,k-means仍是最正確也是最常用的演算法。關於球面數據使用k-means的聚類示例可見圖1。
圖1:球狀數據上的k-means聚類
OPTICS 聚類演算法:
另外一種聚類演算法是OPTICS,它是基於密度的聚類演算法。基於密度的聚類演算法,與基於質心的聚類演算法不同,這種演算法通過識別點簇「密度」,了解任意形狀與密度的聚類。OPTICS還可通過識別出分散的對象來確定數據的離群值(雜訊)。
圖2: k-means與OPTICS應用於數據時的對比
OPTICS與k-means演算法會生成截然不同的數據點組;它會將離群值分類,並更為精確的按數據性質而非球狀的方式來表現簇。可參見圖2在數據上應用k-means及OPTICS後的對比示例。
降維:
在機器學習領域,通常針對高維數據採用降維法處理。此處理方法旨在減少需要考慮的各類特徵數據,因為每項特徵都代表了對象的一個部分。
為何降維如此重要?隨著特徵的增多,數據變的更加稀疏,因此需要從維度災難方面進行分析。此外,還便於處理小型數據集。
利用以下兩個方法執行降維:
1、從現有特徵中選擇(特徵選擇)
2、組合現有特徵後,提取新特徵(特徵提取)。
特性提取的主要技術是主成份分析法(PCA)。主成份分析法可保證找到最佳線性變換,降低維數數量,減少信息損失。有時,丟失的信息被稱為雜訊,這種信息並不具有代表性,只是部分未知程序的副作用而已。主成份分析法的視覺表達如下(圖3):
圖3:主成份分析法
上述示例中,可能對PC1的結果表示滿意,最終以一個特性取代了原來的兩個特性。
有許多降維技術可選擇:部分線性技術,如:主成份分析法,部分非線性技術以及後期日趨普遍使用的深度學習法等(詞嵌入)。
將相關技術用於動態學習對等組:
Imperva Defense Center近期的黑客情報計劃(HII)調查報告中提到了文件安全的最新創新方法。這種方法會利用無監督機器動態學習對等組。一旦學會了對等組,就可以用對等組來確定每個用戶訪問組織中的各種共享文檔的虛擬許可權是否正確。Imperva的違規防禦解決方案CounterBreach中就使用了這種動態對等組功能。
圖4介紹了如何根據動態對等組分析結果,利用機器學習探測可疑文件訪問活動。
圖4:利用動態對等組分析結果探測可疑活動的過程
首先Imperva將審計數據轉化為用戶訪問目錄的矩陣,其中橫坐標為用戶與縱坐標為文件夾。矩陣單元內的值為指定用戶訪問文件夾的活動量。然後,Imperva會進行降維的處理。使用PCA的首個原因就是矩陣的稀疏性,因為矩陣單元內99%以上都是空的。其次,許多文件夾的訪問模式都是關聯的,從而導致矩陣出現多重共線性。而實際上在我們的案例中,多組用戶會在一個類似項目中工作,這些用戶都有關聯性,因此被放置在類似的文件夾組中。最後,使用PCA後,矩陣範圍縮小了90%,因此更便於處理。收集與準備數據後,機器學習可構建虛擬對等組。Imperva利用前述機器學習技術(即:PCA以及基於密度的聚集法)構建動態對等組。
其次,Imperva選擇OPTICS演算法作為其聚集演算法,即:根據密度來聚集用戶。因為對等組數據未知,而k-means需要了解簇的數量——本案中為需要了解對等組數量,因此無法使用該演算法。
OPTICS則不受此數據限制。OPTICS還便於採取特殊手段處理雜訊用戶,即:將雜訊用戶單獨放入一個簇內。除上述原因外,經過大量的試驗與辨錯後,確認OPTICS是本數據集最佳演算法。
小結:
選擇正確的演算法是數據分析三要素最重要的一個環節。數據分析三要素:首先就是數據本身,其次是數據準備工作,即:清理與選擇能夠代表數據特點的具體特徵,第三就是利用正確的機器學習法,適當描述數據。
本案中,PCA與OPTICS都是經過證明,特別適用於學習對等工作組的工具。但「機器」並不能神奇的自我決策。只有人(也就是團隊)才能了解問題所在,分析數據,並「魔法般的」選擇正確的機器學習法構建人工智慧的高樓大廈。
※2018年來說說機器學習
※機器學習模擬人類處理聲音將成為可能
TAG:機器學習 |