t-分布随机邻域嵌入(t-SNE)算法的原理与降维可视化过程
字数 1407 2025-10-30 11:52:22
t-分布随机邻域嵌入(t-SNE)算法的原理与降维可视化过程
题目描述
t-SNE是一种专门用于高维数据可视化的非线性降维算法。假设你有一个包含1000个样本的数据集,每个样本有100个特征(即100维空间),你想在二维平面上直观展示这些样本的自然分组情况。t-SNE通过保留样本间的局部相似性关系,将高维数据映射到低维空间(如2D或3D),使得在原始空间中相似的点在低维图中距离相近,而不相似的点则相距较远。
解题过程
1. 核心思想
t-SNE的核心是分别在高维和低维空间构建概率分布,通过优化使两个分布尽可能相似:
- 高维空间:用高斯分布描述样本间的相似性,关注局部结构(邻近点关系)
- 低维空间:用t分布描述样本间相似性,解决高维映射中的“拥挤问题”
2. 高维空间相似性计算
- 计算条件概率 \(p_{j|i}\):表示在 \(x_i\) 邻域内选择 \(x_j\) 作为邻居的概率
\[ p_{j|i} = \frac{\exp(-\|x_i - x_j\|^2 / 2\sigma_i^2)}{\sum_{k \neq i} \exp(-\|x_i - x_k\|^2 / 2\sigma_i^2)} \]
- \(\sigma_i\) 通过困惑度(Perplexity)确定,控制每个点的有效邻居数
- 对称化处理:\(p_{ij} = (p_{j|i} + p_{i|j}) / 2N\) 确保 \(p_{ij} = p_{ji}\)
3. 低维空间相似性计算
- 在低维映射空间(如2D)中,使用自由度为1的t分布计算相似性 \(q_{ij}\):
\[ q_{ij} = \frac{(1 + \|y_i - y_j\|^2)^{-1}}{\sum_{k \neq l}(1 + \|y_k - y_l\|^2)^{-1}} \]
- t分布的厚尾部特性允许远距离点在低维空间更分散,缓解拥挤问题
4. 优化目标函数
- 使用KL散度衡量高维分布 \(P\) 和低维分布 \(Q\) 的差异:
\[ KL(P\|Q) = \sum_{i \neq j} p_{ij} \log\left(\frac{p_{ij}}{q_{ij}}\right) \]
- 通过梯度下降最小化KL散度,更新低维坐标 \(y_i\)
- 梯度计算:
\[ \frac{\partial KL}{\partial y_i} = 4\sum_j (p_{ij} - q_{ij})(y_i - y_j)(1 + \|y_i - y_j\|^2)^{-1} \]
5. 优化技巧
- 早期压缩:初始阶段增加一个放大因子,避免初始点过于分散
- 动量梯度下降:加速收敛并避免局部最优
- 随机初始化:通常用高斯分布随机初始化低维坐标
6. 结果解读
- 完成优化后,每个高维样本 \(x_i\) 对应一个二维点 \(y_i\)
- 在散点图中,距离近的点表示原始特征相似,自然形成聚类
- 注意:t-SNE仅适合可视化,不能用于特征提取或降维后的定量分析
关键特点
- 保留局部结构,但全局结构可能失真
- 对困惑度敏感,需调试参数(通常5-50之间)
- 计算复杂度高(\(O(N^2)\)),大数据集需优化算法(如Barnes-Hut t-SNE)