【问题标题】:dimension reduction using pca for FastICAFastICA 使用 pca 降维
【发布时间】:2013-03-06 09:02:11
【问题描述】:

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

用于纹理分类的独立成分分析 (ICA),作者:Dia Abu Al Nadi 和 Ayman M. Mansour

在一段中它说:

给定上述纹理图像,通过上述方法学习独立分量。 上述纹理的 (8 x 8) ICA 基函数分别如图 2 所示。通过 PCA 降低维度,总共有 40 个函数。注意不同窗口大小的独立组件是不同的。

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

作者的意思是“通过 PCA 减少维度,导致总共 40 个函数。”,我如何使用 matlab 获得这些函数?

【问题讨论】:

    标签: matlab image-processing pca


    【解决方案1】:

    PCA降低数据的维度,ICA提取数据中必须维度的成分

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 感谢您的帮助。请问,如果每个纹理都有 640x640 像素,你能告诉我为什么要提到 64 维数据吗?对不起,如果这是一个简单的问题,但我是 PCA 的菜鸟。降维的目标是稍后在 8x8 矩阵上转换 40 个函数中的每一个,最终在它们上应用 FastICA。
      • 如果我对论文的理解正确,作者使用 PCA 减少了 ICA 基函数的数量。抱歉,我写的答案对我的维度编号示例有些误导;我现在改变了。每个单独的 ICA 基的大小为 8x8 像素(即 64 个值)。我猜 ICA 基函数的数量等于数据库中纹理的数量,而这个数字通过 PCA 减少到 40。
      • 对维度的含义有点困惑,我搜索了有关它的信息,在许多文章中说维度是图像上的每个像素值,在另一篇文章中,维度是图像的每一行.什么是使用 PCA 的图像上的维度?
      • 维度是一个非常笼统的数学概念,它的含义完全取决于您使用的算法。在您的情况下,我认为 PCA 减少的“维度”是 ICA 基函数的数量。
      • 拜托,再问一个问题,如果文章说我必须使用 PCA 减少到 40 个函数,是指从 Brodatz 专辑中的每个纹理中获取 40 个函数还是从所有纹理中仅获取 40 个函数?
      猜你喜欢
      • 2017-08-05
      • 2013-12-31
      • 2015-02-28
      • 2019-07-21
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 2018-01-28
      • 2018-08-27
      相关资源
      最近更新 更多