PCA whitening

对输入数据,维度为2时,想要把数据降维1维:

数据的主方向就是旋转数据的第一维。因此,若想把这数据降到一维,可令:

数据已经进行预处理(零均值),使得每个特征具有相同的均值和方差。

PCA算法将寻找一个低维空间来投影我们的数据。从下图中可以看出,是数据变化的主方向,而 是次方向。

为更形式化地找出方向,我们首先计算出协方差矩阵,如下所示:

    就是协方差矩阵的主特征向量,而是次特征向量。(按照特征值得大小选取)

向量构成了一个新基,可以用来表示数据。那么就是样本点在维度上的投影的长度(幅值)。同样的,投影到维度上的幅值。

在本例中,可得的点图如下(取  ):

  

协方差:为了衡量两个数据的相关性,一个数据朝大于均值的方向走的趋势时,另一个数据如果朝小于均值的方向走,趋势相反,协方差值为负的,负相关;如果另一个数据同意朝大于均值的方向变化,协方差为正值,正相关。如果协方差值为0,不相关。

数据白化就是为降低训练数据的冗余,降低输入的冗余性

由前面的例子,特征的分布如下图所示:

  这个数据的协方差矩阵如下:

  是不相关的, 满足我们对白化结果的第一个要求 (特征间相关性降低)。为了使每个输入特征具有单位方差,我们可以直接使用作为缩放因子来缩放每个特征 。具体地,我们定义白化后的数据 如下:

  绘制出 ,我们得到:

这些数据现在的协方差矩阵为单位矩阵 。我们说,是数据经过PCA白化后的版本: 中不同的特征之间不相关并且具有单位方差。

拿图像为例,图像中的像素之间存在很强的相关性。(在图像处理中,一个像素与相邻像素的灰度值之间有联系,所以可以利用这一点进行图像压缩)。白化就是为了减少冗余也就是减少这种相关性。PCA白化在减少特征之间相关性的处理方法与PCA算法相同,找到一个新的基,将数据投影到新的基上,也就是将原始数据做旋转变化,达到减少相关性的目标。但PCA白化与PCA有一点不同,就是处理后的数据的方差为单位方差。主要是将主轴上的数据进行了缩放处理。

ZCA白化是在PCA白化后的数据基础上做处理,主要是对数据进行旋转,使数据比较好的接近原始数据,并没有减少数据特征之间的相关性。

PCA与白化,

就是对输入数据进行预处理,

前者对数据进行降维,后者对数据进行方差处理。

时间: 2024-10-11 14:55:55

PCA whitening的相关文章

PCA和Whitening

PCA: PCA的具有2个功能,一是维数约简(可以加快算法的训练速度,减小内存消耗等),一是数据的可视化. PCA并不是线性回归,因为线性回归是保证得到的函数是y值方面误差最小,而PCA是保证得到的函数到所降的维度上的误差最小.另外线性回归是通过x值来预测y值,而PCA中是将所有的x样本都同等对待. 在使用PCA前需要对数据进行预处理,首先是均值化,即对每个特征维,都减掉该维的平均值,然后就是将不同维的数据范围归一化到同一范围,方法一般都是除以最大值.但是比较奇怪的是,在对自然图像进行均值处理时

【DeepLearning】Exercise:PCA and Whitening

Exercise:PCA and Whitening 习题链接:Exercise:PCA and Whitening pca_gen.m %%================================================================ %% Step 0a: Load data % Here we provide the code to load natural image data into x. % x will be a 144 * 10000 matr

PCA and Whitening on natural images

Step 0: Prepare data Step 0a: Load data The starter code contains code to load a set of natural images and sample 12x12 patches from them. The raw patches will look something like this: These patches are stored as column vectors in the matrix x. Step

Deep Learning by Andrew Ng --- PCA and whitening

这是UFLDL的编程练习.具体教程参照官网. PCA PCA will find the priciple direction and the secodary direction in 2-dimention examples. then x~(i)=x(i)rot,1=uT1x(i)∈R. is big when x(i)rot,2=uT2x(i) was small. so PCA drop x(i)rot,2=uT2x(i) approximate them with 0's. Whit

UFLDL教程之(三)PCA and Whitening exercise

Exercise:PCA and Whitening 第0步:数据准备 UFLDL下载的文件中,包含数据集IMAGES_RAW,它是一个512*512*10的矩阵,也就是10幅512*512的图像 (a)载入数据 利用sampleIMAGESRAW函数,从IMAGES_RAW中提取numPatches个图像块儿,每个图像块儿大小为patchSize,并将提取到的图像块儿按列存放,分别存放在在矩阵patches的每一列中,即patches(:,i)存放的是第i个图像块儿的所有像素值 (b)数据去均

【DeepLearning】Exercise:PCA in 2D

Exercise:PCA in 2D 习题的链接:Exercise:PCA in 2D pca_2d.m close all %%================================================================ %% Step 0: Load data % We have provided the code to load data from pcaData.txt into x. % x is a 2 * 45 matrix, where the

Exercise: PCA in 2D

Step 0: Load data The starter code contains code to load 45 2D data points. When plotted using the scatter function, the results should look like the following: Step 1: Implement PCA In this step, you will implement PCA to obtain xrot, the matrix in

Whitening

The goal of whitening is to make the input less redundant; more formally, our desiderata are that our learning algorithms sees a training input where (i) the features are less correlated with each other, and (ii) the features all have the same varian

Deep Learning五:PCA and Whitening_Exercise(斯坦福大学UFLDL深度学习教程)

前言 本文是基于Exercise:PCA and Whitening的练习. 理论知识见:UFLDL教程. 实验内容:从10张512*512自然图像中随机选取10000个12*12的图像块(patch),然后对这些patch进行99%的方差保留的PCA计算,最后对这些patch做PCA Whitening和ZCA Whitening,并进行比较. 实验步骤及结果 1.加载图像数据,得到10000个图像块为原始数据x,它是144*10000的矩阵,随机显示200个图像块,其结果如下: 2.把它的每