發表文章

目前顯示的是 8月, 2017的文章

Anomaly Detection - Week_9_part1

圖片
Density Estimation 異常檢測是一個非監督是學習的演算法,用於發現可能不應該屬於一個已定義的組中的數據。 Problem Motivation 假設給定資料集x(1), x(2), x(3),...,x(m),假設我們的資料都正常且屬於同一類,我們想知道新的資料是不是異常且不屬於同一類,換句話說就是要測試這個資料是否屬於該資料組的機率如何。正常來說,我們所建構的模型應該能根據該測試的資料的位置,並告訴我們告訴屬於這一組資料集的可能性p(x)。 下面是某飛機內零件的資料特徵,下面在藍色圈內的數據屬於該資料集的可能性較高,若是越外圍越偏遠的資料,其屬於該數據的機率越低。 這種方式稱作密度估計,數學上的表達式為下面: 異常偵測可應用於很多方面,例如可以應用於網站欺騙行為的偵測,蒐集使用者的行為,建立異常偵測的機率模型,如果機率小於閥值則判定你並非一般使用者。 另一種則是用於檢測工廠產品品質的偵測,偵測產品是否為良品。 再者還可用來監測數據中心電腦的異常行為,紀錄每台電腦的記憶體使用、CPU使用率、網路流量、每秒的硬碟存取數,來判斷電腦是否中毒或被駭客入侵。 -------------------------------------------------------------------------------------------------------------------------- Gaussian Distribution 本章節主要是複習一下高斯分布的基本概念,如果我們認為變數x符合高斯分布,我們會用x ~ N(𝜇, 𝜎 2 )此符號來代表,其高斯機率密度函數如下,不用強記需要上網查即可: 在此公式中,𝜇是資料集的平均,代表常態分佈的中心,𝜎是資料集的標準差,代表高斯分布的寬度,可利用該已知的資料集來求出這些數據,然後描述該高斯分布,其公式如下: -------------------------------------------------------------------------------------------------------------------------- Algorithm 關於異常...

Dimensionality Reduction - Week_8_part2

圖片
Motivation Motivation I: Data Compression 我們在處理非監督式學習的演算法的時候,會遇到降低維度的問題,會使用降低維度這方式的原因有以下幾個:一個原因是要讓數據壓縮,維度壓縮不僅可以讓資料壓縮還可以讓演算法加速,首先我們先介紹降低維度這件事,下面我們透過幾個例子來說明降低維度。 上述兩種不同的儀器來測量一些東西尺寸時,其中一個儀器的單位是英吋,另一個儀器測量的結果是釐米,我們希望將測量的結果當作機器學習的特徵,現在問題是若將兩者都作為特徵會有些重複,因此我們希望將這個二維的資料降低成一維的資料。 我們會找出一條合適的直線,將二維的數據點都投射到該直線上,然後用z (i) 當作標示,這樣我們完成了二維數據x (i) 向一維數據z (i) 的映射,這樣新的特徵只是原有特徵的近似,但這樣將我們的儲存、記憶體占用量減半,並且使我們要使用這些資料的算法可以運行的更快。 同樣的若需要將數據從三維降至二維,就需要將三維向量投射到二維的平面上,迫使所有數據都在同一個平面上,降至二維的特徵向量。 -------------------------------------------------------------------------------------------------------------------------- Motivation II:Data Visualization 在許多機器學習問題中,如果我們能將資料可視化,我們可以找到一個更好解決方案,降為可以幫助我們。 假設我們有關於許多不同國家的數據,每一個特徵向量都有50個特徵(ex/ GDP、人均GDP、平均壽命等),如果要將這個50維度的資料可視化是不可能的。使用降維的方法將其降至二維,我們便將其可視化。這樣做的問題在於,降維的算法只負責減少維度,新產生的特徵的意義必需由我們去發現。 -------------------------------------------------------------------------------------------------------------------------- Principal Component Analysis ...

Unsupervised Learning - Week_8_part1

圖片
Clustering Unsupervised Learning: Introduction 監督式學習(supervised learning)和非監督式學習(unsupervised learning)皆是機器學習的演算法的類別之一。差別在於監督式學習,其資料有標籤,非監督式學習,其資料無標籤,簡單來說以分類問題為例,若資料本身有定義分類的標籤,則適合使用監督式學習去訓練模型,若資料本身並無定義分類標籤,單純想針對資料進行結構分類,則適合使用監督式學習去訓練模型。 監督式學習 非監督式學習 K-Means Algorithm K-mean是目前最普及的聚類算法,也算是非監督式學習算法之一,K-mean是一個迭代的演算法,透過迭代的過程找到真正的聚類中心,假設我們想亦將數據聚類分成n類,其概念如下面步驟: 首先先選擇K個隨機的點,稱為聚類中心(cluster centroids)。 對於數據及中的每一個數據,按照距離K個中心的距離,將其與距離最近的中心點關聯起來,與同一個中心點關聯的所有點聚成一類。 計算每一組的平均值,將該組所關聯的中心點移動到平均值的位置。 重複步驟2-4直到中心點不再變化。 下圖是虛擬碼(用來示意程式如何執行,非程式碼) ,大寫K代表聚類中心的總數個數,小寫k是指第k個聚類中心,𝜇 1 , 𝜇 2 , 𝜇 3 ,...,𝜇 k 來表示聚類中心,用c (1) , c (2) ,...,c (m) 來儲存與第i個實例數據最近的聚類中心的索引,K-mean算法的偽代碼如下: K-mean演算法主要分為兩步驟,第一個for迴圈是用來賦值,第二個迴圈是聚類中心的移動。K-mean也可以很便利地用於將數據分為許多不同組,即使在沒有非常明顯區分的祖群的情況下也可以。下圖所示的數據包含身高和體重兩項特徵構成,利用K-mean演算法將數據分為三類用於幫助確定要生產的T-shirt的三種尺寸。 -------------------------------------------------------------------------------------------------------------------------- Optimizati...

Support Vector Machines - Week_7

圖片
Large Margin Classification Optimization Objective 這個章節我們會介紹最後一種SVM(Support Vector Machine)向量機的機器學習演算法,這種演算法是由邏輯回歸演算法(logisitic regression)所推導演化而成。 這兩個演算法基本上就是優化對象不一樣而已,logistic regression優化對象為正規項,SVM優化對象為前面一項,而 ƛ 和( 1 / m )基本上就算是常數項。 -------------------------------------------------------------------------------------------------------------------------- Large Margin Intuition 支持向量機(SVM)也被稱作最大間隔分類器(Large Margin Classifier),其原因是因為支持向量機演算法可以嘗試發現一個與樣本數聚集之前有著最大間隔的判定邊界。 上圖是一個可以用線性來區分的分類問題,圖中青草綠和粉紅色兩條線代表著兩條邏輯回歸的判定邊界,而黑色的線代表示支持向量機所判定的邊界,從圖上可以看出來黑色的線分類似乎是比較合理的,藍色的兩條線代表支持向量機的判定邊界和樣本數據之間的間隔。 接著我們來思考支持向量機裡面的正規化常數C所扮演的角色,下面是向量支持機數學式: 假如我們選擇C是一個非常大的數值,那麼讓價值函數最小化的過程中,我們希望找出y=0和y=1兩種情況下都使得價值函數左邊這項盡量為零的參數,如果我們找到這樣的參數,則我們的最小化問題便轉成下面的數學式。 當上面這種情況下,我們可以得出支持向量機判定邊界就如同上面的黑線那樣,具有嘗試使得判斷邊界和樣本數據間的間隔最大的特性。 然而使得判定邊界與樣本數據之間的間隔最大並不總是好事。假使,我們的數據及如下圖: 我們在數據及中加入一個較為明顯的異常值,討論異常值的影響,如果我們再選取較大的C值時,會導致得到支持向量機判定界如同途中粉紅色所示,似乎不是非常的合理,但如果我們選擇較小的C值,那麼可能會如向量機判定邊界就如同黑色...