Deep Learning2: PCA and Whitening

在Technion的暑期学校上,其实已经学过PCA,一直稀里糊涂的,知识点没有串起来

PCA和whitening 是对于数据的预处理,提高运算效率

1. PCA Principal Components Analysis 主成分析法

降低维度,数据可视化 先均值化,再将不同维度数据归一化到同一维(除以最大值)

也就是对数据进行压缩,在降维的同时能够最大程度保留数据特征

将原始数据投射到低维度空间,求正交向量\textstyle u_1 \textstyle u_2步骤如下,数据在主成分保留的特征最多

\begin{align}
\Sigma = \frac{1}{m} \sum_{i=1}^m (x^{(i)})(x^{(i)})^T. 
\end{align}

\textstyle u_1 \textstyle u_2分别是矩阵的第一特征向量和第二特征向量

得到矩阵U

\begin{align}
U = 
\begin{bmatrix} 
| & | & & |  \\
u_1 & u_2 & \cdots & u_n  \\
| & | & & | 
\end{bmatrix} 		
\end{align}

接下来对数据进行转换

\begin{align}
x_{\rm rot} = U^Tx = \begin{bmatrix} u_1^Tx \\ u_2^Tx \end{bmatrix} 
\end{align}

降维操作即只保留主要成分,其他设为0

\begin{align}
\tilde{x} = 
\begin{bmatrix} 
x_{{\rm rot},1} \\
\vdots \\ 
x_{{\rm rot},k} \\
0 \\ 
\vdots \\ 
0 \\ 
\end{bmatrix}
\approx 
\begin{bmatrix} 
x_{{\rm rot},1} \\
\vdots \\ 
x_{{\rm rot},k} \\
x_{{\rm rot},k+1} \\
\vdots \\ 
x_{{\rm rot},n} 
\end{bmatrix}
= x_{\rm rot} 
\end{align}

还原数据

\begin{align}
\hat{x}  = U \begin{bmatrix} \tilde{x}_1 \\ \vdots \\ \tilde{x}_k \\ 0 \\ \vdots \\ 0 \end{bmatrix}  
= \sum_{i=1}^k u_i \tilde{x}_i.
\end{align}

那么设定保留下来的主成分数量k 取决于保留率the percentage of variance retained

the percentage of variance retained is given by:

\begin{align}
\frac{\sum_{j=1}^k \lambda_j}{\sum_{j=1}^n \lambda_j}.
\end{align}

在图像处理,要求k的最小取值满足

\begin{align}
\frac{\sum_{j=1}^k \lambda_j}{\sum_{j=1}^n \lambda_j} \geq 0.99. 
\end{align}

一般,满足1)特征值几乎均值为零2)不同特征值方差近似

对于图像处理,由于其稳定性stationarity,2)方差已经相等,所以只用进行均值归零化

\mu^{(i)} := \frac{1}{n} \sum_{j=1}^n x^{(i)}_j

x^{(i)}_j := x^{(i)}_j - \mu^{(i)}

2. Whitening

去除噪声,消除冗余数据,特征之间相关性更小且方差相等

 \textstyle \lambda_1 and \textstyle \lambda_2是特征值,就是矩阵的对角值

\textstyle x_{{\rm PCAwhite}} \in \Re^n as follows:

\begin{align}
x_{{\rm PCAwhite},i} = \frac{x_{{\rm rot},i} }{\sqrt{\lambda_i}}.   
\end{align}

ZCA Whitening 一般不进行降维操作

\begin{align}
x_{\rm ZCAwhite} = U x_{\rm PCAwhite}
\end{align}

 

posted on 2016-10-13 17:00  Beginnerpatienceless  阅读(115)  评论(0编辑  收藏  举报