白化的目的:降低输入的冗余性;
或者说
我们希望通过白化过程使得学习算法的输入具有如下性质:
(i)特征之间相关性较低;
(ii)所有特征具有相同的方差。
PCA白化
对于矩阵 X,是 m x n 的矩阵,m个样本数量,n 是维度
协方差矩阵 covX 是 n x n的矩阵
协方差矩阵的特征向量以此是:u1 u2 u3 un
写成矩阵的形式:
实际中我们只需要选取前k个特征向量对数据进行降维
降维后的矩阵可以表示为:redX = X(m x n) * U(n x k)
所谓的PCA白化就是对降维后的数据redX 的每一列除以其特征值的根号,如下表述
ZCA白化
首先应该知道,如果R是任意正交矩阵,那么仍然具有单位协方差。在ZCA白化中,令R=U(由上文知,U本身就是正交矩阵),其定义为:
也就是在原来PCA结果上(不降维)左乘(或者右乘,由于X的矩阵表示形式可能不一样,有的数上x的行数是维度数,有的说的列是维度说,上图中的行是维度说,上面说的PCA的时候我自己写的列是维度数)一个特征向量矩阵。
可以证明,对所有可能的R,这种旋转使得
尽可能地接近原始数据x。
当使用ZCA白化时,我们通常保留数据的全部n个维度,不尝试去降低它的维数。
正则化