1. 程式人生 > >PCA與LLE

PCA與LLE

tail art 曲面 平移 假設 協方差 圖片 得到 路徑

參考: LLE原理總結

個人理解

PCA 降維的缺陷:高維空間各個樣本之間存在一些線性關系,降維之後並沒有保留這些關系。比如,在高維空間中,其最短路徑並不是三維空間中的兩點之間直線最短,而是如下圖的曲面距離,而我們降維後,就變成了投影距離。
技術分享圖片

因此,我們希望能夠保留原空間的距離(只是一個例子),如下圖,是將原曲面展開,而不是直接投影到平面中。

技術分享圖片

LLE 算法

與 PCA 不同的是,LLE 保留了高維空間的局部線性關系。
LLE在降維之前,先訓練出每個樣本與其最近的k個樣本的線性關系——weights,再把該線性關系套用在降維空間後的每個樣本。


補充

參考:PCA與kernel PCA

【關於降維/冗余】

如何理解冗余?

如二維平面上,y=x 附近的數據點有很強的線性相關性,也就是說其中一維是冗余的,我們只要知道其中一維,就可以推出另一維,因此可以進行降維,對於本例可以進行平移+旋轉,使其分布在x軸上。

如何用數學來表示這種思想?

方差/協方差最大化,即投影後的點之間方差最大。方差和協方差的關系:當數據點歸一化和中心化後,二者最大化的方法是等價的,一般直接求協方差的最大化。具體參考鏈接的公式推導。

【kernel PCA】

假設K是已知的。

與上面的一樣,我們同樣要求協方差的最大化,
\[ \begin{align} C&=\sum_{i=1}^{N}\phi(x_i)\phi(x_i^T)\ &=[\phi(x_1),...,\phi(x_N)]\begin{bmatrix}\phi(x_1)^T\\...\\\phi(x_N)^T\end{bmatrix}\ &=X^TX\\end{align} \]

但是,Φ是未知的,或者難以計算的,因此我們設法借助核函數來求解.
\[ \begin{align} K&=XX^T\&=\begin{bmatrix}\phi(x_1)^T\\...\\\phi(x_N)^T\end{bmatrix}[\phi(x_1),...,\phi(x_N)]\&=\begin{bmatrix}\phi(x_1)^T\phi(x_1) &... &\phi(x_1)^T\phi(x_N)\...&...&...\\phi(x_N)^T\phi(x_1)&...&\phi(x_N)^T\phi(x_N)\end{bmatrix}\&=\begin{bmatrix}K(x_1,x_1) &... &K(x_1,x_N)\...&...&...\K(x_N,x_1)&...&K(x_N,x_N)\end{bmatrix} \end{align} \]


【註意】這裏的K=XX^T和要求的協方差X^TX並不相等,但二者肯定存在某種關系:
\[ \begin{align} XX^Tu&=\lambda u&u為單位化的特征向量\X^TX(X^Tu)&=\lambda (X^Tu) &X^Tu為特征向量,但不一定是單位化的\\end{align} \]
因此,要對特征向量X^Tu單位化:
\[ v=\frac{X^Tu}{||X^Tu||}=\frac{X^Tu}{\sqrt{u^TXX^Tu}}=\frac{X^Tu}{\sqrt{u^T\lambda u}}=\frac{X^Tu}{\sqrt{\lambda}}\其中,u^Tu=1,v可以看作一個方向軸/維度\記\alpha=\frac{u}{\sqrt{\lambda}},為一個列向量v,所以:v=\sum_{i=1}^{N}\alpha_i\phi(x_i) \]
但是,X^T仍然是未知的,所以v也是未知的,即高維度的特征空間的方向軸未知,但是,我們可以直接求Φ(xj)在特征空間v方向上的投影(這才是我們最終目的):
\[ \begin{align} v^T\phi(x_j)&=\frac{u^TX\phi(x_j)}{\sqrt{\lambda}}\&=\frac{u^T}{\sqrt{\lambda}}\begin{bmatrix}\phi(x_1)^T\\...\\\phi(x_N)^T\end{bmatrix}\phi(x_j)\&=\frac{u^T}{\sqrt{\lambda}}\begin{bmatrix}K(x_1,x_j)\\...\\K(x_N,x_j)\end{bmatrix} \end{align} \]

因此,我們只要求出核函數的特征值及其對應的單位特征向量,就可以得到高維空間的投影。

PCA與LLE