深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening
2015-05-21 18:48
846 查看
主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通过PCA降维,我们能够有效的降低数据的维度,加快运算速度。而白化就是为了使得每个特征能有同样的方差,降低相邻像素的相关性。
第一步:首先我们需要获取旋转矩阵U,为了实现这一目的,我们使用MATLAB里面的SVD函数:
我们把旋转矩阵的向量,第一个向量和第二个向量显示出来
可以看到,U的两列分别代表着在数据集的各个方向,第一列是从左下到右上,第二列的是左上到右下的那一条。
将旋转矩阵的转置与x相乘得到旋转后的矩阵。
第二步降维:第一列代表着整个数据的主方向,因此我们可以用第一列的转置与x相乘来将数据映射到一维。对于这个一维的数据,在用第一列与之相乘,即可得到降维之后的结果。
主成分分析PCA
PCA算法可以将输入向量转换为一个维数低很多的近似向量。我们在这里首先用2D的数据进行试验,其数据集可以在UFLDL网站的相应页面http://ufldl.stanford.edu/wiki/index.php/Exercise:PCA_in_2D找到并下载。第一步:首先我们需要获取旋转矩阵U,为了实现这一目的,我们使用MATLAB里面的SVD函数:
u = zeros(size(x, 1)); % You need to compute this [n,m]=size(x) sigma=(x*(x'))/m; [u,s,v]=svd(sigma);
我们把旋转矩阵的向量,第一个向量和第二个向量显示出来
可以看到,U的两列分别代表着在数据集的各个方向,第一列是从左下到右上,第二列的是左上到右下的那一条。
xRot = zeros(size(x)); % You need to compute this xRot=u'*x;
将旋转矩阵的转置与x相乘得到旋转后的矩阵。
第二步降维:第一列代表着整个数据的主方向,因此我们可以用第一列的转置与x相乘来将数据映射到一维。对于这个一维的数据,在用第一列与之相乘,即可得到降维之后的结果。
xHat = zeros(size(x)); % You need to compute this xHat=(u(:,1:k))*(u(:,1:k)')*x;
白化
白话的左右相关文章推荐
- 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening
- 深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器
- 深度学习入门教程UFLDL学习实验笔记一:稀疏自编码器
- 深度学习入门教程UFLDL学习实验笔记二:使用向量化对MNIST数据集做稀疏自编码
- Deep Learning 3_深度学习UFLDL教程:预处理之主成分分析与白化_总结(斯坦福大学深度学习教程)
- 深度学习笔记:主成分分析(PCA)(1)——标准化、协方差、相关系数和协方差矩阵
- UFLDL 教程学习笔记:3.预处理-主成分分析与白化
- UFLDL 教程学习笔记(六)主成分分析
- UFLDL 教程学习笔记(四)主成分分析
- UFLDL 教程学习笔记(四)主成分分析
- UFLDL 教程学习笔记(四)主成分分析
- Deep Learning 学习笔记(9):主成分分析( PCA )与 白化( whitening )
- 深度学习中的降维操作——PCA(主成分分析)
- 模式识别(Pattern Recognition)学习笔记(三十四)-- 主成分分析(PCA)
- 深度学习UFLDL教程翻译之PCA白化
- Deep Learning 4_深度学习UFLDL教程:PCA in 2D_Exercise(斯坦福大学深度学习教程)
- Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)
- UFLDL教程笔记及练习答案二(预处理:主成分分析和白化)
- UFLDL教程笔记及练习答案二(预处理:主成分分析和白化)
- UFLDL教程笔记及练习答案四(建立分类用深度学习---栈式自编码神经网络)