白化whitening
原文地址:http://blog.youkuaiyun.com/hjimce/article/details/50864602
作者:hjimce
一、相关理论
白化这个词,可能在深度学习领域比较常遇到,挺起来就是高大上的名词,然而其实白化是一个比PCA稍微高级一点的算法而已,所以如果熟悉PCA,那么其实会发现这是一个非常简单的算法。
白化的目的是去除输入数据的冗余信息。假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的;白化的目的就是降低输入的冗余性。
输入数据集X,经过白化处理后,新的数据X'满足两个性质:
(1)特征之间相关性较低;
(2)所有特征具有相同的方差。
其实我们之前学的PCA算法中,可能PCA给我们的印象是一般用于降维操作。然而其实PCA如果不降维,而是仅仅使用PCA求出特征向量,然后把数据X映射到新的特征空间,这样的一个映射过程,其实就是满足了我们白化的第一个性质:除去特征之间的相关性。因此白化算法的实现过程,第一步操作就是PCA,求出新特征空间中X的新坐标,然后再对新的坐标进行方差归一化操作。
二、算法概述
白化分为PCA白化、ZCA白化,下面主要讲解算法实现。这部分主要是学了UFLDL的深度学习《白化》教程:http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96。自己的一点概括总