把幾個降維的演算法(FA PCA SVD ICA LPP LDA )歸納一下
因子分析(FA)
因子分析其實就是認為高維樣本點實際上是由低維樣本點經過高斯分佈、線性變換、誤差擾動生成的,因此高維資料可以使用低維來表示(本質上就是一種降維演算法)。
因子分析(factor analysis)是一種資料簡化的技術。它通過研究眾多變數之間的內部依賴關係,探求觀測資料中的基本結構,並用少數幾個假想變數來表示其基本的資料結構。這幾個假想變數能夠反映原來眾多變數的主要資訊。原始的變數是可觀測的顯在變數,而假想變數是不可觀測的潛在變數,稱為因子。
主成分分析(PCA)
這個比較簡單,主要是去相關(注意不是去獨立,去獨立是ICA的本事),尋找方差最大的投影方向,或者理解成能量最大化逼近(據Andrew說PCA的解釋有9,10來種)。然後建議看看Andrew的PCA的課,最後講到的applications會很有啟發,讓人意識到PCA並不僅僅是一個降維的工具,發揮點想象力還可以有別的作用,簡單地摘抄如下:
Applications:
1.Visualization
(降維後以便資料視覺化)
2.Compression
(資料壓縮儲存)
3.Learning
(特徵維數太大時易過擬合但在工業界有點濫用了。)
4.Anomaly detection
(看異常資料是否落在子空間,並不是一個好的檢測演算法)
5.Matching/distance calculations
(如人臉識別 將灰度圖表示成一維的向量,找到PCA的子空間,使用子空間投影距離來度量兩張人臉的相似度,而不是傳統的歐幾里得距離。簡直酷斃了!)
在lecture15中,Andrew又補充了一個 Latent Semantic Indexing (LSI) 相當於上節課新增的一個application。 沒聽太明白,大概意思好像是說判斷兩個documents的相似性,如果用傳統的餘弦距離的話,study和learn就是正交的,相似度為0,而使用PCA則很好的避免了這個缺點,因為我們使用了在主方向或者子空間的投影距離來衡量相似度,這樣的話,learn和study仍會保留正的相關性。
關於FA和PCA(都是認為資料存在於子空間),高斯混合模型(GMM,Gaussian Mixture Model)和K-means(都是聚類演算法)的一個很好的圖表區分。
具體使用哪種演算法取決於你認為資料是結合在資料塊中還是存在於子空間中。
奇異值分解(SVD)
從Andrew的課來看:
SVD 相當於an implementation of PCA
1.現在的計算機計算SVD已經很成熟了,Andrew本人將其視作平方運算這樣的計算。
2.用SVD來實現PCA,避免了高維sigma矩陣(設計矩陣/協方差矩陣)的計算,太妙了!!!
獨立成分分析(ICA)
動機源自於cocktail party problem(雞尾酒會問題),大概聯想一下就知道ICA主要是要幹嘛的;ICA與被稱為盲源分離
推薦電子工業出版社的一本中譯本教材《獨立成分分析》,稍稍一讀感覺之前到處蒐羅資料的時間真是浪費了,很多時候確實是外國的月亮更圓啊。
下面摘錄一下lecture15(前半節課講的LSI和SVD,後半節課講的ICA)中關於ICA的部分:stems from cocktail party problem, 目的是分離出不同講話人的聲音(獨立成分)。
先講一下cdf(cumulative distribution function, 累積分佈函式),其實就是概率論中的分佈函式。
開始推導ICA,可能寫得比較亂,順序看就行了(主要是三張圖片):
源聲音恢復過程中有兩個ambiguities
1,order of speaker(意思是分離出來的聲音/獨立成分與說話人沒有明確對應關係)
2,signs(意思是分離出來的聲音正負也比較ambiguous??)
ICA依賴於S(源聲音,speakers)是non-Gaussian分佈的,如果是高斯分佈則無法使用ICA,因為高斯分佈是旋轉對稱的,無法分辨出軸到底在哪。。。 不懂??
上圖中的概率變換公式如果是一維的可以推導,但是現在這種形式不知道怎麼來的,暫且這麼認為吧??
選擇sigmoid作為分佈函式的原因是因為方便(而且它不是高斯的分佈函式),沒有什麼深層次原因。
看起來比較easy的感覺。(圖片中的stochastic gradient ascent為隨機梯度上升,與batch gradient ascent相對應。 )
應用:
EEG圖中減去心跳與眨眼的電位(用ICA提取)
至此,ICA大致也掌握了!
區域性保留投影(LPP)
最早是何曉飛(芝加哥大學,現在在浙大CAD)發表在NIPS上的文章提出來的,原文摘要稱”LPP should be seen as an alternative to Principal Component Analysis (PCA)”.
線性判別式分析( LDA)
LDA也叫做Fisher線性判別(Fisher Linear Discriminant ,FLD),是模式識別的經典演算法,它是在1996年由Belhumeur引入模式識別和人工智慧領域的。線性鑑別分析的基本思想是將高維的模式樣本投影到最佳鑑別向量空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間中有最佳的可分離性。