t-SNEによる高次元データの可視化手法を探求する。Ultralytics YOLO26におけるコンピュータビジョン特徴量内のクラスタを明らかにし、機械学習モデルの最適化を学ぶ。
t分布確率的近傍埋め込み(t-SNE)は、各データポイントに2次元または3次元の地図上の位置を与えることで高次元データを可視化する統計的手法である。 この手法は非線形次元削減の一種であり、数百から数千の特徴量を含むデータセットを探索するために機械学習で広く用いられている。全体構造の保存に重点を置く線形手法とは異なり、t-SNEは類似した事例を互いに近接させることに優れており、そうでなければ隠れたままになる可能性のある局所的なクラスターや多様体を明らかにする。この特性により、ゲノム研究から深層ニューラルネットワークの内部論理の理解に至るまで、あらゆる分野において貴重なツールとなっている。
t-SNEの核心的な考え方は、データ点間の類似性を共同確率に変換することにある。元の多次元空間では、アルゴリズムはガウス分布を用いて点間の類似性を測定する。 2つの点が近接している場合、それらが「近傍」である確率は高くなります。アルゴリズムはその後、 これらの確率関係を維持したまま、これらの点を低次元空間(通常は2次元または3次元)へ写像しようと試みます。
これを実現するため、t-分布を用いて低次元マップ上で類似の確率分布を定義する。この特定の分布は正規ガウス分布よりも重い尾を持ち、「クラウディング問題」——高次元空間の点が低次元へ投影される際に互いに重なり合う現象——の解決に寄与する。 可視化において類似度の低い点をより遠くに押し出すことで、t-SNEは明確で判読可能なクラスターを生成し、 訓練データの潜在構造を明らかにする。このアルゴリズムは、 高次元と低次元の確率分布間のダイバージェンスを最小化することで、 教師なし学習を通じて最適なマップ表現を効果的に学習する。
t-SNEは探索的データ分析(EDA)およびモデル診断のための標準的な手法である。これによりエンジニアはモデルが学習している内容を「視覚的に把握」できる。
t-SNEと主成分分析(PCA)という別の一般的な次元削減手法とを区別することが重要です。
データ前処理における一般的なベストプラクティスは、まず主成分分析(PCA)を用いてデータを扱いやすいサイズ(例:50次元)に削減し、その後最終的な可視化のためにt-SNEを適用することである。このハイブリッド手法は計算負荷を軽減し、t-SNEの結果を劣化させる可能性のあるノイズを除去する。
次の例は 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はグローバルな距離を十分に保持しない。つまりプロット上の異なるクラスター間の距離が、元の空間における物理的な距離を必ずしも反映しないことを意味する。こうした微妙な点はあるものの、コンピュータビジョン(CV)アーキテクチャの検証や複雑なデータセットの理解において、依然として基盤技術として位置づけられている。大規模データセットを扱うユーザーは、こうした詳細な分析を行う前に、Ultralytics を活用してデータを整理することが多い。