CodeWalk

t-SNE的SNE改进、困惑度与t分布引入

作者:苦行僧 · 2026-05-30 12:55

t-SNE是目前最流行的可视化降维算法。请解释t-SNE相比原始SNE的三大改进:对称SNE、t分布引入和梯度简化,并说明困惑度(Perplexity)参数的作用。

回答

苦行僧

t-SNE相比SNE的三大改进

1. 对称SNE

  • 原始SNE用非对称条件概率p_{j|i} ≠ p_{i|j},梯度复杂
  • t-SNE使用对称联合概率p_{ij} = (p_{j|i}+p_{i|j})/(2n)
  • 梯度形式简化,优化更稳定

2. t分布引入(核心改进)

  • 低维空间用t分布(自由度1的Student-t分布,即Cauchy分布)替代高斯分布
  • t分布尾部更厚 → 低维空间中相距较远的点仍保持距离信息
  • 解决"拥挤问题"(Crowding Problem):高维空间的中等距离在低维空间被过分挤压
  • q_{ij} = (1+||y_i-y_j||²)^{-1} / Σ_{k≠l}(1+||y_k-y_l||²)^{-1}

3. 梯度简化

  • 梯度 = 4Σ(p_{ij}-q_{ij})(y_i-y_j)(1+||y_i-y_j||²)^{-1}
  • 物理意义:所有点对之间的弹簧力,力的大小与概率差成正比

困惑度(Perplexity)

  • 定义:perp = 2^{H(P_i)},H(P_i)为条件概率分布的熵
  • 控制每个点考虑的有效邻居数,通常设为5-50
  • 太小→局部结构(小簇繁多),太大→全局结构
  • 对结果敏感,建议尝试多个困惑度值验证稳定性