【次元削減の応用編】多様体学習とは?曲がったデータをまっすぐ見る技術を徹底解説!
こんにちは。ゆうせいです。
新人エンジニアとしてデータ分析に携わっていると、「主成分分析(PCA)」の便利さに気づく場面も多いのではないでしょうか。たくさんの特徴量を、より少ない指標に要約してくれる、強力なツールですよね。
ですが、こんな壁にぶつかったことはありませんか?
「PCAを使ってみたけど、なんだかうまく次元削減できない…」「データがもっと複雑にねじれていたり、丸まっていたりする気がする…」
そう、PCAは万能ではありません。PCAが得意なのは、データが比較的「平面的」に分布している場合です。データがもし、リボンのようにねじれていたり、ロールケーキのように巻かれていたりしたら…PCAではその構造を壊してしまいます。
そんな複雑に「曲がった」データを、きれいに「まっすぐに伸ばして」本質を捉えるための技術、それが今回ご紹介する「多様体学習(Manifold Learning)」です!
そもそも「多様体(Manifold)」って何?
多様体学習を理解するための最初の、そして最大のカギが、この「多様体」という言葉です。
数学の用語なので少し難しく聞こえますが、イメージで捉えれば大丈夫!
多様体とは、局所的に見ればまっすぐな空間(ユークリッド空間)と見なせるけど、大局的に見ると曲がっている可能性のある図形や空間のことです。
…まだピンと来ませんよね。
最高の例えは、私たちが住んでいる「地球」です。 🌎
あなたの今いる場所の地面を見てみてください。平らな地面が広がっていますよね?
家を建てたり、道を引いたりするとき、私たちは地面が「平ら」であるという前提で物事を考えます。これが「局所的に見ればまっすぐ」という状態です。
しかし、宇宙から地球を見たらどうでしょう?地球は丸い球体ですよね。
これが「大局的に見ると曲がっている」ということです。
この地球の表面のように、近くで見ると平らなのに、遠くから見ると曲がっている空間、それが多様体のイメージです。
もう一つ、機械学習でよく使われる「スイスロール」の例えも見てみましょう。
薄いスポンジ生地をくるくると巻いた、あのロールケーキです。
もし、あなたがケーキの表面を歩く小さなアリだとしたら、自分のいる場所は平らな2次元の世界だと感じるでしょう。
しかし、私たち人間から見れば、その2次元の平面が3次元空間の中でくるくると巻かれていることがわかります。この巻かれたケーキの表面が、まさに多様体なのです。
多様体学習の考え方
さて、多様体のイメージが掴めたところで、本題の「多様体学習」に入りましょう。
多様体学習とは、私たちの手元にある高次元のデータは、実はその背景にある低次元の多様体に沿って分布している、と仮定するアプローチです。そして、その隠れた多様体の構造を保ったまま、データを低次元空間に写し取る(次元削減する)ことを目指します。
先ほどのスイスロールの例に戻りましょう。
ロールケーキの表面に、たくさんのチョコチップが乗っているとします。このチョコチップの位置データは3次元(x, y, z座標)ですよね。
この3次元データをPCAで無理やり2次元に削減するとどうなるでしょうか?
PCAは、データを最もよく表現する「平らな板」を探して、そこにデータを投影するようなイメージです。スイスロールに平らな板を突き刺すようなものなので、本来は表面上で遠く離れているチョコチップ同士が、投影された板の上では近くに来てしまう、ということが起こり得ます。
一方、多様体学習は違います。
「このチョコチップたちは、巻かれた2次元の平面(多様体)の上に乗っているな」と見抜いて、そのロールケーキをきれいに広げて、平らな一枚のスポンジ生地に戻すような処理を行います。
こうすれば、本来ケーキの表面上で近かったチョコチップは近くに、遠かったチョコチップは遠くに配置されたまま、きれいに2次元のデータにすることができますよね。
つまり、多様体学習の核心は、点と点の間のまっすぐな「直線距離」ではなく、多様体の表面に沿って測った「本来の距離(測地線距離)」を保とうとする点にあるのです!
多様体学習の代表的な手法
多様体学習にも、クラスタリングと同様に様々なアルゴリズムが存在します。ここでは、特に有名な3つを簡単に紹介します。
1. Isomap (Isometric Mapping)
- 考え方: 多様体の表面に沿った距離(測地線距離)をできるだけ正確に保ったまま、次元削減しようとする手法です。
- アプローチ:
- まず、各データ点から最も近い「ご近所さん」をいくつか見つけます。
- ご近所さん同士を線で結んだ、巨大なネットワークグラフを作ります。
- このグラフ上の最短経路を計算することで、曲がった多様体上の距離を近似します。
- 最後に、このグラフ上の距離関係を保つように、低次元空間に点を配置し直します。
2. LLE (Locally Linear Embedding)
- 考え方: 「どの点も、その近所にあるいくつかの点の組み合わせ(線形結合)で表現できるはずだ」という仮定に基づいています。
- アプローチ:
- 各データ点について、そのご近所さんだけを使って、その点を再構成するための「おもみ」を計算します。このおもみが、多様体の局所的な構造を表します。
- 次に、この「おもみ」の関係性が全く同じになるように、低次元空間に点を配置し直します。ご近所付き合いの仕方は、次元が変わっても変えないようにしよう、という考え方です。
3. t-SNE (t-distributed Stochastic Neighbor Embedding)
- 考え方: 特にデータの「可視化」に特化した手法です。高次元空間で近かった点同士は、低次元空間でも近くに、遠かった点同士は遠くになるように配置しようとします。
- アプローチ: 点と点の間の関係性を「確率」で表現します。そして、高次元空間での確率分布と、低次元空間での確率分布が、できるだけ似るように点の配置を最適化していきます。特に、近くの点の関係性を重視するのが特徴です。
- 注意点: t-SNEは可視化に非常に優れており、データに隠れたクラスター構造を驚くほど鮮やかに浮かび上がらせることがあります。しかし、出来上がった図の「クラスター間の距離」にはあまり意味がないことが多いので、解釈には注意が必要です。
メリットと注意点
メリット
- 非線形なデータに対応: PCAでは捉えきれない、曲がったりねじれたりしたデータ構造を捉えることができます。
- 優れた可視化能力: 特にt-SNEは、高次元データに隠された関係性を2次元や3次元のグラフで直感的に理解するのに絶大な効果を発揮します。
- 機械学習の前処理: 次元削減によって本質的な特徴量を抽出することで、その後の分類や回帰モデルの精度を向上させられる可能性があります。
注意点
- 計算コストが高い: 多くの手法が、全てのデータ点間の距離や近傍関係を計算するため、データ数が多くなると非常に時間がかかります。
- パラメータ設定が難しい: 例えば「ご近所さん」を何個にするか(k-近傍のk)など、調整が必要なパラメータがあり、この設定によって結果が大きく変わることがあります。
- 新しいデータへの適用が困難: 一度、あるデータセットで次元削減を行った後、全く新しいデータ点一つだけを低次元に写す、ということが難しい手法が多いです。
まとめ:次のステップへ!
今回は、次元削減の応用テクニックである「多様体学習」について、その考え方と代表的な手法を解説しました。
- 多様体とは、局所的には平らだが、大局的には曲がっているかもしれない空間のこと(地球の表面のように!)。
- 多様体学習は、データが低次元の多様体上に存在すると仮定し、その構造を保ったまま「広げて伸ばす」ように次元削減するアプローチ。
- PCAが苦手とする非線形(曲がった)なデータの構造を捉えることができる。
- Isomap、LLE、そして可視化に非常に強力なt-SNEなどの手法がある。
この奥深い世界に足を踏み入れたあなたに、今後の学習ステップを提案します。
- Scikit-learnで動かしてみよう!理論も大切ですが、まずは触ってみるのが一番です。Pythonのscikit-learnライブラリには、今日紹介した手法がすべて実装されています。特に、make_swiss_rollやmake_s_curveといった、多様体学習のデモ用のデータセット生成機能があるので、これらを使ってPCAとt-SNEの結果を比較してみると、その違いが一目瞭然になりますよ!
- 目的意識を持とう次元削減を「なぜ」行いたいのかを常に意識してください。データの可視化が目的なら、t-SNEが最初の選択肢になるでしょう。もし、その後の機械学習モデルへの入力として使いたいなら、IsomapやLLEなどを検討します。目的に応じてツールを使い分ける意識が重要です。
- UMAPを調べてみようもしt-SNEに興味を持ったら、その発展形とも言われる「UMAP (Uniform Manifold Approximation and Projection)」についても調べてみてください。t-SNEよりも高速で、データの全体的な構造もより良く保持する傾向があるため、近年非常に人気が高まっています。
多様体学習は、複雑なデータに隠された「本質」を浮かび上がらせる、まさにデータサイエンスの醍醐味とも言える分野です。ぜひ、この強力な武器をあなたのツールボックスに加えてくださいね。応援しています!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。