🟠

高次元データとPCA

2023/10/29に公開

高次元データとPCA

まず、高次元データが得られた時どう扱えば良いのでしょうか?

高次元データは膨大な情報を持つため、PCAで次元を削減すれば上手く扱えるのでは?と思う方も多いかもしれません。

しかし、実は高次元データにPCAを適用すると、次元の呪いをうけます。次元の呪いとは、データの次元が増えると、計算コストが指数関数的に増加する現象を指します。

この次元の呪いの正体を暴きます。

高次元データについて知りたい方はこちらをチェック
https://zenn.dev/totopironote/articles/f13fe705f52d42

PCAについて知りたい方はこちらをチェック
https://zenn.dev/totopironote/articles/aa17833ef00e5f

固有値・固有ベクトルの課題

一般化スパイクモデル

\begin{cases} \lambda_{(s)}=c_{(s)}d^{\alpha_{(s)}} &(s=1,...,m)\\ \lambda_{(s)}=c_{(s)} &(s=m+1,...,d) \end{cases}

ここで、c_{(s)} (>0),\alpha_{(s)}(\alpha_{(1)}\ge\cdots \ge \alpha_{(m)}>0) はともにdに依存しない未知の実数。mはdに依存しない未知の自然数。\lambda_{(1)} \ge \cdots \ge \lambda_{(d)} とする。

\lambda_{(1)},...,\lambda_{(m)} が推定の対象となる潜在的な固有空間。

\lambda_{(m+1)},...,\lambda_{(d)} がノイズとなる部分。

ノイズ となる部分 \lambda_{(s)} (s > m)は球形条件を満たす。(球形条件は球面集中現象が起こるための条件と思っていれば十分です。)

つまりノイズとなる部分に球面集中現象が起き、固有ベクトルは方向が定まらず、固有値は定まるものの互いの差がなくなる。

固有ベクトルは方向が定まらないとは?
球面集中現象により、球の表面に一様にデータが分布するため。

固有値は定まるものの互いの差がなくなるとは?
球面集中現象により、データの距離が等しくなるから。

ここで \kappa=\sum_{s=m+1}^d \lambda_{(s)} とおく。

実際、固有値の推定量には、

\frac{\kappa}{n}=O\left(\frac{d}{n}\right)

のノイズが入ってくる。d/n→\infty の枠組みでは、推定の対象となる潜在的な固有空間が巨大なノイズ球に埋もれてしまう。

高次元PCA

上記の課題を解決するために、主に2つの高次元主成分分析を紹介します。

  1. ノイズ掃き出し法(noise-reduction methodology)

    これは、データのノイズを正確に推定し、それを固有値から除去することで、より正確な結果を得る手法。
    https://zenn.dev/totopironote/articles/d5e2754275ce6c

  2. クロスデータ行列法(cross-data-matrix methodology)

    これは、そもそもノイズを発生しないように統計量を作った手法。
    https://zenn.dev/totopironote/articles/b63807d5fb8333

まとめ

従来のPCAだととりあえずノイズが発生して上手く推定できないということです。

参考文献

Discussion