【機器學習】吳恩達機器學習中文版筆記:異常檢測(Anomaly Detection)

產業智慧官發表於2018-05-03

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

大資料文摘經授權轉載

作者:黃海廣

在接下來的一系列視訊中,我將向大家介紹異常檢測(Anomaly detection)問題。這是機器學習演算法的一個常見應用。這種演算法的一個有趣之處在於:它雖然主要用於非監督學習問題,但從某些角度看,它又類似於一些監督學習問題。

問題的動機

參考文件:15-1-Problem Motivation(8 min).mkv

在接下來的一系列視訊中,我將向大家介紹異常檢測(Anomaly detection)問題。這是機器學習演算法的一個常見應用。這種演算法的一個有趣之處在於:它雖然主要用於非監督學習問題,但從某些角度看,它又類似於一些監督學習問題。

什麼是異常檢測呢?為了解釋這個概念,讓我舉一個例子吧:

假想你是一個飛機引擎製造商,當你生產的飛機引擎從生產線上流出時,你需要進行QA(質量控制測試),而作為這個測試的一部分,你測量了飛機引擎的一些特徵變數,比如引擎運轉時產生的熱量,或者引擎的振動等等。

640?wx_fmt=jpeg

這樣一來,你就有了一個資料集,從x(1)到x(m),如果你生產了m個引擎的話,你將這些資料繪製成圖表,看起來就是這個樣子:

640?wx_fmt=jpeg

這裡的每個點、每個叉,都是你的無標籤資料。這樣,異常檢測問題可以定義如下:我們假設後來有一天,你有一個新的飛機引擎從生產線上流出,而你的新飛機引擎有特徵變數xtest。所謂的異常檢測問題就是:我們希望知道這個新的飛機引擎是否有某種異常,或者說,我們希望判斷這個引擎是否需要進一步測試。因為,如果它看起來像一個正常的引擎,那麼我們可以直接將它運送到客戶那裡,而不需要進一步的測試。

給定資料集x(1),x(2),..,x(m),我們假使資料集是正常的,我們希望知道新的資料xtest是不是異常的,即這個測試資料不屬於該組資料的機率如何。我們所構建的模型應該能根據該測試資料的位置告訴我們其屬於一組資料的可能性P(x)。

640?wx_fmt=jpeg

上圖中,在藍色圈內的資料屬於該組資料的可能性較高,而越是偏遠的資料,其屬於該組資料的可能性就越低。

這種方法稱為密度估計,表達如下:

640?wx_fmt=jpeg

欺詐檢測:

x(i)=使用者的第個i活動特徵

模型P(x)為我們其屬於一組資料的可能性,通過P(x)<ε檢測非正常使用者。

異常檢測主要用來識別欺騙。例如線上採集而來的有關使用者的資料,一個特徵向量中可能會包含如:使用者多久登入一次,訪問過的頁面,在論壇釋出的帖子數量,甚至是打字速度等。嘗試根據這些特徵構建一個模型,可以用這個模型來識別那些不符合該模式的使用者。

再一個例子是檢測一個資料中心,特徵可能包含:記憶體使用情況,被訪問的磁碟數量,CPU的負載,網路的通訊量等。根據這些特徵可以構建一個模型,用來判斷某些計算機是不是有可能出錯了。

高斯分佈

參考視訊:15-2-Gaussian Distribution (10 min).mkv

在這個視訊中,我將介紹高斯分佈,也稱為正態分佈。回顧高斯分佈的基本知識。

通常如果我們認為變數x符合高斯分佈x~N(u,σ2)其概率密度函式為:

640?wx_fmt=jpeg

我們可以利用已有的資料來預測總體中的u和σ2的計算方法如下:

640?wx_fmt=jpeg

640?wx_fmt=jpeg

高斯分佈樣例:

640?wx_fmt=jpeg

注:機器學習中對於方差我們通常只除以m而非統計學中的(m-1)。這裡順便提一下,在實際使用中,到底是選擇使用1/m還是1/(m-1)其實區別很小,只要你有一個還算大的訓練集,在機器學習領域大部分人更習慣使用1/m這個版本的公式。這兩個版本的公式在理論特性和數學特性上稍有不同,但是在實際使用中,他們的區別甚小,幾乎可以忽略不計。

演算法

參考視訊:15-3-Algorithm (12 min).mkv

在本節視訊中,我將應用高斯分佈開發異常檢測演算法。

異常檢測演算法:

對於給定的資料集x(1),x(2),..,x(m),我們要針對每一個特徵計算u和σ2的估計值。

640?wx_fmt=jpeg

一旦我們獲得了平均值和方差的估計值,給定新的一個訓練例項,根據模型計算P(x):

640?wx_fmt=jpeg

當P(x)<ε時,為異常。

下圖是一個由兩個特徵的訓練集,以及特徵的分佈情況:

640?wx_fmt=jpeg

下面的三維圖表表示的是密度估計函式,z軸為根據兩個特徵的值所估計P(x)值:

640?wx_fmt=jpeg

我們選擇一個ε,將P(x)=ε作為我們的判定邊界,當P(x)>ε時預測資料為正常資料,否則為異常。

在這段視訊中,我們介紹瞭如何擬合P(x),也就是x的概率值,以開發出一種異常檢測演算法。同時,在這節課中,我們也給出了通過給出的資料集擬合引數,進行引數估計,得到引數u和σ然後檢測新的樣本,確定新樣本是否是異常。

在接下來的課程中,我們將深入研究這一演算法,同時更深入地介紹,怎樣讓演算法工作地更加有效。

開發和評價一個異常檢測系統

參考視訊:15-4-Developing and Evaluating an Anomaly Detection System(13 min).mkv

異常檢測演算法是一個非監督學習演算法,意味著我們無法根據結果變數y的值來告訴我們資料是否真的是異常的。我們需要另一種方法來幫助檢驗演算法是否有效。當我們開發一個異常檢測系統時,我們從帶標記(異常或正常)的資料著手,我們從其中選擇一部分正常資料用於構建訓練集,然後用剩下的正常資料和異常資料混合的資料構成交叉檢驗集和測試集。

例如:我們有10000臺正常引擎的資料,有20臺異常引擎的資料。我們這樣分配資料:

6000臺正常引擎的資料作為訓練集

2000臺正常引擎和10臺異常引擎的資料作為交叉檢驗集

2000臺正常引擎和10臺異常引擎的資料作為測試集

具體的評價方法如下:

  • 根據測試集資料,我們估計特徵的平均值和方差並構建P(x)函式

  • 對交叉檢驗集,我們嘗試使用不同的ε值作為閥值,並預測資料是否異常,根據F1值或者查準率與查全率的比例來選擇ε

  • 選出ε後,針對測試集進行預測,計算異常檢驗系統的F1值,或者查準率與查全率之比

異常檢測與監督學習對比

參考視訊:15-5-Anomaly Detection vs. Supervised Learning(8 min).mkv

之前我們構建的異常檢測系統也使用了帶標記的資料,與監督學習有些相似,下面的對比有助於選擇採用監督學習還是異常檢測:

兩者比較:

640?wx_fmt=jpeg

希望這節課能讓你明白一個學習問題的什麼樣的特徵,能讓你把這個問題當做是一個異常檢測,或者是一個監督學習的問題。另外,對於很多技術公司可能會遇到的一些問題,通常來說,正樣本的數量很少,甚至有時候是0,也就是說,出現了太多沒見過的不同的異常型別,那麼對於這些問題,通常應該使用的演算法就是異常檢測演算法。

選擇特徵

參考視訊:15-6-Choosing What Features to Use (12 min).mkv

對於異常檢測演算法,我們使用的特徵是至關重要的,下面談談如何選擇特徵:

異常檢測假設特徵符合高斯分佈,如果資料的分佈不是高斯分佈,異常檢測演算法也能夠工作,但是最好還是將資料轉換成高斯分佈,例如使用對數函式:x=log(x+c),其中c為非負常數;或者x=xc,c為0-1之間的一個分數,等方法。(編者注:在python中,通常用np.log1p()函式,log1p就是log(x+1),可以避免出現負數結果,反向函式就是np.expm1())

640?wx_fmt=jpeg

誤差分析:

一個常見的問題是一些異常的資料可能也會有較高的P(x)值,因而被演算法認為是正常的。這種情況下誤差分析能夠幫助我們,我們可以分析那些被演算法錯誤預測為正常的資料,觀察能否找出一些問題。我們可能能從問題中發現我們需要增加一些新的特徵,增加這些新特徵後獲得的新演算法能夠幫助我們更好地進行異常檢測。

異常檢測誤差分析:

640?wx_fmt=jpeg

我們通常可以通過將一些相關的特徵進行組合,來獲得一些新的更好的特徵(異常資料的該特徵值異常地大或小),例如,在檢測資料中心的計算機狀況的例子中,我們可以用CPU負載與網路通訊量的比例作為一個新的特徵,如果該值異常地大,便有可能意味著該伺服器是陷入了一些問題中。

在這段視訊中,我們介紹瞭如何選擇特徵,以及對特徵進行一些小小的轉換,讓資料更像正態分佈,然後再把資料輸入異常檢測演算法。同時也介紹了建立特徵時,進行的誤差分析方法,來捕捉各種異常的可能。希望你通過這些方法,能夠了解如何選擇好的特徵變數,從而幫助你的異常檢測演算法,捕捉到各種不同的異常情況。

多元高斯分佈(選修)

參考視訊:15-7-Multivariate Gaussian Distribution(Optional)(14 min).mkv

假使我們有兩個相關的特徵,而且這兩個特徵的值域範圍比較寬,這種情況下,一般的高斯分佈模型可能不能很好地識別異常資料。其原因在於,一般的高斯分佈模型嘗試的是去同時抓住兩個特徵的偏差,因此創造出一個比較大的判定邊界。

下圖中是兩個相關特徵,洋紅色的線(根據ε的不同其範圍可大可小)是一般的高斯分佈模型獲得的判定邊界,很明顯綠色的X所代表的資料點很可能是異常值,但是其P(x)值卻仍然在正常範圍內。多元高斯分佈將建立像圖中藍色曲線所示的判定邊界。

640?wx_fmt=jpeg

在一般的高斯分佈模型中,我們計算P(x)的方法是:通過分別計算每個特徵對應的機率然後將其累乘起來,在多元高斯分佈模型中,我們將構建特徵的協方差矩陣,用所有的特徵一起來計算P(x)。

我們首先計算所有特徵的平均值,然後再計算協方差矩陣:

640?wx_fmt=jpeg

注:其中u是一個向量,其每一個單元都是原特徵矩陣中一行資料的均值。最後我們計算多元高斯分佈的P(x):

640?wx_fmt=jpeg

其中:

|∑|是定矩陣,在Octave中用det(sigma)計算

∑1是逆矩陣,下面我們來看看協方差矩陣是如何影響模型的:

640?wx_fmt=jpeg

上圖是5個不同的模型,從左往右依次分析:

是一個一般的高斯分佈模型

  • 通過協方差矩陣,令特徵1擁有較小的偏差,同時保持特徵2的偏差

  • 通過協方差矩陣,令特徵2擁有較大的偏差,同時保持特徵1的偏差

  • 通過協方差矩陣,在不改變兩個特徵的原有偏差的基礎上,增加兩者之間的正相關性

  • 通過協方差矩陣,在不改變兩個特徵的原有偏差的基礎上,增加兩者之間的負相關性

多元高斯分佈模型與原高斯分佈模型的關係:

可以證明的是,原本的高斯分佈模型是多元高斯分佈模型的一個子集,即像上圖中的第1、2、3,3個例子所示,如果協方差矩陣只在對角線的單位上有非零的值時,即為原本的高斯分佈模型了。

原高斯分佈模型和多元高斯分佈模型的比較:

640?wx_fmt=jpeg

原高斯分佈模型被廣泛使用著,如果特徵之間在某種程度上存在相互關聯的情況,我們可以通過構造新新特徵的方法來捕捉這些相關性。

如果訓練集不是太大,並且沒有太多的特徵,我們可以使用多元高斯分佈模型。

使用多元高斯分佈進行異常檢測(可選)

參考視訊:15-8-Anomaly Detection using the Multivariate Gaussian Distribution(Optional)(14 min).mkv

在我們談到的最後一個視訊,關於多元高斯分佈,看到的一些建立的各種分佈模型,當你改變引數,u和∑。在這段視訊中,讓我們用這些想法,並應用它們制定一個不同的異常檢測演算法。

要回顧一下多元高斯分佈和多元正態分佈:

640?wx_fmt=jpeg

分佈有兩個引數,u和∑。其中u這一個n維向量和∑的協方差矩陣,是一種n*n的矩陣。而這裡的公式x的概率,如按u和引數化∑,和你的變數u和∑,你可以得到一個範圍的不同分佈一樣,你知道的,這些都是三個樣本,那些我們在以前的視訊看過了。

因此,讓我們談談引數擬合或引數估計問題:

我有一組樣本x(1),x(2),..,x(m)是一個n維向量,我想我的樣本來自一個多元高斯分佈。我如何嘗試估計我的引數u和∑以及標準公式?

估計他們是你設定u是你的訓練樣本的平均值。

640?wx_fmt=jpeg

並設定∑:

640?wx_fmt=jpeg

這其實只是當我們使用PCA演算法時候,有∑時寫出來。所以你只需插入上述兩個公式,這會給你你估計的引數u和你估計的引數∑。所以,這裡給出的資料集是你如何估計u和∑讓我們以這種方法而只需將其插入到異常檢測演算法。那麼,我們如何把所有這一切共同開發一個異常檢測演算法?

640?wx_fmt=jpeg

首先,我們把我們的訓練集,和我們的擬合模型,我們計算P(x)要知道,設定u和描述的一樣∑。

640?wx_fmt=jpeg

如圖,該分佈在中央最多,越到外面的圈的範圍越小。

並在該點是出路這裡的概率非常低。

原始模型與多元高斯模型的關係如圖:

其中:協方差矩陣∑為:

640?wx_fmt=jpeg

原始模型和多元高斯分佈比較如圖:

640?wx_fmt=jpeg

想要檢視完整版課程筆記的同學請移步GitHub:

https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png



人工智慧賽博物理作業系統

AI-CPS OS

人工智慧賽博物理作業系統新一代技術+商業作業系統“AI-CPS OS:雲端計算+大資料+物聯網+區塊鏈+人工智慧)分支用來的今天,企業領導者必須瞭解如何將“技術”全面滲入整個公司、產品等“商業”場景中,利用AI-CPS OS形成數字化+智慧化力量,實現行業的重新佈局、企業的重新構建和自我的煥然新生。


AI-CPS OS的真正價值並不來自構成技術或功能,而是要以一種傳遞獨特競爭優勢的方式將自動化+資訊化、智造+產品+服務資料+分析一體化,這種整合方式能夠釋放新的業務和運營模式。如果不能實現跨功能的更大規模融合,沒有顛覆現狀的意願,這些將不可能實現。


領導者無法依靠某種單一戰略方法來應對多維度的數字化變革。面對新一代技術+商業作業系統AI-CPS OS顛覆性的數字化+智慧化力量,領導者必須在行業、企業與個人這三個層面都保持領先地位:

  1. 重新行業佈局:你的世界觀要怎樣改變才算足夠?你必須對行業典範進行怎樣的反思?

  2. 重新構建企業:你的企業需要做出什麼樣的變化?你準備如何重新定義你的公司?

  3. 重新打造自己:你需要成為怎樣的人?要重塑自己並在數字化+智慧化時代保有領先地位,你必須如何去做?

AI-CPS OS是數字化智慧化創新平臺,設計思路是將大資料、物聯網、區塊鏈和人工智慧等無縫整合在雲端,可以幫助企業將創新成果融入自身業務體系,實現各個前沿技術在雲端的優勢協同。AI-CPS OS形成的字化+智慧化力量與行業、企業及個人三個層面的交叉,形成了領導力模式,使數字化融入到領導者所在企業與領導方式的核心位置:

  1. 精細種力量能夠使人在更加真實、細緻的層面觀察與感知現實世界和數字化世界正在發生的一切,進而理解和更加精細地進行產品個性化控制、微觀業務場景事件和結果控制。

  2. 智慧:模型隨著時間(資料)的變化而變化,整個系統就具備了智慧(自學習)的能力。

  3. 高效:企業需要建立實時或者準實時的資料採集傳輸、模型預測和響應決策能力,這樣智慧就從批量性、階段性的行為變成一個可以實時觸達的行為。

  4. 不確定性:數字化變更顛覆和改變了領導者曾經仰仗的思維方式、結構和實踐經驗,其結果就是形成了複合不確定性這種顛覆性力量。主要的不確定性蘊含於三個領域:技術、文化、制度。

  5. 邊界模糊:數字世界與現實世界的不斷融合成CPS不僅讓人們所知行業的核心產品、經濟學定理和可能性都產生了變化,還模糊了不同行業間的界限。這種效應正在向生態系統、企業、客戶、產品快速蔓延。

AI-CPS OS形成的數字化+智慧化力量通過三個方式激發經濟增長:

  1. 創造虛擬勞動力,承擔需要適應性和敏捷性的複雜任務,即“智慧自動化”,以區別於傳統的自動化解決方案;

  2. 對現有勞動力和實物資產進行有利的補充和提升,提高資本效率

  3. 人工智慧的普及,將推動多行業的相關創新,開闢嶄新的經濟增長空間


給決策制定者和商業領袖的建議:

  1. 超越自動化,開啟新創新模式:利用具有自主學習和自我控制能力的動態機器智慧,為企業創造新商機;

  2. 迎接新一代資訊科技,迎接人工智慧:無縫整合人類智慧與機器智慧,重新

    評估未來的知識和技能型別;

  3. 制定道德規範:切實為人工智慧生態系統制定道德準則,並在智慧機器的開

    發過程中確定更加明晰的標準和最佳實踐;

  4. 重視再分配效應:對人工智慧可能帶來的衝擊做好準備,制定戰略幫助面臨

    較高失業風險的人群;

  5. 開發數字化+智慧化企業所需新能力:員工團隊需要積極掌握判斷、溝通及想象力和創造力等人類所特有的重要能力。對於中國企業來說,創造兼具包容性和多樣性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《論語·子路》雲端計算、大資料、物聯網、區塊鏈和 人工智慧,像君子一般融合,一起體現科技就是生產力。


如果說上一次哥倫布地理大發現,擴充的是人類的物理空間。那麼這一次地理大發現,擴充的就是人們的數字空間。在數學空間,建立新的商業文明,從而發現新的創富模式,為人類社會帶來新的財富空間。雲端計算,大資料、物聯網和區塊鏈,是進入這個數字空間的船,而人工智慧就是那船上的帆,哥倫布之帆!


新一代技術+商業的人工智慧賽博物理作業系統AI-CPS OS作為新一輪產業變革的核心驅動力,將進一步釋放歷次科技革命和產業變革積蓄的巨大能量,並創造新的強大引擎。重構生產、分配、交換、消費等經濟活動各環節,形成從巨集觀到微觀各領域的智慧化新需求,催生新技術、新產品、新產業、新業態、新模式。引發經濟結構重大變革,深刻改變人類生產生活方式和思維模式,實現社會生產力的整體躍升。



產業智慧官  AI-CPS


用“人工智慧賽博物理作業系統新一代技術+商業作業系統“AI-CPS OS”:雲端計算+大資料+物聯網+區塊鏈+人工智慧)在場景中構建狀態感知-實時分析-自主決策-精準執行-學習提升的認知計算和機器智慧;實現產業轉型升級、DT驅動業務、價值創新創造的產業互聯生態鏈


640?wx_fmt=png

640?wx_fmt=png

長按上方二維碼關注微信公眾號: AI-CPS,更多資訊回覆:


新技術“雲端計算”、“大資料”、“物聯網”、“區塊鏈”、“人工智慧新產業:智慧製造”、智慧金融”、“智慧零售”、“智慧駕駛”、智慧城市新模式:“財富空間“工業網際網路”、“資料科學家”、“賽博物理系統CPS”、“供應鏈金融”



本文系“產業智慧官”(公眾號ID:AI-CPS)收集整理,轉載請註明出處!



版權宣告產業智慧官(公眾號ID:AI-CPS推薦的文章,除非確實無法確認,我們都會註明作者和來源。部分文章推送時未能與原作者取得聯絡。若涉及版權問題,煩請原作者聯絡我們,與您共同協商解決。聯絡、投稿郵箱:erp_vip@hotmail.com





相關文章