t-SNEとは?高次元データを可視化する次元削減手法

AIの初心者
t-SNEは次元削減の手法だと聞きました。PCAのような方法とは何が違うのでしょうか?

AI専門家
t-SNEは、高次元データを2次元や3次元に配置し直すときに、データ同士の「近さ」をできるだけ保つことを重視する手法です。全体のばらつきを見る手法よりも、似たデータが作る小さなまとまりを見つけやすいのが特徴です。

AIの初心者
小さなまとまりを見る、というのは具体的にはどういうことですか?

AI専門家
例えば手書き数字の画像なら、「1」に似た画像は「1」同士で近くに集まり、「2」に似た画像は別のまとまりとして見えるようになります。高次元の特徴量を平面上に並べることで、データの構造を目で確認しやすくするのです。
t-SNEとは。
t-SNE(ティー・エス・エヌ・イー)は、SNE(確率的近傍埋め込み)を改良した次元削減手法です。画像、文章、遺伝子発現データのように多くの特徴量を持つデータを、2次元や3次元の散布図として見える形に変換します。ポイントは、元の高次元空間で近いデータ点が、変換後の低次元空間でも近くに置かれるように調整することです。

次元削減とは何か
次元削減とは、多くの特徴量を持つデータを、より少ない特徴量で扱える形に変換することです。ここでいう「次元」は、空間の縦・横だけでなく、データが持つ項目数や特徴量の数を指します。商品データなら価格、重さ、色、サイズ、レビュー数などがそれぞれ特徴量になり、画像データなら画素や抽出された特徴ベクトルが高次元の情報になります。
次元削減を行う理由は主に三つあります。第一に、複雑なデータを2次元や3次元に落とすことで、散布図として見られるようになります。第二に、ノイズや重複した情報を減らし、分析の見通しを良くできます。第三に、扱う特徴量を減らすことで、計算量を抑えられる場合があります。
ただし、次元削減は情報を完全に保ったまま圧縮する魔法ではありません。何を残し、何を捨てるかは手法によって異なります。PCAは全体の分散をよく表す方向を重視する代表的な手法です。一方でt-SNEは、全体の座標軸の意味よりも、似たデータ同士が近くに集まる局所的な構造を見やすくすることを得意とします。

t-SNEの基本的な仕組み
t-SNEは、高次元空間にあるデータ点同士の近さを確率として表し、その近さの関係が低次元空間でもなるべく再現されるように点の配置を更新していきます。元の空間で点Aと点Bが似ていれば、そのペアには高い確率が与えられます。似ていない点の組み合わせには低い確率が与えられます。
次に、2次元や3次元に置いた仮の点についても、同じように「どれくらい近いか」を確率で表します。t-SNEは、高次元側の確率分布と低次元側の確率分布のずれが小さくなるように、低次元側の点を少しずつ動かします。このずれを測るために使われる代表的な尺度がKLダイバージェンスです。
数式で書くと、t-SNEでは高次元側の類似度分布 \(P\) と低次元側の類似度分布 \(Q\) の差を、次のような目的関数で小さくします。
\(C = KL(P||Q) = \sum_i \sum_j p_{ij} \log \frac{p_{ij}}{q_{ij}}\)ここで \(p_{ij}\) は元の高次元空間でデータ点 \(i\) と \(j\) が近い度合い、\(q_{ij}\) は低次元空間で対応する点同士が近い度合いを表します。初心者は式を暗記する必要はありません。まずは「元のデータで近かったものを、変換後も近くに置くように調整する」と理解すれば十分です。

SNEからt-SNEで改善された点
t-SNEは、SNE(Stochastic Neighbor Embedding、確率的近傍埋め込み)を改良した手法です。SNEも、データ点同士の近さを確率として扱い、高次元から低次元へ写す考え方を持っていました。しかし、低次元空間でデータ点が詰まりやすいという問題がありました。これは一般に混雑問題と呼ばれます。
混雑問題が起きると、本来は別々のまとまりとして見たいクラスタが低次元の狭い領域に押し込まれ、互いに近づいて見えてしまいます。高次元では十分に離れていた関係を、2次元の平面にそのまま表現するのは難しいためです。
t-SNEでは、低次元側の類似度を表す分布にt分布を使います。t分布はガウス分布より裾が広いため、少し離れた点をより遠くへ配置しやすくなります。その結果、異なるクラスタが重なりにくくなり、データのまとまりを視覚的に読み取りやすくなります。

| 手法 | 低次元側の分布 | 見え方の特徴 | 注意点 |
|---|---|---|---|
| SNE | 主にガウス分布 | 近さを確率で表して低次元へ写す | クラスタが詰まって見えやすい |
| t-SNE | t分布 | 局所的なまとまりを分離して見せやすい | 全体の距離や軸の意味は慎重に読む |
t-SNEで可視化するメリット
t-SNEの大きなメリットは、数値表だけでは見えにくいデータのまとまりを、散布図として確認できることです。画像の特徴量を可視化すれば、似た画像が同じ領域に集まっているかを確認できます。文章や単語のベクトルを可視化すれば、意味が近い表現が近くに並ぶかを大まかに観察できます。
また、教師なし学習や特徴量抽出の結果を確認する場面でも役立ちます。例えば、分類モデルの中間層から取り出した特徴量をt-SNEで可視化すると、同じラベルのデータが自然にまとまっているか、紛らわしいクラスが重なっていないかを調べられます。これはモデルの挙動を理解するための補助的な手段になります。
一方で、t-SNEの散布図は「見た目がわかりやすい」からこそ過信しやすい面があります。クラスタが分かれて見えても、それだけで厳密な分類境界があるとは限りません。t-SNEは探索的に構造を眺めるための可視化手法であり、統計的な検定や分類性能の評価とは役割が異なります。
パラメータ設定で結果が変わる理由
t-SNEでは、パラメータ設定によって散布図の見え方が大きく変わります。特に重要なのが、近傍の広さを調整するperplexityです。元記事で説明されている「近傍数」に近い考え方で、各点の周囲のどれくらい広い範囲を重視するかに関わります。
perplexityが小さすぎると、ごく近くの点だけに強く反応し、細かい塊が過剰に分かれて見えることがあります。反対に大きすぎると、広い範囲の関係をならしすぎて、小さなクラスタの違いが見えにくくなることがあります。データ数や分析目的に合わせて複数の値を試し、安定して見える構造かどうかを確認することが大切です。
さらに、t-SNEは初期配置や乱数の影響を受けます。同じデータでも実行のたびに点の位置が少し変わることがあります。そのため、1枚の図だけで結論を出すのではなく、条件を変えても似たまとまりが現れるか、元データやラベル情報と矛盾しないかを合わせて見る必要があります。

| 設定 | 起こりやすい見え方 | 確認したいこと |
|---|---|---|
| perplexityが小さい | 細かい局所構造が強調される | 小さな塊が意味のある違いか |
| perplexityが大きい | 大きなまとまりが見えやすくなる | 細部の違いを見落としていないか |
| 乱数を変える | 配置の向きや距離感が変わる | 同じクラスタ構造が再現されるか |
t-SNEの主な活用事例
画像認識では、画像を特徴ベクトルに変換したあと、t-SNEで2次元に可視化することがあります。似た形や色、模様を持つ画像が近くに集まるため、データセット内にどのようなグループがあるか、誤分類されやすい画像がどこにあるかを調べる手がかりになります。
自然言語処理では、単語や文章のベクトル表現を可視化するために使われます。「嬉しい」と「楽しい」のように意味が近い語が近くに集まるか、異なる話題の文書が別の領域に分かれるかを観察できます。埋め込み表現の性質を直感的に確認したいときに便利です。
生物学や医療データの分析でも、遺伝子発現データや細胞ごとの特徴量を可視化するために使われてきました。細胞の種類や状態がクラスタとして分かれて見えると、データの傾向を把握しやすくなります。ただし、実務ではUMAPなど別の可視化手法と比較しながら使われることも多く、t-SNEだけで判断を完結させない姿勢が重要です。
| 分野 | 対象データ | 見たいこと |
|---|---|---|
| 画像認識 | 画像特徴量 | 似た画像のまとまり、誤分類の傾向 |
| 自然言語処理 | 単語・文章ベクトル | 意味的に近い表現のまとまり |
| 生物学 | 遺伝子発現、細胞特徴量 | 細胞種や状態の違い |
t-SNEを使うときの注意点
t-SNEの図を見るときは、まず軸の意味を読みすぎないことが大切です。横軸や縦軸は、元の特徴量の一つをそのまま表しているわけではありません。図の回転や反転にも本質的な意味はなく、重要なのは近い点同士のまとまりです。
また、クラスタ同士の距離をそのまま「どれくらい違うか」と解釈するのも危険です。t-SNEは局所的な近さを見やすくする一方で、全体的な距離関係を厳密に保つ手法ではありません。遠く離れて見える二つのクラスタが、元の高次元空間でも同じ比率で遠いとは限りません。
最後に、t-SNEは分類モデルそのものではありません。ラベルを予測するための手法ではなく、データの構造を探索的に眺めるための可視化手法です。分類や予測をしたい場合は、別途モデルを作り、精度指標や検証データで性能を確認する必要があります。
まとめ
t-SNEは、高次元データを2次元や3次元に配置し直し、似たデータ同士のまとまりを見やすくする次元削減手法です。高次元側と低次元側でデータ点同士の近さを確率分布として表し、そのずれを小さくすることで可視化を行います。
SNEからの主な改良点は、低次元側でt分布を使い、混雑問題を緩和したことです。そのため、画像、文章、遺伝子発現データのような複雑なデータのクラスタ構造を直感的に把握しやすくなります。
一方で、t-SNEの図はパラメータや乱数に影響され、軸やクラスタ間距離を厳密に解釈するものではありません。探索的な可視化として使い、元データ、ラベル、他の手法による分析と合わせて判断することが、実務でも学習でも重要です。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年1月31日 | 初回公開 |
| 2026年6月10日 | 仕組み、パラメータ、図の読み方を補い構成を調整 |
