JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

不靠負樣本的學習:BYOL、DINO、SwAV

一個網路如何能學著預測自己緩慢移動的老師,卻又神奇地不崩塌成常數。

為什麼要捨棄負樣本?

負樣本是對比學習兩大頭痛的根源:對巨大批次或佇列的胃口,以及把語意相同的影像錯誤推開的假負樣本問題。於是一個自然的問題是:我們能不能只保留目標中「把正樣本拉近」的那一半,而不崩塌?天真地看,不行——那正是常數向量的陷阱。本篇方法的突破在於:精心設計的不對稱性(asymmetry),能讓只有正樣本的目標變得穩定。

BYOL:預測動量目標

BYOL(Bootstrap Your Own Latent)保有兩個網路:一個被訓練的線上(online)網路,與一個是線上網路指數移動平均的目標(target)網路(就是 MoCo 用在鍵上的同一招動量)。線上網路把它的嵌入再經過一個額外的預測器(predictor)頭,被訓練去匹配目標網路對另一個視角的嵌入。整個過程沒有任何負樣本。目標網路收不到梯度——一個停止梯度(stop-gradient)把它封住。

\xi \leftarrow \tau\,\xi + (1-\tau)\,\theta, \qquad \mathcal{L}_{\theta,\xi} = \left\lVert \frac{q_\theta(z_\theta)}{\lVert q_\theta(z_\theta)\rVert} - \frac{z'_\xi}{\lVert z'_\xi\rVert} \right\rVert_2^2 = 2 - 2\cdot\frac{\langle q_\theta(z_\theta),\, z'_\xi\rangle}{\lVert q_\theta(z_\theta)\rVert\,\lVert z'_\xi\rVert}

BYOL 的两个核心:目标网络权重以指数移动平均跟随在线网络,而在线预测器被训练去匹配 L2 归一化后的目标投影。

online_z  = predictor(proj(online_enc(view1)))
target_z  = proj(target_enc(view2)).detach()      # stop-gradient!
loss = 2 - 2 * cosine(online_z, target_z)         # pull together only
# target_enc updated by EMA of online_enc, never by gradients
BYOL:不對稱的預測器 + 停止梯度的 EMA 目標,連一個負樣本都沒有。

為什麼 BYOL 不崩塌?

這曾困惑學界一陣子。常數解確實是全域最佳解,BYOL 卻能可靠地避開它。被接受的解釋有幾個一起運作的要素:預測器(只在線上端)打破了兩個分支間的對稱性;停止梯度讓目標在每一步都是一個固定的回歸目標,而非一個能搶著去迎合線上網路的東西;而移動平均的目標變動得夠慢,讓預測器始終在追逐一個近乎最佳但落後的目標。拿掉預測器 EMA,BYOL 就會崩塌——兩根支柱都是承重的。

DINO:沒有標籤的自蒸餾

DINO把同樣的想法重新包裝成知識蒸餾,只是老師就是學生的動量平均。兩者都透過 softmax 輸出在數千個「原型」維度上的機率分布,而學生被訓練去匹配老師在另一個視角上的分布。兩個操作讓它不崩塌:置中(centering,從老師的 logits 減去一個滑動平均,避免某一維獨大)與銳化(sharpening,老師用低溫,避免分布變得均勻)。套用在視覺 Transformer(Vision Transformer)上,DINO 展現出一個驚人的湧現性質:注意力圖能在完全沒有分割標籤的情況下分割出物件。

注意這個對偶:對比方法靠把負樣本散開(均勻性)來對抗崩塌;DINO 則用置中+銳化對抗同樣的崩塌,那是把均勻性與對齊性透過輸出分布來施加,而非透過負樣本。

\mathcal{L} = -\,P_t(x)^{\top}\log P_s(x), \qquad P_s = \mathrm{softmax}\!\left(\frac{g_s(x)}{\tau_s}\right), \quad P_t = \mathrm{softmax}\!\left(\frac{g_t(x)-c}{\tau_t}\right), \ \ \tau_t < \tau_s

DINO 的自蒸馏损失:将经过锐化与中心化的教师 softmax 作为目标,对学生 softmax 做交叉熵,中心向量 c 抑制坍缩方向。

SwAV:交換聚類指派

SwAV坐落於對比與聚類之間。它不直接比較特徵,而是把嵌入線上聚類到一小組學到的原型上,為每個視角產生一個柔性編碼(code)。接著施加交換預測的一致性:用視角 B 的特徵去預測視角 A 的編碼,反之亦然。崩塌(所有影像歸入同一個聚類)被一個等分約束(equipartition constraint)擋住——一個 Sinkhorn 正規化的指派,迫使整個批次大致均勻地散布到各個聚類。它精神上是對比的,但對比的是聚類編碼而非個別實例,因此不需要龐大的負樣本庫就能擴展。

SwAV 将嵌入在线聚类到一小组可学习的原型(类似聚类质心)上,并让每个视图去预测另一个视图的分配编码。

点被分组到若干质心标记周围的簇中,演示将嵌入分配到学习得到的原型。