12

教師なし学習:次元削減

2025年6月29日
次元削減主成分分析t-SNEPCA特徴量選択

1,000個の特徴量を持つデータを、どうやって2次元のグラフで表示できるのでしょうか?何万次元もある遺伝子データから、病気に関連する重要な要素だけを取り出すにはどうすればよいのでしょうか?そして、Google検索はどうやって何億ものWebページから最適な検索結果を見つけているのでしょうか?これらの問題を解決するのが 次元削減 という技術です。この記事では、高次元データを扱いやすい低次元に変換する技術について詳しく解説します。

次元削減ってなに?

次元削減とは、多数の特徴量(高次元データ)を持つデータから、重要な情報を保ちながら特徴量の数を減らす技術 です。まるで3次元の立体物を2次元の写真に撮影するように、複雑な高次元データを理解しやすい低次元に変換します。

次元ってなに?

次元 とは、データの特徴量の数のことです。

  • 1次元:身長だけ
  • 2次元:身長と体重
  • 3次元:身長、体重、年齢
  • 1000次元:身長、体重、年齢、年収、血圧、脈拍、...(1000個の特徴量)

現実のデータでは、数百から数万の特徴量を持つことも珍しくありません。

なぜ次元削減が必要なのか?

1. 次元の呪い 特徴量が多すぎると、機械学習の性能が逆に悪化する現象です。人間も情報が多すぎると判断が困難になるように、コンピュータも同様の問題に直面します。

2. 計算コストの削減 1,000次元のデータを100次元に減らすと、計算時間が大幅に短縮されます。

3. 可視化の必要性 人間が理解できるのは3次元までです。高次元データを2次元や3次元にして、グラフで表示する必要があります。

4. ノイズの除去 重要でない特徴量(ノイズ)を取り除き、本質的な情報だけを残します。

要するに、「必要な情報だけを残して、余計な情報を取り除く」技術です。

主成分分析(PCA):最も基本的な次元削減

主成分分析(PCA) は、次元削減の最も代表的な手法です。データの「ばらつき」が最も大きい方向を見つけて、その方向を軸とする新しい座標系を作ります。

PCAの基本的な考え方

たとえば、身長と体重のデータの場合

  • 一般的に、身長が高い人は体重も重い傾向がある
  • この「身長と体重の相関関係」を一つの軸(第1主成分)で表現
  • 残りの情報を第2主成分で表現
  • 結果として、2次元データを効率的に表現

第1主成分:データのばらつきが最も大きい方向 第2主成分:第1主成分と垂直で、残りのばらつきが最も大きい方向

具体的な応用例

顧客データ分析

  • 元のデータ:年収、年齢、家族構成、居住地域、趣味、職業...(50個の特徴量)
  • PCA適用後:「経済力」「ライフステージ」「価値観」(3個の主成分)
  • 効果:50次元 → 3次元に削減、可視化が可能

画像圧縮

  • 元の画像:100×100ピクセル(10,000次元)
  • PCA適用後:重要な100次元だけを保持
  • 効果:データ量を1/100に圧縮、画質はほとんど劣化しない

PCAの長所と短所

長所

  • 理解しやすく、数学的に厳密
  • 計算が高速
  • ノイズの除去効果
  • 可視化に最適

短所

  • 線形変換のみ(曲線的な関係は捉えられない)
  • 主成分の解釈が困難な場合がある
  • すべての元特徴量が必要(一部だけでは計算できない)

t-SNE:高次元データの可視化

t-SNE は、高次元データを2次元や3次元に変換して可視化するための手法です。PCAよりも複雑な構造を保持できます。

t-SNEの特徴

非線形変換: PCAが直線的な関係しか捉えられないのに対し、t-SNEは曲線的で複雑な関係も保持できます。

局所構造の保持: 近くにあるデータ点同士の関係を特に重視して、低次元空間でも近くに配置します。

t-SNEの応用例

遺伝子発現データの可視化

  • 元のデータ:2万個の遺伝子の発現量
  • t-SNE適用後:2次元のマップ
  • 発見:似た機能を持つ遺伝子が近くに配置され、機能別のクラスタが見える

手書き文字の可視化

  • 元のデータ:28×28ピクセルの手書き数字画像(784次元)
  • t-SNE適用後:2次元マップ
  • 発見:同じ数字が近くに集まり、似た書き方の数字も近くに配置

自然言語処理

  • 元のデータ:単語の高次元ベクトル表現
  • t-SNE適用後:2次元の単語マップ
  • 発見:意味が似た単語が近くに配置(「王」と「女王」、「東京」と「大阪」など)

t-SNEの注意点

  • 計算時間が長い(大量データには不向き)
  • 距離の絶対値は意味を持たない
  • パラメータ調整が重要
  • 主に可視化目的で使用(予測には不向き)

特異値分解(SVD):行列分解による次元削減

特異値分解(SVD) は、行列を複数の行列の積に分解することで次元削減を行う数学的手法です。

SVDの基本概念

大きな行列を、より小さな行列の組み合わせで表現します。

元の行列(m×n) = U(m×k) × Σ(k×k) × V^T(k×n)

ここで、k < min(m,n) とすることで次元を削減します。

SVDの代表的な応用

レコメンデーションシステム

  • ユーザー×商品の評価行列を分解
  • ユーザーの潜在的好み × 商品の潜在的特徴 で表現
  • 未評価の商品に対する評価を予測

たとえば、映画評価の場合

  • 元の行列:100万人 × 1万本の映画(非常にスパース)
  • SVD適用後:100万人 × 50次元の潜在因子 × 50次元 × 1万本
  • 潜在因子の例:「アクション好み度」「ロマンス好み度」「コメディ好み度」など

画像圧縮

  • 画像を行列として表現
  • SVDで重要な成分だけを保持
  • 大幅なデータ圧縮を実現

検索エンジン

  • 文書×単語の行列を分解
  • 文書と単語の潜在的な意味関係を発見
  • より精度の高い検索結果を提供

潜在的ディリクレ配分法(LDA):トピック分析

LDA は、文書集合から潜在的な「トピック」を発見する手法です。これも一種の次元削減と考えることができます。

LDAの基本的な考え方

前提

  • 各文書は複数のトピックの混合で構成される
  • 各トピックは特定の単語が出現しやすい

たとえば

  • スポーツトピック:「野球」「サッカー」「試合」「選手」の出現確率が高い
  • 政治トピック:「政府」「議会」「選挙」「政策」の出現確率が高い
  • 技術トピック:「AI」「プログラム」「データ」「学習」の出現確率が高い

LDAの応用例

ニュース記事の分析

  • 入力:何万件ものニュース記事
  • 出力:「政治」「経済」「スポーツ」「国際」などのトピック
  • 活用:記事の自動分類、関連記事の推薦

学術論文の分析

  • 入力:特定分野の論文集合
  • 出力:研究トピックの傾向と変遷
  • 活用:研究動向の分析、新興分野の発見

SNS投稿の分析

  • 入力:Twitter投稿、ブログ記事
  • 出力:話題のトピック、感情の傾向
  • 活用:世論分析、マーケティング調査

次元削減の実際の活用事例

Google検索:潜在意味解析

Googleの検索エンジンは、SVDやLDAに似た技術を使用しています。

問題: 「車」と検索しても、「自動車」「automobile」「vehicle」という単語を含むページも関連性がある

解決

  1. Web上の文書を単語×文書の巨大行列で表現
  2. SVDで次元削減し、潜在的な意味関係を発見
  3. 「車」「自動車」「automobile」が同じ潜在因子で高い値を持つことを学習
  4. より精度の高い検索結果を提供

Netflix:映画推薦システム

問題: ユーザー数百万人 × 映画数万本の評価行列はスパースで扱いにくい

解決

  1. ユーザー×映画の評価行列をSVDで分解
  2. 潜在因子を発見(「アクション好み」「ロマンス好み」など)
  3. ユーザーの潜在的好みと映画の潜在的特徴を分析
  4. 未視聴映画の評価を予測し、推薦

効果

  • 推薦精度の大幅向上
  • 新規ユーザーへの推薦も可能
  • 計算コストの削減

遺伝子解析:疾患関連遺伝子の発見

問題: 人間の遺伝子は約2万個。どの遺伝子が特定の病気に関連するかを効率的に調べたい

解決

  1. 患者と健常者の遺伝子発現データを取得(2万次元)
  2. PCAで重要な成分を抽出(100-1000次元)
  3. 病気に関連する遺伝子群のパターンを発見
  4. 新薬開発のターゲットを特定

医療への貢献

  • 個別化医療の実現
  • 新薬開発の効率化
  • 副作用リスクの予測

マーケティング:顧客セグメンテーション

問題: 顧客データが数百種類の特徴量を持ち、パターンが見えない

解決

  1. 購買履歴、Web行動、デモグラフィック情報(数百次元)
  2. PCAで主要な傾向を抽出(5-10次元)
  3. 「ライフスタイル」「価値観」「経済力」などの潜在因子を発見
  4. より効果的なマーケティング戦略を立案

ビジネス効果

  • ターゲット広告の精度向上
  • 商品開発の方向性明確化
  • 顧客満足度の向上

次元削減手法の使い分け

PCA:最初に試すべき手法

  • 適用場面:ノイズ除去、データ圧縮、前処理
  • 特徴:高速、安定、解釈しやすい
  • 制約:線形変換のみ

t-SNE:可視化に特化

  • 適用場面:高次元データの2D/3D可視化
  • 特徴:非線形、局所構造保持
  • 制約:計算コスト高、可視化専用

SVD:行列データに最適

  • 適用場面:レコメンデーション、情報検索
  • 特徴:数学的に厳密、実装が豊富
  • 制約:行列形式のデータが前提

LDA:テキスト分析に特化

  • 適用場面:文書分析、トピック発見
  • 特徴:解釈しやすい結果
  • 制約:テキストデータに限定

まとめ

次元削減は、現代のビッグデータ時代に欠かせない技術です。膨大な情報の中から本質的な構造を見つけ出し、人間が理解しやすい形に変換することで、新しい発見や洞察を生み出します。

次元削減の本質

  • 高次元データを低次元に変換
  • 重要な情報を保ちながら複雑さを削減
  • データの可視化と理解を促進

主要な手法

  • PCA:最も基本的で実用的な線形次元削減
  • t-SNE:高次元データの可視化に特化した非線形手法
  • SVD:行列分解による効率的な次元削減
  • LDA:テキストデータのトピック分析

実用的な価値

  • 検索エンジン、推薦システム、遺伝子解析
  • マーケティング、可視化、データ圧縮
  • 計算効率の向上とノイズ除去

適用時の考慮点

  • データの性質に応じた手法選択
  • 情報の損失と計算効率のトレードオフ
  • 結果の解釈可能性

要するに、次元削減は「データの複雑さを減らしながら、重要な情報を残す」技術であり、現代AI の基盤技術として、あらゆる分野で活用されています。

これで機械学習の基礎編が完了しました。次回からは、より高度な 強化学習 の世界に入り、AIがどのように「試行錯誤を通じて最適な行動を学習する」かを詳しく解説していきます。