YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

t-分布型確率的近傍埋め込み(t-SNE)

t-SNEが高次元データをどのように可視化するかを探ります。Ultralytics YOLO26のコンピュータービジョン特徴量におけるクラスターを明らかにし、機械学習モデルを最適化する方法を学びましょう。

t-distributed Stochastic Neighbor Embedding (t-SNE) は、高次元データを2次元または3次元マップ上の各データポイントに位置を与えることで視覚化する統計的手法です。この非線形 次元削減 の一種である手法は、数百または数千の特徴を含むデータセットを探索するために機械学習で広く使用されています。グローバルな構造の保持に焦点を当てる線形手法とは異なり、t-SNEは類似のインスタンスを近くに保つことに優れており、それ以外では隠れたままになる可能性のあるローカルクラスターや多様体(manifold)を明らかにします。これにより、ゲノム研究から深層ニューラルネットワークの内部ロジックの理解まで、あらゆるものにとって不可欠なツールとなっています。

t-SNEの仕組み

t-SNEの核となる考え方は、データ点間の類似性を結合確率に変換することを含みます。元の高次元空間では、アルゴリズムはガウス分布を使用して点間の類似性を測定します。2つの点が近い場合、それらが「近傍」である確率は高くなります。その後、アルゴリズムはこれらの確率を維持しながら、これらの点をより低次元の空間(通常は2Dまたは3D)にマッピングしようとします。

これを実現するために、t-SNEはスチューデントのt分布を用いて、低次元マップに同様の確率分布を定義します。この特定の分布は、正規ガウス分布よりも重い裾を持ち、高次元空間の点が射影された際に互いに重なり合ってしまう「クラウディング問題」に対処するのに役立ちます。t-SNEは、視覚化において異なる点をより遠くに引き離すことで、基礎となる訓練データの構造を明らかにする、明確で読みやすいクラスターを生成します。このアルゴリズムは、高次元と低次元の確率分布間の発散を最小化することにより、教師なし学習を通じて最適なマップ表現を効果的に学習します。

AIの実世界での応用

t-SNEは、探索的データ分析 (EDA) およびモデル診断の標準ツールです。これにより、エンジニアはモデルが何を学習しているかを「視覚的に確認」できます。

  • コンピュータビジョン特徴の検証: YOLO26のようなモデルを使用する物体検出ワークフローでは、開発者はネットワークが視覚的に類似したクラスを区別できるかどうかを確認する必要があることがよくあります。ネットワークの最終層から特徴マップを抽出し、t-SNEで投影することで、エンジニアは「猫」の画像が「犬」の画像と別々にクラスター化されているかどうかを視覚化できます。クラスターが混在している場合、モデルの特徴抽出能力の改善が必要であることを示唆しています。
  • 自然言語処理(NLP): t-SNEは、単語の埋め込みを可視化するために広く利用されています。高次元の単語ベクトル(多くの場合300次元以上)が2Dに投影されると、意味的に類似した単語は自然にグループ化されます。例えば、t-SNEプロットは「king」、「queen」、「prince」、「monarch」を含むクラスターを示すことがあり、これは自然言語処理(NLP)モデルが王族の概念を理解していることを示しています。
  • ゲノミクスとバイオインフォマティクス: 研究者はt-SNEを使用して単一細胞RNAシーケンスデータを可視化します。数千の遺伝子発現値を2Dプロットに削減することで、科学者は明確な細胞タイプを特定し、発生軌跡をtrackでき、新しい生物学的洞察と疾患マーカーの発見を支援します。

主成分分析(PCA)との比較

t-SNEと、もう一つの一般的な次元削減手法である主成分分析(PCA)を区別することが重要です。

  • PCAは、データのグローバルな分散を保持することに焦点を当てた線形手法です。決定論的で計算効率が高く、初期のデータ圧縮やノイズ除去に優れています。
  • t-SNEは、局所的な近傍を保持することに焦点を当てた非線形手法です。確率的(確率論的)で計算コストが高いですが、複雑な非線形多様体に対してはるかに優れた可視化を生成します。

A common best practice in データ前処理 is to use PCA first to reduce the data to a manageable size (e.g., 50 dimensions) and then apply t-SNE for the final visualization. This hybrid approach reduces computational load and filters out noise that might degrade the t-SNE result.

Python :特徴量の可視化

次の例は scikit-learn 合成データセットにt-SNEを適用します。このワークフローは、深層学習モデルから抽出された特徴を可視化する方法を反映しています。

import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.manifold import TSNE

# Generate synthetic high-dimensional data (100 samples, 50 features, 3 centers)
X, y = make_blobs(n_samples=100, n_features=50, centers=3, random_state=42)

# Apply t-SNE to reduce dimensions from 50 to 2
# 'perplexity' balances local vs global aspects of the data
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_embedded = tsne.fit_transform(X)

# Plot the result to visualize the 3 distinct clusters
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=y)
plt.title("t-SNE Projection of High-Dimensional Data")
plt.show()

主な考慮事項

t-SNEは強力ですが、慎重なハイパーパラメータチューニングが必要です。「パープレキシティ」パラメータは極めて重要であり、本質的に各点が持つ近傍点の数を推測します。これを低すぎたり高すぎたり設定すると、誤解を招くような可視化になる可能性があります。さらに、t-SNEは大域的な距離をうまく保持しません。つまり、プロット上の2つの異なるクラスター間の距離は、必ずしも元の空間での物理的な距離を反映しているわけではありません。これらの複雑さにもかかわらず、t-SNEはコンピュータビジョン (CV)アーキテクチャを検証し、複雑なデータセットを理解するための基礎となる技術であり続けています。大規模データセットを管理するユーザーは、このような詳細な分析を実行する前に、Ultralytics Platformを活用してデータを整理することがよくあります。

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

未来の機械学習で、新たな一歩を踏み出しましょう。