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


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

读懂 UMAP

Understanding UMAP · Google PAIR 作品,2019

把高维数据压到二维到底做了什么?拖两个滑块就能看见:邻居数管「看多远」,最小距离管「摆多紧」。还有一具三维猛犸象骨架,让 UMAP 与 t-SNE 当场同台。

适用
机器学习基础、数据挖掘、数据分析与可视化、人工智能导论进阶章节
概念
降维、UMAP、t-SNE、流形学习、邻居数、最小距离、全局结构与局部结构、维数灾难
课时
进阶 · 建议 35 分钟
网络
离线可用(不依赖外网,需能打开本站)

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

交互实验(可直接投屏)

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

动手三步

  1. 先看玩具数据:把邻居数从 15 拖到 80,看散开的簇如何收拢成整体轮廓
  2. 再把最小距离从 0.1 拖到 0.85,看同一份数据被摊平摊松
  3. 拖半径滑块,看 UMAP 怎么从每个点向外撑开半径、半径相交就连边
  4. 重点在猛犸象:邻居数调到最小,它碎成一堆互不相干的零件;调到 200,象鼻、象腿、象牙的相对位置才对得上
  5. 对比同一具猛犸象的 t-SNE 结果:困惑度要拉到很大才开始看出全局结构,而且每跑一次都不一样

课堂怎么用

  • 开场只做一件事:让全班猜「邻居数调大,图会变密还是变散」,再当场拖给他们看
  • 猛犸象是最好的讲义:三维原形就在旁边,学生能自己判断投影对不对,这是高维数据做不到的
  • 把「UMAP 图里簇的大小和簇间距离都没有意义」单独拎出来讲,这是最容易误读的一条
  • 让学生用同一组参数跑两次,看结果不一样,引出「随机算法要多画几张图」的科研习惯

思考题

  1. 邻居数调小到 3,猛犸象为什么会碎成互不相干的零件?这对应算法的哪一步?
  2. 为什么说 UMAP 图里两个簇之间的距离不能当成「这两类有多不像」?
  3. 同一份数据、同一组参数跑两次得到不同的图,这是 bug 吗?做科研时该怎么处理?

已知限制

  • 参数名按代码记号保留英文,控件标签用「中文(英文参数名)」双写,便于对照官方文档
  • t-SNE 对比面板在开始计算前会短暂显示一个英文占位,是原作自带的显示瑕疵
  • 猛犸象与服饰图像的投影是原作预先算好的,只能在给定的参数组合里切换;第一张图才是浏览器里实时计算的
  • 三维散点用 WebGL 绘制,老旧核显机器上可能掉帧,建议课前试一次

原作 Understanding UMAP(Andy Coenen、Adam Pearce(Google PAIR),Google PAIR 作品,2019),Apache-2.0 许可(原文),界面已中文化。

← 如何正确使用 t-SNE:那张降维图到底在说什么 精确率与召回率:为什么不能只看准确率 →

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