Andrew Ng Machine Learning 專題【Anomaly Detection】
來源:程序員人生 發(fā)布時(shí)間:2016-04-21 10:39:13 閱讀次數(shù):5565次
此文是斯坦福大學(xué),機(jī)器學(xué)習(xí)界 superstar ― Andrew Ng 所開設(shè)的 Coursera 課程:Machine Learning 的課程筆記。力求簡潔,僅代表本人觀點(diǎn),不足的地方希望大家探討。
課程網(wǎng)址:https://www.coursera.org/learn/machine-learning/home/welcome
Week 9 后半部份 Recommender Systems:敬請(qǐng)等待
Week 9:
-
異常檢測 & 高斯散布
-
異常檢測是1種介于監(jiān)督學(xué)習(xí)與非監(jiān)督學(xué)習(xí)之間的機(jī)器學(xué)習(xí)方式。1般用于檢查大范圍正品中的小范圍次品。根據(jù)單個(gè)特點(diǎn)量的幾率散布,從而求出某個(gè)樣本正常的幾率,若正常的幾率小于閾值,即 p(x)<? 視其為異常(次品)。正品與次品的 label 值 y 定義為:
y={01if p(x)≥?if p(x)<?
如果某個(gè)樣本由x1,x2兩個(gè)變量決定,以下圖紅色叉所示:
同1個(gè)圓圈內(nèi)部,表示的是成為正品的幾率相同。越中心的圓圈內(nèi)部正品率越高。越外層的圓圈內(nèi)正品率越低。
-
異常檢測1般將每一個(gè)特點(diǎn)量的散布假定為正態(tài)散布(如果特點(diǎn)量與正態(tài)散布差距很大,以后我們會(huì)提到方法對(duì)其進(jìn)行修正)。為何是正態(tài)散布?由于在生產(chǎn)與科學(xué)實(shí)驗(yàn)中發(fā)現(xiàn),很多隨機(jī)變量的幾率散布都可以近似地用正態(tài)散布來描寫(猜想正確的幾率更大)。因此,以下略微介紹1下正態(tài)散布的基礎(chǔ)知識(shí),如果很熟習(xí)的同學(xué)可以略過這部份。
-
正態(tài)散布(高斯散布),包括兩個(gè)參數(shù):均值μ(散布函數(shù)取峰值時(shí)所對(duì)應(yīng)橫坐標(biāo)軸的值),與方差σ2(標(biāo)準(zhǔn)差為σ,控制散布函數(shù)的“胖瘦”)。如果變量 x 滿足于正態(tài)散布,將其記為 x~N(μ,σ2)。而取某個(gè) x 的對(duì)應(yīng)正品幾率為:p(x)=12π√σe?(x?μ)22σ2
-
均值 μ=1m∑i=1mx(i),方差 σ2=1m∑i=1m(x(i)?μ)2
-
正態(tài)散布曲線與坐標(biāo)軸之間的面積(即函數(shù)積分)恒定為 1,因此“高”曲線必定“瘦”,“矮”曲線必定“胖”:
由圖可知,標(biāo)準(zhǔn)差σ控制著散布函數(shù)的“胖瘦”。緣由是由于標(biāo)準(zhǔn)差有關(guān)的取值范圍,有著固定的散布幾率(積分):
-
異常檢測算法流程:
-
我們具有1組訓(xùn)練數(shù)據(jù):x(1),x(2),...,x(m),每一個(gè)樣本有著 m 個(gè)特點(diǎn)量 x1,x2,...,xn
-
將每一個(gè)樣本投影到不同的特點(diǎn)的坐標(biāo)軸上,基于樣本得到各個(gè)特點(diǎn)的幾率正態(tài)散布曲線
-
假定各個(gè)特點(diǎn)的幾率是獨(dú)立的,因此單個(gè)樣本的異常幾率為
p(x)=p(x1;μ1,σ21)×p(x2;μ2,σ22)×...×p(xn;μn,σ2n))=∏i=1np(xj;μj,σ2j)
-
各個(gè)特點(diǎn)的均值為 μj=1m∑i=1mx(i)j,方差為 σ2j=1m∑i=1m(x(i)j?μj)2
-
如果我們有著 10000 個(gè)正品樣本,和 20 個(gè)次品樣本,我們應(yīng)當(dāng)這樣辨別訓(xùn)練集、交叉驗(yàn)證集,與測試集:
-
訓(xùn)練集:6000個(gè)正品作為訓(xùn)練集(不包括次品樣本)
-
交叉驗(yàn)證集:2000 個(gè)正品樣本 + 10 個(gè)次品樣本。用以肯定次品幾率的閾值 ?
-
測試集:2000 個(gè)正品樣本 + 10 個(gè)次品樣本。用以判斷算法的檢測效果
-
特別注意,由于使用異常檢測的樣本集合1般都是偏斜嚴(yán)重的(正品樣本遠(yuǎn)遠(yuǎn)多于次品樣本)。因此,需要在《專題【Machine Learning Advice】》http://blog.csdn.net/ironyoung/article/details/48491237 中提到的 precision/recall/F-score 來進(jìn)行判斷算法的檢測效果。
-
異常檢測 VS. 監(jiān)督學(xué)習(xí)
-
監(jiān)督學(xué)習(xí)方法與異常檢測類似,處理對(duì)象都是1堆有 label 的樣本,并且目標(biāo)都是預(yù)測新樣本的種別。那末甚么時(shí)候使用監(jiān)督學(xué)習(xí)的方法?甚么時(shí)候使用異常檢測的方法?
-
大體上,區(qū)分以下:
-
樣本比例:異常檢測適用于正樣本(y=1,即次品)個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于負(fù)樣本的個(gè)數(shù)的情況;監(jiān)督學(xué)習(xí)適用于正負(fù)樣本個(gè)數(shù)都非常多的情況
-
異常規(guī)律:如果正樣本(y=1,即次品)有著難以預(yù)測的模式,引發(fā)正樣本的緣由有很多很多,適用于異常檢測;但是如果正樣本有著固定的規(guī)律,比如感冒(病因已被研究透徹),可以嘗試基于大量的樣本使用監(jiān)督學(xué)習(xí)的方法建立模式進(jìn)行判斷
-
特點(diǎn)選擇
-
絕大多數(shù)情況下,特點(diǎn)量符合正態(tài)散布的散布情況。但如果特點(diǎn)的散布極端不符合,我們只能對(duì)其進(jìn)行1些處理,以產(chǎn)生全新的特點(diǎn)來適用于異常檢測算法。例如:
此時(shí),我們有著變換后的特點(diǎn)變量:xnew=log(x1)
-
或,1般情況下我們希望正品的 p(x) 很大,次品的 p(x) 很小。也就是說,在異常情況下某些特點(diǎn)應(yīng)當(dāng)變得極大或極小(正態(tài)散布中對(duì)極大值或極小值的對(duì)應(yīng)幾率都是極小的,所以全部樣本的正品幾率相乘會(huì)很容易滿足 p(x)<?):例如創(chuàng)建新變量xnew=x21x2,進(jìn)1步放大了值增大或減小的程度。
-
Multivariate Gaussion(選學(xué))
-
如果1個(gè)樣本有著多種特點(diǎn),那末整體的正品幾率可以依照以上提到的,視每一個(gè)變量為相互獨(dú)立然后各自幾率相乘進(jìn)行求解(我們稱之為 original model)。但是,如果出現(xiàn)了下圖這類正相干(負(fù)相干)極強(qiáng)的特點(diǎn)量,同心圓內(nèi)部的正品幾率必定不同,明顯不適合了:
我們希望本來的同心圓可以更扁,可以變換方向,例如上圖的藍(lán)色橢圓。
-
此時(shí),我們可以利用協(xié)方差矩陣,構(gòu)造全新的多變量正態(tài)散布公式。此時(shí)我們用到的不再是方差 σ2,而是協(xié)方差矩陣 Σ∈Rn×n:Σ=1m(x(i)?μ)(x(i)?μ)T。多變量正態(tài)散布的幾率公式為:
p(x)=1(2π)n/2|Σ|1/2e?12(x?μ)TΣ?1(x?μ),其中|Σ|表示協(xié)方差矩陣的行列式。
-
協(xié)方差矩陣與均值,對(duì)幾率散布圖的影響以下:
-
original model VS. multivariate Gaussian
-
如果1個(gè)樣本有著多種特點(diǎn),那我們究竟是應(yīng)當(dāng)使用 original model,還是 multivariate Gaussian?
-
大體上,區(qū)分以下:
-
特點(diǎn)選擇:original model 中的各個(gè)單個(gè)特點(diǎn)(或創(chuàng)造出的新特點(diǎn)),應(yīng)當(dāng)盡可能滿足在異常情況下產(chǎn)生幾率極小的特性;而如果特點(diǎn)之間,發(fā)現(xiàn)了正相干或負(fù)相干的關(guān)系,應(yīng)當(dāng)用 multivariate Gaussian
-
計(jì)算效力:original model 僅僅乘法,效力較高;multivariate Gaussian 需要計(jì)算協(xié)方差的逆矩陣,效力較低
-
樣本數(shù)目:original model 在訓(xùn)練集極小的情況下也能夠計(jì)算;multivariate Gaussian 最少需要訓(xùn)練集樣本數(shù)目大于特點(diǎn)數(shù)目,否則協(xié)方差矩陣沒法求逆
-
協(xié)方差矩
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
------分隔線----------------------------
------分隔線----------------------------