Skip to main content

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 系の発展

世代主な拡張
DINOViT 上で self-distillation、教師なしで semantic features
DINOv2大規模 curated dataset、より大きな ViT、distillation で小モデル化
DINOv3Gram 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 の出力分布 psp_s が teacher の出力分布 ptp_t に近づくように学習します。Student logits を zsz_s、teacher logits を ztz_t、centering vector を cc、temperature を τs,τt\tau_s,\tau_t とすると、典型的には次のように分布を作ります。

ps=softmax ⁣(zsτs),pt=softmax ⁣(ztcτt)p_s = \mathrm{softmax}\!\left(\frac{z_s}{\tau_s}\right), \qquad p_t = \mathrm{softmax}\!\left(\frac{z_t-c}{\tau_t}\right)

Loss は teacher distribution を target にした cross-entropy です。

Ldistill=kpt(k)logps(k)\mathcal{L}_{\mathrm{distill}} = -\sum_k p_t^{(k)}\log p_s^{(k)}

ここで、kk は prototype や output dimension の index です。pt(k)p_t^{(k)} は teacher が「この成分が重要である」と見ている強さであり、ps(k)p_s^{(k)} は student の予測です。この式の気持ちは、「安定した teacher の見方を、augmentation が違う student view に写し取る」というものです。

Teacher は通常、student の parameter θ\theta を直接コピーするのではなく、EMA parameter θˉ\bar{\theta} としてゆっくり更新します。

θˉmθˉ+(1m)θ\bar{\theta} \leftarrow m\bar{\theta}+(1-m)\theta

mm は 1 に近い momentum coefficient です。この更新により、teacher は直近の mini-batch に過剰反応せず、安定した target を作れます。また、centering vector は teacher logits の batch 平均を使って次のように更新されます。

cλc+(1λ)meanb(zt)c \leftarrow \lambda c+(1-\lambda)\operatorname{mean}_b(z_t)

Centering は特定の output 成分に全 sample が偏る collapse を抑え、低い teacher temperature τt\tau_t による sharpening は teacher の分布を適度に尖らせます。つまり、centering は「一箇所に偏らないためのブレーキ」であり、sharpening は「曖昧すぎる target にしないためのアクセル」です。

詳細ページ

ページ内容
DINOSelf-distillation の確立
DINOv2Curated data + scale-up、汎用 backbone
DINOv3Gram anchoring と超大規模 dense features

関連ページ

主なソース