Machine Learning - Andrew Ng 筆記(7)

Anomaly Detection

異常檢測算法經(jīng)常用于非監(jiān)督學習問題中,有點類似于logistic regression.

examples

Aircraft engine

如上圖所示,紅色的樣本都是經(jīng)過測試被證明是質(zhì)量合格的引擎,如果有一個新的引擎稱作與質(zhì)量合格的樣本位置接近那么大概率也質(zhì)量合格,反之此樣本可能需要作更進一步的安全測試.

量化來說就是如果p(X_{test})<\epsilon就被認為是異常樣本,反之正常.調(diào)節(jié)\epsilon的值類似調(diào)節(jié)logistic regression中的Threshold值.

Density estimation

Anomaly Detection還用于欺詐行為識別和manufacturing


more examples

Gaussian((Normal) distribution

正態(tài)分布
如果隨機變量X服從正態(tài)分布,記作X~N(\mu,\sigma^2),則其密度函數(shù)為:

Density

其中

被稱為數(shù)學期望/期望值,被稱為方差,被稱為標準差

Parameter estimation

Anomaly detection algorithm

Anomaly detection algorithm

1.選擇你認為可能會表明樣本是一個異常樣本的特征,用來篩選異常樣本候選者.
2.構(gòu)造{}樣本集合用來訓練,上圖中的公式向量化可以寫作,類似
3.給定新樣本x,計算p(x)
符號表示乘積.,即

如果則x被認為是異常樣本,值的選取下文會提到.
example

p(x)的函數(shù)圖類似于上圖中的3D圖片(特征值n=2).

Developing and evaluating an anomaly detection system

數(shù)據(jù)準備階段,如下圖,需要
1.Training Set, unlabeled,由正常樣本構(gòu)成
2.Cross validation set, labeled,由正常樣本和異常樣本混合而成.
3.Test set, labeled,由正常樣本和異常樣本混合而成.


Data set

舉個例子,如下圖,不推薦粉色的樣本分組方法.一般來說Training/CV/Test分組的樣本最好不要重合,避免影響對算法的性能評估.


example

Algorithm evaluation

評估一個Anomaly detection algorithm算法的步驟如下:
1.使用training set的樣本數(shù)據(jù)訓練出
2.對CV set的樣本進行預測,選擇Fscore最高時對應(yīng)的
3.將以及用于Test set觀察算法表現(xiàn).

Anomaly detection vs. supervised learning

Anomaly detection算法實際上也是預測樣本的分類,飛機引擎是好的還是壞的;這筆交易是否有欺詐嫌疑等等.那既然如此為什么不使用logistic regression呢?
因為這兩個算法針對的場景有細微的差別,如下圖所示:


Anomaly detection vs. supervised learning
  • Anomaly detection算法適用于異常樣本很少的情況下(通常是0-20),并且有大量的正常樣本(因為訓練p(x)需要的是正常樣本).換句話說就是異常樣本太少以至于使用監(jiān)督學習算法無法很好的識別異常樣本的特征,但是因為有大量的正常樣本反而能很好的訓練p(x),所以這種場景使用Anomaly detection更好.
  • Supervised learning適用于無論正常樣本還是異常樣本都很多的情況.


    example

Choosing what features to use

如何為Anomaly Detection 算法選擇特征使得算法的性能更好呢?
需要思考以下兩個方面:
1.選擇的特征盡量滿足Gaussian distribution.

Non-Gaussian features -> Gaussian features

在octave中我們可以使用hist函數(shù)打印特征值的圖形,如果特征值的圖形不符合Gaussian distribution我們可以使用如下手段:
Tranforms

注意:我們可以對每個特征使用不同的方式變形.

2.選擇的特征需要盡可能可以區(qū)分正常/異常樣本.

Error analysis

一般來說我們會選擇特征值要么非常大要么非常小的特征去用于Anomaly Detection算法,更通常的做法是,選擇一些特征看看能不能很好的區(qū)分,如果不行,觀察本該是異常的樣本,在挑選新的特征加入算法.但是有時候根據(jù)現(xiàn)有的特征無法還是不能夠區(qū)分出異常樣本.
舉個例子,如下圖所示,你想找出在數(shù)據(jù)中心中出現(xiàn)特定錯誤的機器(cpu空轉(zhuǎn),死循環(huán)導致),依靠現(xiàn)有的4個特征值很難將異常機器和正常機器區(qū)分開(有可能真的是在執(zhí)行很耗cpu的任務(wù)),此時我們創(chuàng)建一個新特征值,這樣就能很明顯區(qū)分出正常機器和異常機器了.

example

Multivariate Gaussian Distribution

Motivating example

之前p(x)的計算方式(分別計算)沒法很好的區(qū)分CPU低Memory Use高,CPU高Memory Use高兩個樣本,所以這里需要使用Multivariate Gaussian Distribution,新的p(x)如下:


Multivariate Gaussian Distribution

以下是一些例子:


example1
example2
example3
example4
example5
example6

如果使用example4中間的例子可以區(qū)分CPU低Memory Use高,CPU高Memory Use高兩種情況.

Anomaly detection using the multivariate Gaussian distribution

Parameter fitting
Anomaly detection with multivariate Gaussian

Relationship to original model

Gaussian distribution的p(x)是multivariate Gaussian distribution 的特例(是一個n*n的矩陣當滿足除對角線之外的元素都為0的時候).
另一個發(fā)現(xiàn)是original model的輪廓圖始終是與坐標軸對齊的.

Original model vs. Multivariate Gaussian
  • Original model
    需要創(chuàng)建新的特征(現(xiàn)有特征值的組合)來更好的識別異常值.
    計算成本低(適用于大規(guī)模輸入,like n=10000)
    training size很小也ok
  • Multivariate Gaussian
    無需考慮新建特征值
    計算成本高,求\Sigma的inverse
    必須滿足m>n,否則\Sigma不可逆(推薦m>=10*n時才使用)

Recommender System

Recommender System Example

Content-based recommender systems

基于內(nèi)容的推薦系統(tǒng),以推薦電影為例,根據(jù)用戶的打分數(shù)據(jù)和這些分數(shù)對應(yīng)的電影特征去構(gòu)造hypothesis去預測該用戶對沒打過分數(shù)的電影的打分,然后可以根據(jù)分高的推薦.

terms

上圖中的可以理解為用戶的對不同類型電影的喜好.

cost function for user j

,這其實是一個linear regression,帶入linear regression的cost function可得recommender system用戶j的cost function如上.
cost function for all users

Gradient descent

Collaborative filtering

協(xié)同過濾的動機在于(還是拿預測電影評分舉例子):電影太多了,如果需要工作人員一個一個去看完然后給出每個電影的特征值太慢而且不現(xiàn)實.所以我們這樣想,如果我們已知用戶對于電影的喜好(\theta^{(j)}),并且知道用戶對于電影的評分(y(i,j)),那么我們可以根據(jù)這些來倒推電影的特征(x^{(i)}).

cost function for X

如上圖所示求出最優(yōu)的X.
Collaborative filtering

Collaborative filtering的思想就是隨機初始化用戶的偏好,根據(jù)用戶評分去估算電影特征X,再根據(jù)X和評分去優(yōu)化,如此往復,雖然沒給出證明,但是這樣做最后和X都會收斂.

Collaborative filtering algorithm

cost function(simultaneously)

前一節(jié)中的先優(yōu)化再優(yōu)化X的反復的過程可以合并在一起同時進行,cost fucntion 如上.
Collaborative filtering algorithm

完整的Collaborative filtering algorithm步驟如上.
注意,這里不需要\theta_0,x_0

Vectorization:Low rank matrix factorization

Y

Predicted ratings


X是的矩陣,可以看成是影片的樣本,每一行代表一部電影,每一列代表電影的特征,是的矩陣,可以看作用戶的樣本,每一行代表一個用戶,每一列代表用戶對電影特征的愛好程度.

Finding similar movies

有時候我們要根據(jù)用戶喜愛的電影類型推薦相似的電影給他,當計算出用戶喜歡的電影的特征值時,遍歷所有電影,當最小時對應(yīng)的電影j就是和i最類似的電影.

Implementational detail:Mean normalization

Users who have not rated any movies

對于從來沒有打?qū)﹄娪按蜻^分的用戶,在使用Collaborative filtering algorithm時,cost function的第一項永遠為0,那么在梯度下降算法執(zhí)行的過程中對于上圖中的Eve用戶來說,傾向于把偏好都設(shè)置為0,如果使用去預測Eve的評分那將全部是0,我們沒法給Eve做推薦,為了解決這種問題,我們需要使用Mean normalization,如下圖所示,對于Y的每一行求平均值構(gòu)成向量,再做類似于的操作,此時對于用戶j在電影i上的打分則是 ,換句話說就是對于沒有做過任何評分的用戶,將他對電影的評分設(shè)置為該電影的平均分.
Mean normalization

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容