如何正确使用 t-SNE:那张降维图到底在说什么
How to Use t-SNE Effectively · Distill,2016
t-SNE 图几乎每篇论文都有,也最容易被读错。这篇用十三组对照实验说清楚:困惑度调不对会凭空造出簇,簇的大小没有意义,纯随机数据在低困惑度下照样看起来有结构。每张图都能现场重跑。
交互实验(可直接投屏)
原作是一个完整的网页应用,下面直接嵌入;屏幕小或要投影时,点「全屏打开实验」更清楚。
动手三步
- 先在顶部的交互图里换几种数据形状,点播放看 t-SNE 一步步把它们摊平
- 拖困惑度滑块,从 2 拉到 80,看同一份数据画出完全不同的图
- 点击正文里任意一张小图,页面底部会用同样的参数现场重跑一遍
- 重点看「随机噪声未必看上去就随机」:这份数据是纯随机的,但困惑度 2 时看起来分成了好几团
- 最后用前几节的结论回头检查自己报告里那张 t-SNE 图
课堂怎么用
- 开场先放一张学生自己做的 t-SNE 图,问「你从这张图读出了什么」,写在黑板上,读完这篇再逐条核对
- 用困惑度滑块做课堂实验:同一份数据,让学生分别找出「看起来有 2 个簇」和「看起来有 5 个簇」的困惑度
- 随机数据那一节是最好的反例教材:先让学生看图猜有几个簇,再揭晓这是纯噪声
- 与 A-17 读懂 UMAP 连讲:先讲 t-SNE 怎么被读错,再讲 UMAP 改了什么、又没改什么
思考题
- 困惑度大致相当于「每个点有多少个近邻」,为什么它必须小于点的总数?
- 为什么 t-SNE 图上簇的大小不能用来互相比较?
- 迭代步数不够时图会呈现什么特征?怎么判断一张 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 许可(原文),界面已中文化。