1. 程式人生 > >【機器學習】簡述多種降維演算法

【機器學習】簡述多種降維演算法

【轉載請註明出處】chenrudan.github.io

最近看了一些關於降維演算法的東西,本文首先給出了七種演算法的一個資訊表,歸納了關於每個演算法可以調節的(超)引數、演算法主要目的等等,然後介紹了降維的一些基本概念,包括降維是什麼、為什麼要降維、降維可以解決維數災難等,然後分析可以從什麼樣的角度來降維,接著整理了這些演算法的具體流程。主要目錄如下:

老規矩,先上一個各個演算法資訊表,X表示高維輸入矩陣大小是高維數D乘以樣本個數N,C=XXTZ表示降維輸出矩陣大小低維數d乘以N,E=ZZT,線性對映是Z=WTX,高維空間中兩兩之間的距離矩陣為A,Sw,Sb分別是LDA的類內散度矩陣和類間散度矩陣,k表示流形學習中一個點與k個點是鄰近關係,F

表示高維空間中一個點由周圍幾個點的線性組合矩陣,M=(IF)(IF)T表示不確定。P是高維空間中兩點距離佔所有距離比重的概率矩陣,Q低維空間中兩點距離佔所有距離比重的概率矩陣。l表示全連線神經網路的層數,Dl表示每一層的節點個數。

1

圖1 不同降維演算法對比

這裡autoencoder是否去中心化個人覺得還是有點疑問,在處理影象資料的時候,會對輸入圖片做一個變到0均值的預處理,但是這個操作是針對一張樣本內減均值[1],這裡的去中心化指的是針對某一維資料減均值,並不是一個概念。下面開始具體談談降維相關的內容。

1. 降維基本概念

降維的意思是能夠用一組個數為d的向量zi來代表個數為D的向量x

i所包含的有用資訊,其中d<D。假設對一張512*512大小的圖片,用svm來做分類,最直接的做法是將圖按照行或者列展開變成長度為512*512的輸入向量xi,跟svm的引數相乘。假如能夠將512*512的向量在保留有用資訊的情況下降維到100,那麼儲存輸入和引數的空間會減少很多,計算向量乘法的時間也會減少很多。所以降維能夠有效的減少計算時間。而高維空間的資料很有可能出現分佈稀疏的情況,即100個樣本在100維空間分佈肯定是非常稀疏的,每增加一維所需的樣本個數呈指數級增長,這種在高維空間中樣本稀疏的問題被稱為維數災難。降維可以緩解這種問題。

而為什麼可以降維,這是因為資料有冗餘,要麼是一些沒有用的資訊,要麼是一些重複表達的資訊,例如一張512*512的圖只有中心100*100的區域內有非0值,剩下的區域就是沒有用的資訊,又或者一張圖是成中心對稱的,那麼對稱的部分資訊就重複了。正確降維後的資料一般保留了原始資料的大部分的重要資訊,它完全可以替代輸入去做一些其他的工作,從而很大程度上可以減少計算量。例如降到二維或者三維來視覺化。

2. 從什麼角度出發來降維

一般來說可以從兩個角度來考慮做資料降維,一種是直接提取特徵子集做特徵抽取,例如從512*512圖中只取中心部分,一種是通過線性/非線性的方式將原來高維空間變換到一個新的空間,這裡主要討論後面一種。後面一種的角度一般有兩種思路來實現[2],一種是基於從高維空間對映到低維空間的projection方法,其中代表演算法就是PCA,而其他的LDA、Autoencoder也算是這種,主要目的就是學習或者算出一個矩陣變換W,用這個矩陣與高維資料相乘得到低維資料。另一種是基於流形學習的方法,流形學習的目的是找到高維空間樣本的低維描述,它假設在高維空間中資料會呈現一種有規律的低維流形排列,但是這種規律排列不能直接通過高維空間的歐式距離來衡量,如下左圖所示,某兩點實際上的距離應該是下右圖展開後的距離。如果能夠有方法將高維空間中流形描述出來,那麼在降維的過程中就能夠保留這種空間關係,為了解決這個問題,流形學習假設高維空間的區域性區域仍然具有歐式空間的性質,即它們的距離可以通過歐式距離算出(Isomap),或者某點座標能夠由臨近的節點線性組合算出(LLE),從而可以獲得高維空間的一種關係,而這種關係能夠在低維空間中保留下來,從而基於這種關係表示來進行降維,因此流形學習可以用來壓縮資料、視覺化、獲取有效的距離矩陣等。

1

圖2 流形學習

3. 幾種降維方法流程

3.1 主成分分析PCA

PCA由Karl Pearson在1901年發明,是一種線性降維方法,高維空間(維數為D)的某個點xi=(x1,x2,,xD)通過與矩陣W相乘對映到低維空間(維數為d,d<D)中的某個點zi=WTxi,其中W的大小是Dd,i對應的是第i個樣本點。從而可以得到N個從D維空間對映到d維空間的點,PCA的目標是讓對映得到的點zi儘可能的分開,即讓N個zi的方差儘可能大。假如D維空間中的資料每一維均值為0,即ixi=0,那麼兩邊乘上WT得到的降維後的資料每一維均值也是0,考慮一個矩陣C=1NXXT,這個矩陣是這組D維資料的協方差矩陣,可以看出對角線上的值是D維中的某一維內的方差,非對角線元素是D維中兩維之間的協方差。

<br>1NXXT=<br>1Ni=1Nx21iamp;amp;1Ni=1NxT1ixDi&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp

相關推薦

機器學習簡述多種演算法

【轉載請註明出處】chenrudan.github.io 最近看了一些關於降維演算法的東西,本文首先給出了七種演算法的一個資訊表,歸納了關於每個演算法可以調節的(超)引數、演算法主要目的等等,然後介紹了降維的一些基本概念,包括降維是什麼、為什麼要降維、降維可以

MARK:簡述多種演算法

最近看了一些關於降維演算法的東西,本文首先給出了七種演算法的一個資訊表,歸納了關於每個演算法可以調節的(超)引數、演算法主要目的等等,然後介紹了降維的一些基本概念,包括降維是什麼、為什麼要降維、降維可以解決維數災難等,然後分析可以從什麼樣的角度來降維,接著整理了這些演算法的具體流程。主要目錄如下:

機器學習K-means聚類演算法初探

資料聚類是對於靜態資料分析的一門技術,在許多領域內都被廣泛地應用,包括機器學習、資料探勘、模式識別、影象分析、資訊檢索以及生物資訊等。聚類是把相似的物件通過靜態分類的方法分成不同的組別或者更多的子集,這樣讓在同一個子集中的成員物件都有相似的一些屬性,常見的包括在座標系中

簡述多種演算法

本文首先給出了七種演算法的一個資訊表,歸納了關於每個演算法可以調節的(超)引數、演算法主要目的等等,然後介紹了降維的一些基本概念,包括降維是什麼、為什麼要降維、降維可以解決維數災難等,然後分析可以從什麼樣的角度來降維,接著整理了這些演算法的具體流程。主要目錄如下:

機器學習使用python實現kNN演算法

kNN(k-nearest neighbor)是一種基本的分類與迴歸的演算法。這裡我們先只討論分類中的kNN演算法。 k鄰近演算法的輸入為例項的特徵向量,對對應於特徵空間中的點;輸出為例項的類別,可以取多類,k近鄰法是建設給定一個訓練資料集,其中的例項類別已定,分類時,對於

機器學習人像識別(二)——PCA

  降維沒有什麼祕訣。我用了python裡sklearn.decomposition模組的IncrementalPCA。   程式碼如下: X = np.array(dots) # do

機器學習關於t-sne:、視覺化

關於t-sne:降維、視覺化 機器學習中,我們的使用的資料基本都是高維的,所以我們很難直接從資料中觀察分佈和特徵。因此出現了很多資料降維的手段幫助我們提取特徵和視覺化資料。這就是流行學習方法(Manifold Learning):假設資料是均勻取樣於一個高維歐

機器學習資料—主成分分析(PCA)

本文程式碼推薦使用Jupyter notebook跑,這樣得到的結果更為直觀。 主成分分析(PCA) 特徵抽取通常用於提高計算效率,降低維度災難。 主成分分析(Principe component analysis,PCA):        是一種廣泛應用於不同領域的無監督

機器學習資料—線性判別分析(LDA)

本文程式碼推薦使用Jupyter notebook跑,這樣得到的結果更為直觀。 線性判別分析(Linear Discriminant Analysis,LDA)是一種可作為特徵抽取的技術 LDA可以提

機器學習5種距離度量方法詳解+Python實現([]+lambda+np.frompyfunc+向量法等多種方法實現)

介紹的五種距離度量方法是:歐氏距離(Euclidean Distance),曼哈頓距離(Manhattan Distance),夾角餘弦(Angle Cosine),切比雪夫距離(Chebyshev Distance),漢明距離(Hamming Distance)。1.歐式距

機器學習梯度下降演算法分析與簡述

梯度下降演算法分析與簡述 梯度下降(gradient descent)是一種最優化演算法,基於爬山法的搜尋策略,其原理簡單易懂,廣泛應用於機器學習和各種神經網路模型中。在吳恩達的神經網路課程中,梯度下降演算法是最先拿來教學的基礎演算法。 梯度下降演算法的

機器學習影象中的噪方法之一:低秩

概述 近幾年,低秩矩陣恢復(LRMR)廣泛用於影象處理用途影象恢復,比如去噪、去模糊等。一幅清晰的自然影象其資料矩陣往往是低秩或者近似低秩的,但存在隨機幅值任意大但是分佈稀疏的誤差破壞了原有資料的低秩性。低秩矩陣恢復是將退化影象看做一組低維資料加上噪聲形成的,因此退化前的資料就可以通過低秩矩陣來

機器學習隨機森林 Random Forest 得到模型後,評估參數重要性

img eas 一個 increase 裏的 sum 示例 增加 機器 在得出random forest 模型後,評估參數重要性 importance() 示例如下 特征重要性評價標準 %IncMSE 是 increase in MSE。就是對每一個變量 比如 X1

機器學習主成分分析PCA(Principal components analysis)

大小 限制 總結 情況 pca 空間 會有 ges nal 1. 問題 真實的訓練數據總是存在各種各樣的問題:  1、 比如拿到一個汽車的樣本,裏面既有以“千米/每小時”度量的最大速度特征,也有“英裏/小時”的最大速度特征,

機器學習1 監督學習應用與梯度下降

例如 tla ges 機器 fprintf lns 找到 輸入 style 監督學習 簡單來說監督學習模型如圖所示 其中 x是輸入變量 又叫特征向量 y是輸出變量 又叫目標向量 通常的我們用(x,y)表示一個樣本 而第i個樣本 用(x(i),y(i))表示 h是輸出函

機器學習EM的算法

log mea www 優化 問題 get href ive 路線 EM的算法流程: 初始化分布參數θ; 重復以下步驟直到收斂: E步驟:根據參數初始值或上一次叠代的模型參數來計算出隱性變量的後驗概率,其實就是隱性變量的期望。作為隱藏變量的

機器學習DBSCAN Algorithms基於密度的聚類算法

多次 使用 缺點 有效 結束 基於 需要 att 共享 一、算法思想: DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個比較有代表性的基於密度的聚

機器學習數據預處理之將類別數據轉換為數值

行數據 pri and slab form ces nbsp 遍歷 encode 在進行python數據分析的時候,首先要進行數據預處理。 有時候不得不處理一些非數值類別的數據,嗯, 今天要說的就是面對這些數據該如何處理。 目前了解到的大概有三種方法: 1,通過LabelE

機器學習對梯度下降算法的進一步理解

獨立 com 線性回歸 執行 ont 執行過程 wid 簡單的 技術 單一變量的線性回歸 讓我們依然以房屋為例,如果輸入的樣本特征是房子的尺寸,我們需要研究房屋尺寸和房屋價格之間的關系,假設我們的回歸模型訓練集如下 其中我們用 m表示訓練集實例中的實例數量, x代表特

機器學習手寫數字識別算法

alt gdi 數字識別 -1 轉換 error: erro files turn 1.數據準備 樣本數據獲取忽略,實際上就是將32*32的圖片上數字格式化成一個向量,如下: 本demo所有樣本數據都是基於這種格式的 訓練數據:將圖片數據轉成1*1024的數組,作為一