600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > PCA Whitening ZCA Whitening

PCA Whitening ZCA Whitening

时间:2019-04-22 17:04:07

相关推荐

PCA Whitening ZCA Whitening

本篇文章主要内容来自于Andrew的书,链接为http://ufldl.stanford.edu/tutorial/unsupervised/PCAWhitening/

PCA

PCA也就是主成分分析,是用来降维的一种手段,它可以显著地提高算法的运行速度。

当你在处理图像的时候,输入通常是冗余的,这是因为图像中相邻的像素点往往是关联的,PCA可以用来将图像的原始输入近似为一个更低维度的输入,并且保证误差较小。

对于降维的一个直观理解如下图所示:

原始图像中数据是二维的,但是明显看出数据是近似于某种线性结构的。PCA可以将数据投影到一个一维子空间上。

定义矩阵:

Σ=1m∑i=1m(x(i))(x(i))T.

如果x的均值为0,则Σ就是x的协方差矩阵。

记Σ的特征向量为u1和u2,u1对应的特征值较大

http://cs229.stanford.edu/notes/cs229-notes10.pdf 有具体推导

对于各个维度上均值为0方差相等的输入x,首先计算Σ,之后将其特征向量存储在矩阵U中,需要注意的是U是正交阵。

我们可以将原始向量x进行旋转,得到

xrot=UTx=[uT1xuT2x]

如果我们想要将x降到k个维度,那么我们就选取Xrot的前k个元素。

我们同样可以利用矩阵U将降维后的数据进行还原。

那么,我们如何确定应该保留多少个元素呢?如果k太大,那么降维的程度很小,如果k太小,那么可能损失了大量的细节。这里给了一个指标

∑kj=1λj∑nj=1λj.

用来表示保留的variance程度。

对于图像来说,通常保留99%,有时也会保留90-98%.

图像上的PCA

如果在其他应用上采用PCA,那么你可能需要对每个特征分别处理,将各个特征的均值处理为0,方差为单位值,但是在图像上通常不这么做。

对于自然图像而言,对每一个像素单独估计均值和方差意义不大,这是因为图像上一部分的统计特性通常和其他部分类似(stationarity)。

为了使PCA较好地工作,我们需要两方面:

特征均值近似为0不同的特征方差与其他特征类似

对于图像而言,即使我们不做方差归一化,第二条也可以满足。因此,我们通常不会做方差归一化处理(音频频谱,文本(BOW)也不做)

实际上,PCA返回的特征向量不随数据的缩放而变化。

我们所需要做的事情是均值归一化,

需要注意的是,对每个图像, 我们需要单独做以上两步。

如果你要处理其他的图片(非自然图片,如手写字,背景为白中里面有个单独的物体等),可能要采用其他的normalization

Whitening

白化的目的是:

特征相互之间的关联很小特征有相同的方差

我们之前通过计算使得特征间关系很小

计算得到的协方差矩阵为

对角两个值其实就是特征值。

为了使特征的方差为单位值,我们可以对特征进行缩放,得到白化后的值

这是,协方差矩阵为单位矩阵I。

如果你想要数据白化且维度比原始维度要小,那么你可以只保留的前k个元素。当我们把PCA whitening和正则化结合时,的后几个元素接近为0,可以去掉。

ZCA Whitening

实际上,这种使数据协方差矩阵为I的处理方法并不唯一,如果R是正交阵,也就是,那么协方差矩阵也为I,

在ZCA白化中,我们选择R=U,定义

对于所有可能的R,这种旋转使得XzCAwhite尽可能接近原始输入数据x

当使用ZCA白化时,我们通常保留数据的全部n个维度,不去降维。

在实际使用PCA或者ZCA时,有一些特征值λ接近0,而我们在normalization时需要除以,会使得数据不稳定。因此,我们通常会做一点regularization,也就是取一个很小的常数ε,通常为

xPCAwhite,i=xrot,iλi+ϵ−−−−−√.

对于图像来说,添加ε可以轻微的对输入进行平滑,还可以减少一些像素的走样,可以提高学习的效果。

ZCA将数据从X映射到XzCAwhite,其实也是生物上眼睛处理图像的近似过程。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。