Skip to main content
QUICK REVIEW

[论文解读] Single-Pass PCA of Large High-Dimensional Data

Wenjian Yu, Yu Gu|arXiv (Cornell University)|Apr 25, 2017
Sparse and Compressive Sensing Techniques参考文献 28被引用 16
一句话总结

本文提出一种针对大规模高维数据的单遍随机化主成分分析(PCA)算法,可在仅遍历一次存储于磁盘或流式传输的数据时实现高效计算。该方法在仅使用不到1 GB 内存的情况下,实现了高精度计算——在24分钟内处理了150 GB 的数据集,且在误差减少和可扩展性方面优于现有单遍方法。

ABSTRACT

Principal component analysis (PCA) is a fundamental dimension reduction tool in statistics and machine learning. For large and high-dimensional data, computing the PCA (i.e., the singular vectors corresponding to a number of dominant singular values of the data matrix) becomes a challenging task. In this work, a single-pass randomized algorithm is proposed to compute PCA with only one pass over the data. It is suitable for processing extremely large and high-dimensional data stored in slow memory (hard disk) or the data generated in a streaming fashion. Experiments with synthetic and real data validate the algorithm's accuracy, which has orders of magnitude smaller error than an existing single-pass algorithm. For a set of high-dimensional data stored as a 150 GB file, the proposed algorithm is able to compute the first 50 principal components in just 24 minutes on a typical 24-core computer, with less than 1 GB memory cost.

研究动机与目标

  • 解决在主内存容量不足以容纳的超大规模高维数据集上计算PCA的挑战。
  • 开发一种适用于存储在慢速存储设备(如硬盘)或以流式方式生成的数据的单遍算法。
  • 在保持低内存和计算成本的前提下,提升现有单遍PCA方法的精度。
  • 在标准硬件且RAM有限的条件下,实现对TB量级数据集的实际PCA计算。
  • 提供理论误差界和经验验证,以确保在多种数据分布下的鲁棒性。

提出的方法

  • 基于结构化随机矩阵的随机化压缩技术,将高维数据投影到低维子空间。
  • 采用单遍矩阵压缩方案,利用正交投影矩阵保持数据的紧凑表示。
  • 通过在压缩矩阵上进行截断奇异值分解(SVD)重构主成分,确保计算效率。
  • 利用随机化QB近似识别主导奇异子空间,最大限度减少数据访问次数。
  • 通过正交化和结构化随机投影增强数值稳定性,减少误差传播。
  • 集成幂迭代方案(一次额外遍历)在几乎不增加运行时间或内存使用的情况下提升精度。

实验结果

研究问题

  • RQ1单遍算法能否在主内存容量不足以容纳的超大规模高维数据集上实现高精度PCA?
  • RQ2与基于频繁方向法或基础randQB的现有单遍PCA方法相比,所提算法在精度和效率方面表现如何?
  • RQ3在RAM受限条件下处理TB量级数据时,该算法的时间和空间复杂度如何?
  • RQ4该算法能否有效应用于真实世界的流式或磁盘存储数据,如高维图像矩阵?
  • RQ5与非结构化随机投影相比,使用结构化随机矩阵在精度和稳定性方面提升程度如何?

主要发现

  • 该算法在1453秒(约24分钟)内,使用不到1 GB内存,计算出一个150 GB、102,042 × 393,216矩阵的前50个主成分。
  • 对于150 GB数据集,所提方法的最大误差为1.8e-3,显著低于基线单遍算法的2.2e-2误差。
  • 在10,000 × 10,000矩阵上,该算法在0.69秒内完成前50个主成分的计算,而MATLAB的'svds'函数耗时219秒。
  • 应用幂迭代方案(一次额外遍历)后,Type 1矩阵的最大误差降至4.6e-7,Type 2矩阵降至3e-6,运行时间仅略有增加。
  • 在各项实验中,该算法的内存开销在402 MB至490 MB之间,而标准SVD方法因内存需求过高而无法运行。
  • 从FERET数据集计算出的特征人脸与先前研究结果高度一致,证实了该方法的保真度和实际应用价值。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。