Answers:
让您的(居中的)数据存储在矩阵,在列中具有特征(变量),在行中具有数据点。假设协方差矩阵在列中具有特征向量,并且在的对角线上具有特征值,因此。
然后,您所谓的“正常” PCA白化转换由,请参见例如我的答案如何使用主成分分析?
但是,这种增白转化并不是唯一的。实际上,白化后的数据在旋转后仍将保持白化,这意味着具有正交矩阵任何也是白化变换。在所谓的ZCA白化中,我们将(协方差矩阵的特征向量堆叠在一起)作为该正交矩阵,即
ZCA转换(有时也称为“马哈拉诺比斯转换”)的一项定义属性是,它会导致白化的数据尽可能接近原始数据(在最小二乘意义上)。换句话说,如果您要使最小化,而被美白了,那么您应该将。这是2D插图:
左子图显示了数据及其主轴。请注意分布右上角的深色阴影:它指示了其方向。的行被示出在第二副区:这些是数据投影到向量。变白后(下图),分布看起来很圆,但请注意,它看起来也旋转了-暗角现在在东侧,而不是在东北侧。行显示在第三副区(请注意,他们不是正交的!)。变白后(如下所示),分布看起来很圆,并且其定向方式与原始方式相同。当然,通过旋转可以将PCA白数据转换为ZCA白数据。
Bell和Sejnowski 1996年似乎引入了“ ZCA”一词在独立成分分析的上下文中,代表“零相成分分析”。有关更多详细信息,请参见此处。您最有可能在图像处理方面遇到了这个术语。事实证明,当应用于一堆自然图像(以像素为特征,每个图像作为数据点)时,主轴看起来像频率增加的傅立叶分量,请参见下面图1的第一列。因此,它们非常“全球化”。另一方面,ZCA转换的行看起来非常“局部”,请参见第二列。正是因为ZCA尝试尽可能少地转换数据,所以每一行最好与原始基函数(应该是只有一个活动像素的图像)接近。这是可以实现的,
更新资料
ZCA过滤器和使用ZCA转换的图像的更多示例在Krizhevsky,2009,从Tiny Images学习多层特征中给出,另请参见@bayerj的答案(+1)中的示例。
我认为这些示例说明了何时ZCA白化可能比PCA更可取。即,ZCA增白的图像仍然类似于正常图像,而PCA增白的图像看起来与正常图像完全不同。对于像卷积神经网络这样的算法(例如在克里日夫斯基的论文中使用的算法),这可能很重要,该算法将相邻像素一起处理,因此极大地依赖于自然图像的局部属性。对于大多数其他机器学习算法,使用PCA或ZCA对数据进行白化应该绝对无关紧要。
给定协方差矩阵的特征分解 ,其中是特征值的对角矩阵,普通的美白方法是将数据转换为协方差矩阵对角线的空间: (有些使用符号的滥用)。这意味着我们可以通过根据变换数据来使协方差对角化
这是用PCA进行的普通美白。现在,ZCA做了一些不同的事情-它向特征值添加了一个小的epsilon并将数据转换回去。 这是ZCA前后CIFAR数据集中的一些图片。
在ZCA之前:
ZCA后带有
ZCA后
对于视觉数据,高频数据通常将驻留在较低特征值所覆盖的空间中。因此,ZCA是加强这些效果的一种方法,可导致更多可见的边缘等。