web-dev-qa-db-ja.com

PCA O(min(p ^ 3、n ^ 3))の複雑さはどうですか?

私はスパースPCAに関する論文を読んでいます: http://stats.stanford.edu/~imj/WEBLIST/AsYetUnpub/sparse.pdf

また、それぞれがn機能で表されるpデータポイントがある場合、PCAの複雑さはO(min(p^3,n^3))であると述べています。

誰かがその方法/理由を説明できますか?

17
GrowinMan

共分散行列の計算はO(p2n);その固有値分解はO(p3)。したがって、PCAの複雑さはO(p2n + p3)。

O(min(p3、n3))は、固定時間内に任意のサイズの2次元データセットを分析できることを意味しますが、これは明らかに誤りです。

35
Don Reba

データセットが$ X\in\R ^ {nxp} $であるとすると、n:サンプルの数、d:サンプルの次元であり、PCAの主な計算コストである$ X ^ TX $の固有分析に関心があります。これで、行列$ X ^ TX\in\R ^ {pxp} $と$ XX ^ T\in\R ^ {nxn} $は、同じmin(n、p)の非負の固有値と固有ベクトルを持ちます。 pがn未満であると仮定すると、$ O(p ^ 3)$で固有解析を解くことができます。 pがnより大きい場合(たとえば、コンピュータービジョンでは、多くの場合、サンプルの次元数(ピクセル数)が使用可能なサンプル数よりも大きい)、$ O(n ^ 3)$時間で固有分析を実行できます。いずれの場合も、一方の行列の固有ベクトルをもう一方の行列の固有値と固有ベクトルから取得し、$ O(min(p、n)^ 3)$時間で実行できます。

$$ X ^ TX = V\Lambda V ^ T $$

$$ XX ^ T = U\Lambda U ^ T $$

$$ U = XV\Lambda ^ {-1/2} $$

1
michaelt

以下は、元のLaTeXで提供され、PNGとしてレンダリングされたmichaeltの回答です。

Image of LaTeX answer

LaTeXコード:

データセットが$ X\in R ^ {n\times p} $であると仮定すると、n:サンプルの数、p:サンプルの次元であり、の主な計算コストである$ X ^ TX $の固有分析に関心があります。 PCA。これで、行列$ X ^ TX\in\R ^ {p\times p} $と$ XX ^ T\in\R ^ {n\times n} $は、同じmin(n、p)の非負の固有値と固有ベクトルを持ちます。 pがn未満であると仮定すると、$ O(p ^ 3)$で固有解析を解くことができます。 pがnより大きい場合(たとえば、コンピュータービジョンでは、多くの場合、サンプルの次元数(ピクセル数)が使用可能なサンプル数よりも大きい)、$ O(n ^ 3)$時間で固有分析を実行できます。いずれの場合も、一方の行列の固有ベクトルをもう一方の行列の固有値と固有ベクトルから取得し、$ O(min(p、n)^ 3)$時間で実行できます。

0
Ebram