次元削減とは?意味・仕組みと関連する論文(2026年11月時点)
次元削減(じげんさくげん)
Dimensionality reduction / 次元圧縮 / PCA / 主成分分析
次元削減とは、特徴量の数が多いデータを、情報をなるべく保ったまま少ない数の値で表し直す方法のこと。PCA、t-SNE、UMAP などの手法があり、計算の軽減や可視化に使われる。
要するに
- PCA は分散を多く説明する直交の成分に写す線形の手法で、前処理に向く
- t-SNE と UMAP は非線形の手法で、高い次元のデータを2〜3次元の図にできる
- t-SNE の図のクラスタの大きさや離れた距離は、意味を持たないことがある
最終確認

高い次元の入力を小さな表現に縮めて使う論文
目次8
ひとことで言うと
次元削減(Dimensionality reduction)は、特徴量の数が多いデータを、情報をなるべく保ったまま、少ない数の値で表し直す方法だ。ここでいう次元は1件のデータを表す値の数を指す。
Python の機械学習ライブラリ scikit-learn のガイドは、64×64画素の白黒の顔写真を例に挙げる。この写真は4,096次元のデータになるが、人の顔はどれも似ているので、本来の次元はずっと低く、たとえば200前後だとしている。
仕組み
scikit-learn のガイドは、次元削減の手法を教師なし学習の章に置いている。決まった分類を使わず、データそのものから構造を学ぶ。ガイドの説明をもとに、使う流れをまとめると次のようになる。
- 特徴量の尺度をそろえる。多様体学習(多くのデータの次元は見かけだけ高いという考えに基づく、非線形の次元削減)は近い点の検索に基づくので、尺度がそろっていないとうまく働かないことがある。
- 手法と、残す次元の数を決める。図にするなら2次元か3次元にする。
- データに当てはめ、少ない次元に写す。PCA は学んだ成分に新しいデータも写せる。
- 結果を確かめる。多様体学習では、残す次元を増やすと、データの本来の次元に届くまで再構成の誤差が下がる。この誤差を、残す次元の数を決める手がかりにできる。
代表的な手法は4つある。主成分分析(PCA)は、データのばらつき(分散)をいちばん多く説明する方向から順に、互いに直交する成分を求め、その成分にデータを写す。scikit-learn は4つの特徴量を持つアヤメのデータを、分散を最も多く説明する2次元に写す例を載せている。
t-SNE は、2008年に van der Maaten と Hinton が JMLR で発表した手法だ。高い次元の各点に、2次元か3次元の図の上の位置を与える。scikit-learn によると、近い点どうしの関係(局所の構造)にとくに敏感だ。UMAP は2018年2月に arXiv に初版が出た。論文によると、図にしたときの質は t-SNE と競う水準で、全体の構造をより多く保つとも言え、実行時間は短い。出力の次元に計算上の制約がなく、可視化に限らず一般の次元削減の手法として使えるとしている。
オートエンコーダは、学習した符号化器(encoder)で入力を次元の低い潜在表現に縮め、その表現を使う。下の Latent Diffusion の論文も、画像を次元の低い空間に写すのにオートエンコーダを学習させた。
表で見る最新の状況
上の表は、TRAIL が解説した論文のうち、高い次元の入力を小さな表現に縮めてから使う2本を、論文の公開の古い順に並べたものだ。確認日は2026年11月6日。
2019年12月3日の Dreamer は、画像から学ぶ強化学習のエージェントだ。要旨は、センサーから得る高い次元の入力から世界モデル(エージェントの経験をまとめたモデル)を深層学習で学べるようになってきたと書く。Dreamer はそのうえで、学習した世界モデルの「compact state space」(小さな状態の空間)の中で先の展開を想像し、行動を学ぶ。20の画像による制御の課題で、データの効率、計算時間、最終的な性能が既存の方法を上回ったと報告した。
2021年12月20日の Latent Diffusion は、まずオートエンコーダを学習させ、画像と知覚の上で同等で次元の低い空間を作る。画像の生成はその空間で行う。論文は縮める度合いを変えて比べ、縮める度合いが小さいと学習が遅く、大きすぎると早い段階で画質の伸びが止まると報告している。
PCA、t-SNE、UMAP、オートエンコーダの違い
| PCA | t-SNE | UMAP | オートエンコーダ | |
|---|---|---|---|---|
| 写し方 | 線形 | 非線形 | 非線形 | 学習した符号化器で縮める |
| 向く使い方 | 前処理で次元を減らし、計算を軽くする | 高い次元のデータを2〜3次元の図にする | 図にすること、一般の次元削減 | 画像などの大きな入力を潜在表現に縮める |
| 気をつけること | 非線形の構造を見逃しやすい。成分の意味を読み取りにくいことがある | 計算が重い。乱数の種で結果が変わる。全体の構造は明示的には保たない | t-SNE と同じく密度を完全には保たない | Latent Diffusion では、縮める度合いで学習の速さと画質が変わった |
scikit-learn によると、t-SNE は100万件のデータで数時間かかることがあり、同じデータで PCA なら数秒から数分で終わる。PCA の成分は、元の変数のすべてに0でない係数がかかる形になり、解釈が難しくなることがある。t-SNE の全体の構造の問題は、PCA の結果を初期値に使うと和らぐ。
仕事でどう関係するか
埋め込みを図にして中身を確かめるとき
文章のエンベディングは、OpenAI の 既定で text-embedding-3-small が1,536次元、text-embedding-3-large が3,072次元ある。OpenAI のガイドは、この高い次元のデータを図にするため、Amazon の食品のレビューの埋め込みを t-SNE で2次元にし、星の数で色分けする例を載せている。図にはおおよそ3つのまとまりができたように見え、その1つは否定的なレビューが多かった。TensorFlow の可視化ツール TensorBoard にも、高い次元の埋め込みを図で表す Embedding Projector がある。
添付の問い合わせ文の埋め込み(1,536次元)を、t-SNE と UMAP で2次元の図にしてください。
問い合わせの種類で色分けし、t-SNE のパープレキシティと UMAP の n_neighbors を3通りずつ変えた図を並べてください。埋め込みの保存の費用を抑えるとき
OpenAI のガイドは、大きな埋め込みほど、一般に計算、メモリ、保存の費用がかかると書く。text-embedding-3 の2つのモデルは、dimensions という引数で末尾の数を削って短くしても、意味を表す性質を失わないように学習させてある。ガイドによると、評価用のデータ群 MTEB では、256次元に縮めた text-embedding-3-large が、1,536次元の text-embedding-ada-002 を上回った。生成したあとで自分で縮めるときは、正規化(ベクトルの長さを1にする処理)が要る。
クラスタリングの前に次元を減らすとき
次元が増えると例どうしの距離がどれも似た値に近づき、k 平均法で例を見分けにくくなる。Google の講座はこれを次元の呪いと呼び、避ける方法としてスペクトラルクラスタリングを3段で示す。PCA で次元を減らし、すべての点を低い次元の空間に写し、その空間でクラスタリングする。UMAP のドキュメントは、UMAP は密度に基づくクラスタリングの性能を高める前処理として使えるとしつつ、議論があり慎重に試すべきだと書く。出てきたクラスタは、できるかぎり確かめるよう勧めている。
注意点と限界
t-SNE と UMAP の図は読み違えやすい。当時 Google Brain の Martin Wattenberg らが2016年10月に Distill に書いた解説は、単純なデータで t-SNE のふるまいを示している。以下の例は、どれもこの解説の図のものだ。
t-SNE の図では、クラスタの大きさから元のデータの広がりを読み取れない。t-SNE は密なクラスタを広げ、まばらなクラスタを縮めるので、大きさがそろって見える。解説の例では、平面上で広がりが10倍違う2つのクラスタが、図ではほぼ同じ大きさに見えた。
よく離れたクラスタどうしの距離は、意味を持たないことがある。全体の配置を正しく見せるにはパープレキシティ(各点が近くに持つ点の数の見込み)の調整が要る。点の数が変わると合う値も変わる。
ただの乱数のデータでも、パープレキシティが小さいと、まとまりがあるように見えることがある。解説の例では、100次元の正規分布から取った500点で、パープレキシティ2の図にはっきりした固まりが出た。解説が引く原論文の目安は5〜50だが、解説は実際はそれほど単純ではないと書く。パープレキシティは点の数より小さくする必要がある。形が安定する前に計算を止めると、つぶれたような形が出ることがある。
UMAP では、近くを見る点の数 n_neighbors(既定は15)が局所と全体の構造の釣り合いを決める。点をどこまで詰めるかの min_dist(既定は0.1)を小さくすると、点の固まりが強く出る。UMAP も t-SNE も、クラスタに偽の裂け目を作り、実際より細かく分かれて見せることがある。
解説は、どの次元削減でも距離はゆがむと書く。t-SNE を生かすには、パープレキシティを変えた何枚かの図を見比べる必要があるとも書いている。
よくある質問
次元削減とは簡単に言うと何か
値の数が多いデータを、情報をなるべく残したまま、少ない数の値で表し直す方法だ。顔写真のように数千の値を持つデータも、似た部分が多ければ少ない値で表せる。
PCA と t-SNE はどちらを使えばよいか
目的で選ぶのが目安だ。計算を軽くするための前処理には PCA、2〜3次元の図で近いデータのまとまりを見るなら t-SNE が向く。scikit-learn は、t-SNE のおもな目的を高い次元のデータの可視化としている。
t-SNE と UMAP の違いは何か
どちらも非線形の手法だ。UMAP の論文は、図の質は t-SNE と競う水準で、全体の構造をより多く保つとも言え、実行時間が短いと書く。scikit-learn の t-SNE の Barnes-Hut という計算法は2〜3次元までに限られるが、UMAP の論文は出力の次元に計算上の制約がないとしている。
t-SNE の図で離れたクラスタは似ていないということか
そうとは限らない。Distill の解説は、よく離れたクラスタどうしの距離は意味を持たないことがあると書く。全体の配置を見るには、パープレキシティを変えた図を見比べる。
関連する用語
出典
- 2.5. Decomposing signals in components (matrix factorization problems)(scikit-learn 1.9.1)scikit-learn
- 2.2. Manifold learning(scikit-learn 1.9.1)scikit-learn
- Visualizing Data using t-SNE(JMLR 9(86))Laurens van der Maaten、Geoffrey Hinton
- UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction(arXiv:1802.03426)Leland McInnes、John Healy、James Melville
- Basic UMAP Parameters(umap 0.6.0)umap-learn
- Using UMAP for Clustering(umap 0.6.0)umap-learn
- How to Use t-SNE EffectivelyMartin Wattenberg、Fernanda Viégas、Ian Johnson(Distill)
- Advantages and disadvantages of k-meansGoogle for Developers
- Vector embeddingsOpenAI
- Visualizing Data using the Embedding Projector in TensorBoardTensorFlow
- Dream to Control: Learning Behaviors by Latent Imagination(arXiv:1912.01603v1)Danijar Hafner ほか
- High-Resolution Image Synthesis with Latent Diffusion Models(HTML 版 v2)Robin Rombach ほか
- 公開
- 執筆
- TRAIL編集部(編集方針)