AI 教学改革实践研究计划AI 教改实践研究计划 全国高等院校计算机基础教育研究会 ×实战云


AI 课件库 › 机器学习基础 › 降维与高维可视化

如何正确使用 t-SNE:那张降维图到底在说什么

How to Use t-SNE Effectively · Distill,2016

t-SNE 图几乎每篇论文都有,也最容易被读错。这篇用十三组对照实验说清楚:困惑度调不对会凭空造出簇,簇的大小没有意义,纯随机数据在低困惑度下照样看起来有结构。每张图都能现场重跑。

适用
数据挖掘与数据分析、机器学习基础、数据可视化、研究方法课
概念
t-SNE、降维、困惑度、邻域与局部结构、聚类的误读、迭代步数、算法随机性
课时
进阶 · 建议 30 分钟
网络
离线可用(不依赖外网,需能打开本站)

全屏打开实验 ↗ 原作源代码 ↗

交互实验(可直接投屏)

原作是一个完整的网页应用,下面直接嵌入;屏幕小或要投影时,点「全屏打开实验」更清楚。

动手三步

  1. 先在顶部的交互图里换几种数据形状,点播放看 t-SNE 一步步把它们摊平
  2. 拖困惑度滑块,从 2 拉到 80,看同一份数据画出完全不同的图
  3. 点击正文里任意一张小图,页面底部会用同样的参数现场重跑一遍
  4. 重点看「随机噪声未必看上去就随机」:这份数据是纯随机的,但困惑度 2 时看起来分成了好几团
  5. 最后用前几节的结论回头检查自己报告里那张 t-SNE 图

课堂怎么用

  • 开场先放一张学生自己做的 t-SNE 图,问「你从这张图读出了什么」,写在黑板上,读完这篇再逐条核对
  • 用困惑度滑块做课堂实验:同一份数据,让学生分别找出「看起来有 2 个簇」和「看起来有 5 个簇」的困惑度
  • 随机数据那一节是最好的反例教材:先让学生看图猜有几个簇,再揭晓这是纯噪声
  • 与 A-17 读懂 UMAP 连讲:先讲 t-SNE 怎么被读错,再讲 UMAP 改了什么、又没改什么

思考题

  1. 困惑度大致相当于「每个点有多少个近邻」,为什么它必须小于点的总数?
  2. 为什么 t-SNE 图上簇的大小不能用来互相比较?
  3. 迭代步数不够时图会呈现什么特征?怎么判断一张 t-SNE 图是不是已经收敛?

已知限制

  • 许可有一处出入:仓库许可文件是 CC BY 4.0 全文,而原站线上正文的引用说明写的是 CC-BY 2.0。两者都允许再分发与改编,本镜像按仓库许可执行
  • 页首黄色横幅是原作模板的「待审稿」提示:仓库里这份是发表前的构建产物
  • 正文里指向原论文与代码仓库的链接在站外,课堂断网时打不开
  • 九十张静态对照图是原作渲染好的散点图,图上没有文字;本文没有任何转载他人的图

原作 How to Use t-SNE Effectively(Martin Wattenberg、Fernanda Viégas(Google Brain)、Ian Johnson(Google Cloud),Distill,2016),CC BY 4.0 许可(原文),界面已中文化。

← K-Means 聚类 读懂 UMAP →

使用与数据说明 · 来源与许可