Self-Distillation Overview
Self-Distillation 系の self-supervised learning は、student-teacher 構成で、teacher の出力を student に予測させることで representation を学びます。Teacher は student の EMA で、明示的な label や negative を使いません。BYOL / SimSiam 系の延長線上にあり、DINO がその代表例です。
基本構造
- Teacher は student の EMA
- Multi-crop augmentation (global / local crops) を使う
- Cross-entropy / KL divergence を loss にする
- 明示的な negative や label は不要
DINO 系の発展
| 世代 | 主な拡張 |
|---|---|
| DINO | ViT 上で self-distillation、教師なしで semantic features |
| DINOv2 | 大規模 curated dataset、より大きな ViT、distillation で小モデル化 |
| DINOv3 | Gram anchoring などで dense feature を超大規模化 |
なぜ重要か
- ラベルなしで semantic representation を学べる: classification、segmentation、retrieval の強力な backbone
- Dense feature の質が高い: open-vocabulary 3D、SAM 系、depth、tracking の prior に使える
- Foundation backbone: Depth Anything、SAM、CLIP-Surgery、その他多くの vision foundation model が使う
数式で見る self-distillation
Self-distillation 系では、student の出力分布 が teacher の出力分布 に近づくように学習します。Student logits を 、teacher logits を 、centering vector を 、temperature を とすると、典型的には次のように分布を作ります。
Loss は teacher distribution を target にした cross-entropy です。
ここで、 は prototype や output dimension の index です。 は teacher が「この成分が重要である」と見ている強さであり、 は student の予測です。この式の気持ちは、「安定した teacher の見方を、augmentation が違う student view に写し取る」というものです。
Teacher は通常、student の parameter を直接コピーするのではなく、EMA parameter としてゆっくり更新します。
は 1 に近い momentum coefficient です。この更新により、teacher は直近の mini-batch に過剰反応せず、安定した target を作れます。また、centering vector は teacher logits の batch 平均を使って次のように更新されます。
Centering は特定の output 成分に全 sample が偏る collapse を抑え、低い teacher temperature による sharpening は teacher の分布を適度に尖らせます。つまり、centering は「一箇所に偏らないためのブレーキ」であり、sharpening は「曖昧すぎる target にしないためのアクセル」です。
詳細ページ
| ページ | 内容 |
|---|---|
| DINO | Self-distillation の確立 |
| DINOv2 | Curated data + scale-up、汎用 backbone |
| DINOv3 | Gram anchoring と超大規模 dense features |