ZCA美白和PCA美白有什么区别?


59

我对ZCA增白和普通增白感到困惑(通过将主成分除以PCA特征值的平方根获得)。我所知道的,

xZCAwhite=UxPCAwhite,
其中是PCA特征向量。U

ZCA美白有什么用途?普通美白和ZCA美白有什么区别?


2
根据“神经网络:交易技巧”,PCA和ZCA的区别仅在于轮换。
马丁·托马

Answers:


80

让您的(居中的)数据存储在矩阵,在列中具有特征(变量),在行中具有数据点。假设协方差矩阵在列中具有特征向量,并且在的对角线上具有特征值,因此。n×dXdnC=XX/nEDC=EDE

然后,您所谓的“正常” PCA白化转换由,请参见例如我的答案如何使用主成分分析?WPCA=D1/2E

但是,这种增白转化并不是唯一的。实际上,白化后的数据在旋转后仍将保持白化,这意味着具有正交矩阵任何也是白化变换。在所谓的ZCA白化中,我们将(协方差矩阵的特征向量堆叠在一起)作为该正交矩阵,即W=RWPCARE

WZCA=ED1/2E=C1/2.

ZCA转换(有时也称为“马哈拉诺比斯转换”)的一项定义属性是,它会导致白化的数据尽可能接近原始数据(在最小二乘意义上)。换句话说,如果您要使最小化,而被美白了,那么您应该将。这是2D插图:XXA2XAA=WZCA

PCA和ZCA美白

左子图显示了数据及其主轴。请注意分布右上角的深色阴影:它指示了其方向。的行被示出在第二副区:这些是数据投影到向量。变白后(下图),分布看起来很圆,但请注意,它看起来也旋转了-暗角现在在东侧,而不是在东北侧。行显示在第三副区(请注意,他们不是正交的!)。变白后(如下所示),分布看起来很圆,并且其定向方式与原始方式相同。当然,通过旋转可以将PCA白数据转换为ZCA白数据。WPCAWZCAE

Bell和Sejnowski 1996年似乎引入了“ ZCA”一词在独立成分分析的上下文中,代表“零相成分分析”。有关更多详细信息,请参见此处。您最有可能在图像处理方面遇到了这个术语。事实证明,当应用于一堆自然图像(以像素为特征,每个图像作为数据点)时,主轴看起来像频率增加的傅立叶分量,请参见下面图1的第一列。因此,它们非常“全球化”。另一方面,ZCA转换的行看起来非常“局部”,请参见第二列。正是因为ZCA尝试尽可能少地转换数据,所以每一行最好与原始基函数(应该是只有一个活动像素的图像)接近。这是可以实现的,

Bell和Sejnowski的PCA和ZCA,1996年

更新资料

ZCA过滤器和使用ZCA转换的图像的更多示例在Krizhevsky,2009,从Tiny Images学习多层特征中给出,另请参见@bayerj的答案(+1)中的示例。

我认为这些示例说明了何时ZCA白化可能比PCA更可取。即,ZCA增白的图像仍然类似于正常图像,而PCA增白的图像看起来与正常图像完全不同。对于像卷积神经网络这样的算法(例如在克里日夫斯基的论文中使用的算法),这可能很重要,该算法将相邻像素一起处理,因此极大地依赖于自然图像的局部属性。对于大多数其他机器学习算法,使用PCA或ZCA对数据​​进行白化应该绝对无关紧要


谢谢!我有一个问题:ZCA基本上是在更改访问权限,而不是在很大程度上更改数据位置吗?(根据您的阴影区域)。另外,这是否意味着每当我们进行美白时,都应该进行ZCA美白?我们将如何决定使用PCAwhitening或ZCA whitening?
RockTheStar

4
(1)我不确定您的意思,但是我会这样说:ZCA拉伸数据集以使其呈球形,但尝试不旋转它(而PCA确实旋转了很多)。(2)实际上,我认为在大多数情况下,使用PCA或ZCA白化都没有关系。我能想象到ZCA更好的唯一情况是卷积神经网络的预处理。请查看我的答案的更新。
变形虫说恢复莫妮卡2014年

5
PCA就像进行傅立叶变换,ZCA就像是应用(零相位)线性滤波器进行变换,乘法和变回。因此,我们看到在每个像素处都有滤波器脉冲响应。该操作涉及的“组件”是相同的,E的列是“主要组件” ...我的意思是,您也可以调用W组件的行,但是我认为了解以下内容很重要涉及相同的“主要组件”,并且当您应用ZCA时,您将回到原始域,而使用PCA则需要“重构”信号。
除法零度'17

1
@dividebyzero +1对您的最后评论,我认为这是一个有价值的观点。无论如何,我希望我最后一个数字的含义(摘自链接文件)现在已经清楚了。
变形虫说莫妮卡(Reonica Monica)

1
@learning您在该页面上看不到PCA变白的图像!它们显示“ PCA尺寸减小的图像”,即通过PCA进行的重建,但不显示PCA投影本身。
变形虫说莫妮卡(Monica)恢复职权

23

给定协方差矩阵的特征分解 ,其中是特征值的对角矩阵,普通的美白方法是将数据转换为协方差矩阵对角线的空间: (有些使用符号的滥用)。这意味着我们可以通过根据变换数据来使协方差对角化

X¯X¯T=LDLT
D=diag(λ1,λ2,,λn)
D1L1X¯X¯TLTD1=D1L1LDLTLTD1=I
X~=D1L1X.

这是用PCA进行的普通美白。现在,ZCA做了一些不同的事情-它向特征值添加了一个小的epsilon并将数据转换回去。 这是ZCA前后CIFAR数据集中的一些图片。

X~=L(D+ϵ)1L1X.

在ZCA之前:

在ZCA之前

ZCA后带有ϵ=0.0001

在ZCA 1e-4之后

ZCA后ϵ=0.1

在ZCA与.1之后

对于视觉数据,高频数据通常将驻留在较低特征值所覆盖的空间中。因此,ZCA是加强这些效果的一种方法,可导致更多可见的边缘等。


1
逆运算前不应该添加epsilon吗?我认为仅在特征值接近零的情况下添加它即可稳定反演。因此,实际上,如果为ZCA增白添加它是有意义的,那么为PCA增白添加它也是有意义的。
变形虫说恢复莫妮卡2014年

是的,在相反之前,谢谢。由于实际上通常是使用SVD完成的,因此我根本不知道是否需要稳定反转。
bayerj 2014年

我添加了另一张图片来显示效果。
bayerj 2014年

2
+1,但我还有许多其他问题。(1)我所说的epsilon并不是ZCA特有的,它也可以用于PCA增白。(2)我不确定我是否理解您对SVD的评论:SVD与否,一个需要反转奇异值,因此需要epsilon。(3)PCA白化转换为,您将其写成反过来,这使第二个公式中的计算错误了...(4)漂亮的数字,它们在哪里从?(5)您知道在什么情况下ZCA增白优于PCA增白,为什么?D1/2L
变形虫说恢复莫妮卡2014年

(1)同意。我对这意味着什么没有直觉。(2)我的分解知识在这里是不完整的,但是我假设奇异协方差矩阵上的经典反演矩阵将失败,而数据矩阵上产生奇异协方差的SVD不会失败。(3)谢谢,将其修复。(4)从我的代码中:)(5)我假设,对于许多给出不完整表示的算法(例如GainShape K-Means,自动编码器,RICA)和/或做类似工作的特征(如PCA代数独立性),这很痛苦,但是我对此并不了解。
bayerj 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.