Skip to main content

BYOL and SimSiam

BYOL (Bootstrap Your Own Latent) と SimSiam は、negative sample なしで contrastive 系の representation learning を実現した代表的手法です。一見すると collapse しそうな設計が動くことで、self-supervised の理解を深めました。

BYOL の構造

  • Online network: encoder + projection + predictor (backprop で更新)
  • Target network: encoder + projection、online の EMA
  • Predictor が target representation を予測する
  • Loss は cosine similarity を最大化 (= MSE)

なぜ collapse しないのか

Negative がないと、すべての image を同じ vector にマップする trivial 解が成立しそうに見えます。しかし BYOL では、

  • Predictor が online 側にのみ存在し、非対称な構造を作る
  • Target encoder は EMA で slow に動く
  • Online encoder は target に追随しながら augmentation 不変性を学ぶ

ことで、collapse が回避されることが経験的に確認されました。

SimSiam

SimSiam は BYOL から EMA まで取り除き、stop-gradient + predictor head だけで collapse を防げることを示した model です。

最小限の構成で BYOL と同等の性能が出ることから、collapse 回避には predictor + stop-gradient が本質的だと議論されました。

JEPA との関係

JEPA も、target encoder に対して stop-gradient / EMA を使い、context から target representation を predictor で予測します。基本構造は BYOL / SimSiam の延長線上にあると見ることができます。

AspectBYOL / SimSiamJEPA
Augmentation 不変性強く依存必ずしも依存しない
Maskなしあり
Predictorありあり
Stop-grad / EMAありあり

数式で見る negative なしの予測損失

BYOL と SimSiam では、二つの view から得た representation を直接近づけます。Online branch の predictor 出力を p1p_1、target branch の projection を z2z_2 とすると、negative cosine similarity は次のように書けます。

L(p1,z2)=p1p12sg(z2)sg(z2)2\mathcal{L}(p_1,z_2)= -\frac{p_1}{\|p_1\|_2}^\top \frac{\mathrm{sg}(z_2)}{\|\mathrm{sg}(z_2)\|_2}

ここで、sg()\mathrm{sg}(\cdot) は stop-gradient です。つまり、z2z_2 側には gradient を流さず、p1p_1 側だけを更新します。実際には、view を入れ替えた対称項も足します。

Lsym=12L(p1,z2)+12L(p2,z1)\mathcal{L}_{\mathrm{sym}}= \frac{1}{2}\mathcal{L}(p_1,z_2)+ \frac{1}{2}\mathcal{L}(p_2,z_1)

この式の気持ちは、「一方の branch がもう一方の branch の表現を予測するが、予測される側はその step では動かさない」という非対称性を作ることです。この非対称性と predictor が、すべての入力を同じ vector に写す collapse を避けるうえで重要だと考えられています。

関連ページ

主なソース