[논문 Review] Emerging Properties in Self-Supervised Vision Transformers(DINO)

Roh Tae Gyu·2026년 7월 10일

논문 리뷰

목록 보기
26/28

[Paper] [Github]
Caron, M., Touvron, H., Misra, I., Jégou, H., Mairal, J., Bojanowski, P., & Joulin, A.
ICCV 2021

이번에 읽은 논문은 2021년 Meta에서 나온 DINO논문이다. 이 논문을 읽게 된 계기는 3DGS 응용 논문을 보게 되면 자주 등장하는 2D Foundation model들(DINO, SAM, CLIP)이 있다. 그 중에서 DINO논문을 읽게 되었고 아래 유튜브를 많이 참고하여 이해했다.

DiNO 시각화로 설명 유튜브

DINO 논문을 이해하기 위해 알아두면 좋을 사전 지식들 내용이다.

Introduction


Computer vision 분야에서 transformer가 적용된 ViT가 등장했다. ViT는 이미지를 여러 개의 patch로 나눈 뒤 각 patch를 하나의 token처럼 처리한다. 이후 self-attention을 이용해 patch 사이의 관계를 학습한다. 그러나 초기 ViT에는 다음과 같은 한계가 있다.

  • CNN보다 계산량이 많다
  • 많은 학습 데이터가 필요하다
  • CNN과 비교해 ViT만의 독특한 feature 특성이 분명하지 않다

논문의 저자들은 이 문제가 ViT 구조 자체가 아니라 지도학습 방식에서 비롯된 것일 수 있다고 본다. 왜냐하면 일반적인 image classification은 이미지 전체에 하나의 class label을 부여한다. 이 과정에서 이미지가 가진 풍부한 공간 정보는 하나의 label로 축소된다. 반면 NLP의 BERT나 GPT는 문장 내부의 단어를 이용해 자기지도학습 문제를 만든다.

  • BERT : 가려진 단어 예측
  • GPT : 다음 단어 예측
    논문의 저자들은 이미지에서도 자기지도학습을 사용하면 더 풍부한 visual representation을 학습할 수 있다고 본다.

Method


Fig 2Figure 2: Self-distillation with no labels. We illustrate DINO inthe case of one single pair of views (x1, x2) for simplicity.

Algorithm 1Algorithm 1. DINO PyTorch pseudocode w/o multi-crop.

DINO는 두 개의 network로 구성된다.

  • Student network : gθsgθ_s = h𝑠ℎ_𝑠𝑓𝑠𝑓_𝑠
  • Teacher network : gθtgθ_t = htℎ_t𝑓t𝑓_t

두 network는 같은 architecture를 사용하지만 서로 다른 parameter를 가진다. 입력 이미지 x에 대해 student와 teacher는 각각 KK차원의 출력을 생성한다. Student 출력은 softmax를 거쳐 확률분포가 된다.

  • h𝑠ℎ_𝑠는 projection head
  • 𝑓𝑠𝑓_𝑠는 backbone(ViT or ResNet)

DINO projection head

PS(x)(i)=exp(gθS(x)(i)/τS)k=1Kexp(gθS(x)(k)/τS),P_S(x)^{(i)} = \frac{\exp(g_{\theta_S}(x)^{(i)}/\tau_S)}{\sum_{k=1}^K \exp(g_{\theta_S}(x)^{(k)}/\tau_S)},

  • KK : projection head의 출력 차원
  • τsτ_s : student temperature
  • Ps(x)P_s(x) : student 출력 분포

Teacher도 τsτ_s를 사용해 Pt(x)P_t(x)를 생성한다.
Student는 teacher의 분포를 따라가도록 cross-entropy loss를 최소화한다.
minθSH(Pt(x),PS(x))\min_{\theta_S} H(P_t(x), P_S(x))
여기서 KK차원은 ImageNet class를 의미하지 않는다. DINO가 representation을 학습하기 위해 사용하는 latent output space다. 이 논문의 KK차원은 65536이다.

Multi-crop

DINO는 하나의 이미지에서 여러 crop을 만든다.

Global view

  • 2개 사용
  • 일반적으로 224 x 224
  • 원본 이미지의 넓은 영역을 포함
  • Student와 teacher 모두 입력 받음

Local view

  • 여러 개 사용
  • 일반적으로 96 x 96
  • 원본 이미지의 작은 영역을 포함
  • Student만 입력 받음

Loss는 teacher가 본 global view와 student가 본 다른 view의 출력을 비교한다.
minθSx{x1g,x2g}xVxxH(Pt(x),PS(x))\min_{\theta_S} \sum_{x \in \{x_1^g, x_2^g\}} \sum_{\substack{x' \in V \\ x' \neq x}} H(P_t(x), P_S(x'))
이 구조는 student가 이미지 일부만 보고도 전체 이미지의 의미와 일관된 representation을 만들도록 한다. 이를 local-to-global correspondence라고 한다.

EMA

DINO는 미리 학습된 teacher가 없다.

Teacher는 student parameter의 EMA로 업데이트 된다.
θthetatλθt+(1λ)θs\theta_theta_t \leftarrow \lambda \theta_t + (1 - \lambda) \theta_s

  • θt\theta_t : teacher parameter
  • θs\theta_s : student parameter
  • λ\lambda : momentum coefficient
    논문에서는 λ\lambda를 0.996에서 시작해 cosine schedule에 따라 1에 가깝게 증가시킨다.

EMA를 사용하는 이유는 Student weight를 teacher에 그대로 복사하면 teacher도 student만큼 빠르게 변한다. 그 경우 student가 따라갈 안정적인 target이 사라진다. EMA teacher는 student의 여러 과거 상태를 평균낸 temporal ensemble처럼 작동한다.

  • student : 빠르게 변화
  • teacher : student를 천천히 따라감
    논문에서는 teacher가 학습 과정에서 student보다 지속적으로 높은 성능을 보였다고 한다.

Collapse 방지

자기지도학습에서는 모든 입력이 동일한 feature로 매핑되는 collapse가 발생할 수 있다. DINO는 collapse 방지를 위해 teacher output에 두 가지 operation을 적용한다.

Centering

Teacher output의 평균을 추적해 특정 dimension이 지배적으로 커지는 것을 막는다

cmc+(1m)1Bi=1Bgθt(xi)c \leftarrow mc + (1 - m) \frac{1}{B} \sum_{i=1}^B g_{\theta_t}(x_i)

Centering은 한 dimension으로 모든 sample이 몰리는 것을 방지한다. 하지만 centering만 적용하면 모든 dimension이 비슷해지는 uniform collapse를 유발할 수 있다.

Sharpening

Teacher softmax에 낮은 temperature τsτ_s를 적용해 분포를 더 뾰족하게 만든다. Sharpening은 모든 dimension의 확률이 동일해지는 uniform collapse를 억제한다.

따라서 DINO의 안정성은 Momentum Teacher + Centering + Sharpening에서 나온다.

Implementation and Evaluation Protocols

Table 1: Networks configuration.

Patch가 작아질수록 더 세밀한 spatial information을 표현할 수 있지만 token 수가 증가해 계산량과 메모리 사용량이 커진다

DINO의 projection head는 최종 [CLS] token output에 연결된다.

DINO는 ImageNet의 label을 사용하지 않고 pretraining되는데 주요 학습 설정은 다음과 같다.

설정
OptimizerAdamW
Batch size1024
GPUViT-S/16 기준 16 GPU
LR warm-up초기 10 epoch
Student temperature0.1
Teacher temperature0.04 → 0.07
AugmentationColor jitter, Gaussian blur, solarization
CropMulti-crop
Position embeddingBicubic interpolation

DINO feature는 3가지 방법으로 평가한다.

Linear Evaluation

  • backbone은 freeze
  • linear classifier만 학습
  • feature 자체가 얼마나 linearly separable한지 평가

Finetuning

  • pretrained weight로 초기화
  • 전체 network를 downstream task에 맞게 학습
  • Transferability 평가

K-NN Evaluation

  • pretrained model freeze
  • training image feature 저장
  • test feature와 가까운 k개 feature 검색
  • 이웃 label voting으로 분류

논문에서는 대부분의 실험에서 20-NN이 잘 작동했다고 보고 있다.

Main Results


Comparing with SSL Frameworks on ImageNet

Table 2: Linear and k-NN classification on ImageNet.

Table 2 상단에서는 같은 architecture에서 DINO와 기존 SLL 방법을 비교하고 하단에서는 서로 다른 architecture에서 얻은 최고 성능을 비교한다.

Properties of ViT Trained with SSL

Table 3: Image retrieval.

Oxford와 Paris landmark retrieval dataset에서 frozen DINO feature를 평가했는데 DINO feature는 supervised feature보다 retrieval에서 강한 성능을 보였다.

Table 4: Copy detection.

INRIA Copydays의 strong subset에서 copy detection을 평가한다. 이 task는 다음과 같은 변형에도 같은 이미지를 찾아야 하는 task이다.

  • Blur
  • Insertion
  • Print and scan
  • Resolution 변화

DINO feature는 왜곡된 이미지에서도 instance-level matching에 강한 모습을 보였다.

Discovering the Semantic Layout of Scenes

Figure 1: Self-attention from a Vision Transformer with 8 × 8 patches trained with no supervision.

DINO로 학습한 마지막 layer에서 [CLS] token self-attention을 시각화하면 attention이 객체 영역에 집중한다. 자기지도학습된 ViT가 segmentation supervision 없이도 객체 중심의 attention을 형성한다.

Figure 3: Attention maps from multiple heads.

Figure 3은 여러 attention head가 서로 다른 semantic region을 본다는 것을 보여준다.

Figure 4: Segmentations from supervised versus DINO.

Self-attention map에서 attention mass의 60%를 유지하도록 thresholding하여 mask를 만든다. 이 mask와 PASCAL VOC12 ground-truth segmentation mask 사이의 Jaccard similarity를 측정한다. DINO attention mask는 supervised ViT보다 객체 영역과 훨씬 잘 겹친다. 다만 self-attention map은 segmentation을 위해 학습된 것이 아니며 경계도 smooth하다. 따라서 DINO는 segmentation model이 아닌 segmentation 정보를 feature 안에 자연스럽게 포함하는 representation model로 봐야 한다.

Transfer Learning

Table 6: Transfer learning by finetuning pretrained models on different datasets.

DINO feature가 ImageNet의 1000개 class에만 최적화된 것이 아니라 다른 task로 전이 가능한 범용 representation임을 보여준다.

Ablataion study


Table 7: Important component for self-supervised ViT pre-training.

  • Momentum이 없으면 학습이 collapse한다.
  • Multi-crop이 학습하는 데 중요하다.
  • Teacher와 student의 확률분포를 맞추는 데 Cross-Entropy가 효과적이다.
  • Predictor는 거의 필요 없다.

Figure 5: Effect of Patch Size. k-NN evaluation as a function of the throughputs for different input patch sizes with ViT-B and ViTS.

Patch가 작아질수록 k-NN 성능은 높아진다.

Conclusion


DINO는 표준 ViT architecture를 수정하지 않고도 self-supervised learning을 통해 강력한 representation을 학습할 수 있음을 보여준다.

profile
돌아보니 꽃길이다

0개의 댓글