使用pca对FastICA进行降维

时间:2013-03-18 04:35:19

标签: matlab image-processing pca

我正在尝试开发一种图像分类系统。我正在使用以下文章:

Dia Abu Al Nadi和Ayman M. Mansour博士对纹理分类的独立成分分析(ICA)

在一段中它说:

  

给定上述纹理图像,通过上述方法学习独立成分。   上述纹理的(8×8)ICA基函数分别如图2所示。 PCA减小了尺寸,总共有40个功能。请注意,不同窗口大小的独立组件是不同的。

上面概述的"方法"是FastICA,纹理取自Brodatz album,每个纹理图像都有640x640个像素。我的问题是:

作者的意思是"尺寸由PCA减少,总共产生40个函数。",以及如何使用matlab获得该函数?

2 个答案:

答案 0 :(得分:2)

PCA (Principal Component Analysis)是用于找到高维(数据)空间的正交基(想到坐标系)的方法。 PCA基础的“轴”按方差排序,即沿着第一个PCA“轴”,您的数据具有最大的方差,沿着第二个“轴”,第二个方差等,等等。

这被用于降低尺寸:假设您有1000维数据。然后你做一个PCA,将你的数据转换成PCA基础并抛弃除前20个维度之外的所有维度(仅举例)。如果您的数据遵循某种统计分布,那么20个PCA维度可能几乎与64个原始维度一样描述您的数据。有一些方法可以找到要使用的维数,但这超出了范围。

计算上,PCA相当于在Matlab中找到数据协方差矩阵的特征分解:[V,D] = eig(cov(MyData))

请注意,如果您想使用这些概念,您应该认真阅读。关于您可以使用PCA对图像数据执行的操作的经典文章是Turk and Pentland's Eigenfaces。它还以可理解的方式提供了一些背景知识。

答案 1 :(得分:1)

PCA减少数据的维度,ICA提取哪个维度必须< =的数据的组成部分 数据维度