课程进度 课程大纲 已发布 34/34 课
第 0 部分——先拿到地图
第 1 部分——为什么简单目标会学会看视频
第 2 部分——把一段视频送进单编码器
第 3 部分——会读实验,才算读懂论文
第 4 部分——从官方仓库到自己的实验
第 5 部分——把表征接回世界模型路线
附录——随用随查的技术背包
一位读者、一张摘要卡、一间临时整理室
- 许多小块视频 token
- 一台 ViT所有视图共享
- 摘要卡读取 [CLS]
- 临时门厅投到 256 维
想象一位图书管理员同时看一本书的全页照片和几个局部放大图。她没有为每张图雇一个人,而是用同一个大脑阅读,再各写一张“这页在讲什么”的摘要卡。训练老师要检查这些卡片的分布,却发现管理员的最终书写规则把卡片压在一个球面上。于是加了一间临时整理室,把卡片换成更适合检查的格式;毕业后,整理室拆掉,管理员留下。
这三个角色就是共享 ViT、[CLS] 和 projector。它们都可训练,但分工不同。
把三个角色对回零件表
ViT(Vision Transformer,视觉 Transformer)负责读 token;[CLS] 是放在序列开头、用来汇总整段 clip 的可学习 token;**projector(投影头)**则是只在预训练期间替损失整理特征的小网络。
| 零件 | 输入与输出 | 在训练中的工作 | 训练后 |
|---|---|---|---|
共享视频 ViT Eθ | 每个视图的 token → 同宽度的输出 token | 全局、局部视图都复用同一组参数 | 保留,作为下游编码器 |
[CLS] | 序列最前的一枚可学习 token | 汇总 clip;损失只直接读取它,而且它从不被随机丢弃 | 保留,可作 clip 摘要 |
两层 projector hφ | d → 2048 → K,K=256 | Linear → BatchNorm → GELU → Linear;所有视图共享 | 丢弃 |
论文把一个视图的训练嵌入写成:
z_v = hφ(Eθ(x_v)[CLS]) ∈ R^256
为什么不直接在编码器输出上做 SIGReg?ViT 最后一层的 **LayerNorm(层归一化)**会约束 [CLS] 的尺度,使表示落在受限的球面几何上;论文据此说明,SIGReg 在该空间里难以有效优化到各向同性高斯。projector 提供一个不受同样输出几何限制的训练接口。它和 V-JEPA 式 predictor 分工不同:projector 只变换本分支的表示,并不拿一支分支去猜另一支,也没有 target encoder 或 stop-gradient 与之配对。
仓库当前实现与附录一致:ViT-B 时 d=768,先得到形如 [B, V+1, 768] 的摘要,再投为 [B, V+1, 256]。下游任务回到编码器表示,而不是带走 projector。
画一次参数共享
拿一张纸画两条输入支路:一条 global、另一条 local。让两条箭头都进入同一个 Eθ 方框,再从 [CLS] 进入同一个 hφ。请把“第二台 EMA target encoder”“predictor”“stop-gradient”三张便签全部放到图外。若 B=8、V=4、d=768,请核对 projector 前后形状应为 [8,5,768] → [8,5,256]。
逐个零件核对
毕业时谁留下
- 所有视图经过同一台 ViT,并从各自的
[CLS]读取 clip 摘要。 - projector 是
d → 2048 → 256的两层训练头,用来绕开最终 LayerNorm 对 SIGReg 空间的限制。 - projector 会被丢弃;它不是 predictor,训练图里也没有 target encoder 或 stop-gradient。
零件小测
- 全局与局部视图是否各有一套独立 ViT 参数?
- 为什么需要 projector?
- 下游评估还使用这个 256 维 projector 吗?
打开零件表核对
- 不是,它们共享同一组编码器参数。
- 最终 LayerNorm 约束了编码器输出几何,projector 提供适合 SIGReg 优化的空间。
- 不使用;projector 在预训练后丢弃,下游读取编码器表示。