白化whitening
来源:互联网 发布:河北网络集成商 编辑:程序博客网 时间:2024/04/30 07:44
白化whitening
原文地址:http://blog.csdn.net/hjimce/article/details/50864602
作者:hjimce
一、相关理论
白化这个词,可能在深度学习领域比较常遇到,挺起来就是高大上的名词,然而其实白化是一个比PCA稍微高级一点的算法而已,所以如果熟悉PCA,那么其实会发现这是一个非常简单的算法。
白化的目的是去除输入数据的冗余信息。假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的;白化的目的就是降低输入的冗余性。
输入数据集X,经过白化处理后,新的数据X'满足两个性质:
(1)特征之间相关性较低;
(2)所有特征具有相同的方差。
(2)所有特征具有相同的方差。
其实我们之前学的PCA算法中,可能PCA给我们的印象是一般用于降维操作。然而其实PCA如果不降维,而是仅仅使用PCA求出特征向量,然后把数据X映射到新的特征空间,这样的一个映射过程,其实就是满足了我们白化的第一个性质:除去特征之间的相关性。因此白化算法的实现过程,第一步操作就是PCA,求出新特征空间中X的新坐标,然后再对新的坐标进行方差归一化操作。
二、算法概述
白化分为PCA白化、ZCA白化,下面主要讲解算法实现。这部分主要是学了UFLDL的深度学习《白化》教程:http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96。自己的一点概括总结,算法实现步骤如下:
1、首先是PCA预处理
上面图片,左图表示原始数据X,然后我们通过协方差矩阵可以求得特征向量u1、u2,然后把每个数据点,投影到这两个新的特征向量,得到进行坐标如下:
这就是所谓的pca处理。
2、PCA白化
所谓的pca白化是指对上面的pca的新坐标X’,每一维的特征做一个标准差归一化处理。因为从上面我们看到在新的坐标空间中,(x1,x2)两个坐标轴方向的数据明显标准差不同,因此我们接着要对新的每一维坐标做一个标注差归一化处理:
当然你也可以采用下面的公式:
X'为经过PCA处理的新PCA坐标空间,然后λi就是第i维特征对应的特征值(前面pca得到的特征值),ε是为了避免除数为0。
3、ZCA白化
ZCA白虎是在PCA白化的基础上,又进行处理的一个操作。具体的实现是把上面PCA白化的结果,又变换到原来坐标系下的坐标:
给人的感觉就像是在PCA空间做了处理完后,然后又把它变换到原始的数据空间。
具体源码实现如下:
参考文献:
1、http://ufldl.stanford.edu/wiki/index.php/%E7%99%BD%E5%8C%96
阅读全文
0 0
- 白化whitening
- 白化whitening
- 白化(Whitening) PCA白化 ZCA白化
- 白化/漂白/whitening
- UFLDL 07 白化 whitening/sphering
- 数据预处理之白化-Whitening
- 数据处理——白化whitening
- 机器学习(七)白化whitening
- 白化(Whitening):PCA vs. ZCA
- 机器学习(七)白化whitening
- 数据处理中白化Whitening的作用图解分析
- 【机器学习】数据处理中白化Whitening的作用图解分析
- 数据处理中白化Whitening的作用图解分析
- 深度学习中的数学与技巧(5):白化whitening
- 数据处理中白化Whitening的作用图解分析
- whitening
- 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening
- 白化
- IE和DOM事件流的区别
- java设计模式:适配器模式
- El表达式格式化日期
- 编译安装PHP5,并更改apache设置
- GPIO初识
- 白化whitening
- Aggressive cows--(二分)
- RocketMQ——Consumer篇:PULL消费模式下的调度消费服务
- service 本地 远程
- iOS好用的分类工具 让开发更简单 WHKit
- HTML中CSS的3种基本使用方式
- jeesite框架搭建的相关问题
- 中文,免费,零起点,完整示例,基于最新的Python 3版本
- gradle打jar包,依赖分离