manifold learning - arosh/arosh.github.com GitHub Wiki

Manifold learning

http://scikit-learn.org/stable/modules/manifold.html

多様体の定義は → http://www.r.dl.itc.u-tokyo.ac.jp/study_ml/pukiwiki/index.php?plugin=attach&refer=schedule/2008-06-19&openfile=manifold-pub.pdf

Manifold learning (多様体学習) は非線形な次元削減を行う。

Isomap

IsomapはIsometric Mappingの略。多次元尺度構成法 (MDS) やカーネルPCAの拡張とみなすことができる。

LLE

Locally Linear Embeddingの略。局所的なPCAをつなぎ合わせる。

Modified LLEやHessian-based LLEといった拡張がある。

Spectral Embedding

グラフラプラシアンを使った方法。

Local Tangent Space Alignment

LLEの変種ではないのだけど,LLEに似ているので同じグループに置かれることが多い

Multi-dimensional Scaling (MDS)

元の高次元空間における点と点の距離を保持するような低次元写像を与える。

t-SNE

他の手法と比べて様々な利点があるが,以下のような注意点がある。

  • 計算が重い
  • exactな方法とapproximateな方法があるが、approximateな方法 (Barnes-Hut t-SNE) は2次元か3次元にしかすることができない。exactな方法でも、効果的に動作するのは2次元か3次元
  • 初期値で結果がかなり変わる
  • perplexityearly_exaggeration はどうでもいいが learning_rate の設定は超重要
  • 可視化の用途では、計算量的にapproximateな方法であるBarnes-Hut t-SNEの方を推奨
  • http://iwiwi.hatenadiary.jp/entry/2016/09/24/230640

全体的な注意

  • スケールは重要
  • 可視化以外の用途では, Totally Random Trees Embedding も有効かもしれない。RandomTreesEmbeddingでは,Random Treeにデータを流して,到達した葉のIDを1 of Kにエンコーディングする。木の本数は複数本にできる。最終的に n_estimators * 2**max_depth 次元のベクトルができる。