Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

t-distributed Stochastic Neighbor Embedding (t-SNE)

t-SNEは、高次元データを2Dまたは3Dに写像し、近傍同士の関係を保ちながらクラスターを可視化します。仕組み、パープレキシティ、注意点、コードについて解説します。

t分布型確率的近傍埋め込み(t-SNE)は、次元削減の非線形手法です。高次元データの点を2次元または3次元のマップ上に配置し、元の空間で近傍にある点がマップ上でも近傍に保たれるようにします。Laurens van der MaatenとGeoffrey Hintonは、2008年にJournal of Machine Learning Researchで発表した論文でこの手法を紹介しました。t-SNEは、数百次元ではグループが見えにくい埋め込み、画像特徴量、単一細胞の遺伝子発現データのデータ可視化に標準的に使われるツールです。

t-SNEの仕組み#

t-SNEは両方の空間で距離を確率に変換し、2つの確率分布が一致するまでマップ上の点を移動させます。

  • 高次元での類似度: 各点について、t-SNEは他のすべての点までの距離にガウス分布を当てはめ、各点が近傍として選ばれる確率に変換します。各ガウス分布の幅は、実効的な近傍数の目安となる分布のパープレキシティがユーザー指定の値に一致するよう調整されます。その結果、密な領域では幅の狭いガウス分布、疎な領域では幅の広いガウス分布になります。
  • 低次元での類似度: マップ上の類似度には、自由度1のスチューデントのt分布が使われます。裾が厚いため、中程度に離れた点を大きく離して配置できます。これにより混雑問題が軽減されます。2次元マップでは、高次元の点が持つ中程度に近い近傍をすべて配置するにはスペースが足りないためです。
  • 最適化: 勾配降下法でマップ上の点を移動し、2つの分布間のカルバック・ライブラー発散を最小化します。初期誇張フェーズでは、高次元での類似度をscikit-learnの場合は12倍にして、自然なクラスターが早い段階で密集し、互いに分離されたグループを形成するようにします。

厳密なt-SNEではすべての点のペアを比較するため、計算コストはデータセットのサイズに対して二次的に増加します。scikit-learnのデフォルトであるBarnes-Hut近似を使うと、2次元および3次元のマップでは計算量をO(N log N)に削減できます。openTSNEなどのFFTで高速化した実装は、数百万点を処理できます。

パープレキシティとt-SNEプロットの読み方#

主要な設定項目はパープレキシティです。一般的な値は5~50で、scikit-learnのデフォルトは30です。点の数より小さい値を指定する必要があります。パープレキシティが低いと局所構造に重点が置かれ、1つのグループが複数の断片に分かれることがあります。高いと近接するグループが融合し、より全体的な配置が見えます。最適化問題は凸ではないため、ランダムシードが異なるとマップも異なる場合があります。

t-SNEプロットは誤読されやすく、その理由は3つあります。t-SNEは密なグループを広げ、疎なグループを縮めるため、マップ上のクラスターのサイズから、元のクラスターの広がりを推測することはほとんどできません。クラスター間の距離も信頼できず、パープレキシティが低いとランダムノイズさえクラスターに見えることがあります。また、scikit-learnのTSNEにはtransformメソッドがないため、学習済みマップに新しい点を配置するには再計算が必要です。t-SNEの座標が他のモデルの入力特徴量に使われることもほとんどありません。

t-SNE、PCA、UMAPの比較#

主成分分析(PCA)は線形で決定論的な手法であり、全体の分散が最も大きい方向を保持し、新しい点をすぐに射影できます。t-SNEは非線形で確率的な手法で、局所的な近傍関係を保持します。この2つを組み合わせることもよくあります。t-SNEの前にPCAで非常に高次元のデータを約50次元に削減すると、ノイズを抑え、計算を高速化できます。また、scikit-learnのt-SNEはデフォルトでPCAからマップを初期化するため、全体的な配置もより保持されます。2018年に紹介されたUMAPも近傍グラフを構築し、大規模なデータセットでより高速に動作することが多く、全体構造も比較的保持します。また、既存のマップに新しい点を埋め込むことができます。

この例では、scikit-learnに同梱されている64ピクセルの手書き数字を、両方の手法で2次元に射影します。そして、マップ上の各点の最近傍が64次元でも近傍だったかどうかを示す信頼度を測定します。

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE, trustworthiness

# 1,797 handwritten digits, each an 8x8 image flattened to 64 features
X, y = load_digits(return_X_y=True)

# Project to 2D with a linear method and with t-SNE
X_pca = PCA(n_components=2).fit_transform(X)
X_tsne = TSNE(n_components=2, perplexity=30, random_state=0).fit_transform(X)

# Trustworthiness near 1.0 means a point's 2D neighbors were also its 64D neighbors
print(f"PCA trustworthiness:   {trustworthiness(X, X_pca, n_neighbors=10):.3f}")
print(f"t-SNE trustworthiness: {trustworthiness(X, X_tsne, n_neighbors=10):.3f}")

スクリプトはPCAで0.830、t-SNEで0.993を出力します。64次元を2つの線形方向に押し込むと、多くの点が64次元では遠かった数字の隣に配置されます。一方、t-SNEのマップでは、元の10近傍関係がほぼすべて保持されます。

実際のアプリケーション#

  • 学習済み特徴量の検査: ネットワークの特徴抽出の出力を射影すると、視覚的に似たクラスが別々のグループを形成しているかどうかを確認できます。YOLO26モデルは、デフォルトでは後ろから2番目のレイヤーから取得した画像ごとの特徴ベクトルをmodel.embed()を通じて返します。これらのベクトルをt-SNEマップにすると、カスタム学習したモデルがクラスをどのように分離しているかを確認できます。
  • データセットのキュレーション:別のクラスの島に位置する画像は誤ラベルの可能性があり、ほぼ同一の点が密集する領域は重複を示している場合があります。Ultralytics Platformのクラスタリングパネルでは、データセットの画像埋め込みを同様の2D散布図に投影して、これらを確認できます。
  • 単語と文書の埋め込み: 単語ベクトルのマップでは、国名や数字など、関連する単語が近接したグループに配置されます。
  • 単一細胞ゲノミクス: 研究者は細胞ごとに数千個の遺伝子の発現を2次元に削減して、細胞の種類を特定します。多くのグループがUMAPに移行するまでは、この分析でt-SNEが長らく標準的に使われていました。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう