一句话定义:DINO(self-distillation with no labels,自蒸馏、无标签)是一种自监督视觉预训练方法——完全不用人工标注,只靠同一张图片的"不同视角"互相监督,就能训出一个通用性很强的视觉骨干网络(backbone)。
它是怎么工作的
DINO 同时维护两个结构相同的网络:学生(student)和教师(teacher)。同一张图经过两次不同的随机裁剪与增强,得到两个视角:学生看的是若干小块局部,教师看的是覆盖更全的大图。学生的任务是——在没看到教师那个视角的情况下,预测教师的输出分布。
关键在教师从哪来。它不是外部专家,而是学生自己的"慢速影子":教师权重是学生权重的指数滑动平均(EMA,exponential moving average)。学生每更新一步,教师只挪一点点。于是教师总是更稳、更滞后,学生被要求去追赶一个比自己更可靠的自己。这就是自蒸馏(self-distillation)。
这里有个隐患:如果放任不管,学生很快会发现"无论输入什么都输出同一个答案"最省事,训练直接塌缩(collapse)。DINO 用两个对冲手段解决——centering 给整体过于热门的维度降权,sharpening 逼学生给出更尖锐的判断,一冷一热把分布撑住。
打个比方:两个人给同一段长视频做笔记。一个只看零碎片段(学生),另一个看得更完整但反应慢半拍(教师,其实是前者过去的自己)。前者的目标不是记住画面,而是猜出后者此刻会怎么描述。
和相邻概念的区别
| 方法 | 监督信号从哪来 | 需要负样本吗 | 特征特点 |
|---|---|---|---|
| 有监督分类 | 人工类别标签 | 不涉及 | 贴合标注类别 |
| 对比学习(SimCLR、MoCo 等) | 同图不同视角 | 需要 | 依赖大 batch 或样本队列 |
| 掩码重建(MAE、BEiT 等) | 像素或离散 token | 不需要 | 擅长重建,偏细节 |
| 图文对比(CLIP) | 图片–文本对 | 需要 | 能跨模态对齐 |
| DINO | 同图不同视角 | 不需要 | 通用、对物体边界敏感 |
对从业者的意义
- 标签变便宜了:海量无标注图片、监控视频、商品图都能直接喂进去,省掉最贵的那道人工标注环节。
- 特征好用:DINO 训出的 ViT,用最简单的 k-NN 分类或线性探针就有不错表现,注意力图常常自带"物体分割"的效果,这在自监督方法里比较少见。
- 落地姿势:多数团队不必从头训练,直接拿开源权重当骨干,接检测、分割、图像检索、聚类去重等下游任务即可。后续还有更大规模的 DINOv2 等演进版本,具体能力与许可请以官方页面为准。
- 代价:训练吃算力,且对温度、centering、多裁剪(multi-crop)等超参较敏感,自己复现未必轻松。
一句话记住:DINO 让模型"看着同一张图的不同角落,猜那个慢半拍的自己在想什么",于是在零标注的条件下学出到哪儿都能用的视觉特征。
