
[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 논문을 이해하기 위해 알아두면 좋을 사전 지식들 내용이다.
Computer vision 분야에서 transformer가 적용된 ViT가 등장했다. ViT는 이미지를 여러 개의 patch로 나눈 뒤 각 patch를 하나의 token처럼 처리한다. 이후 self-attention을 이용해 patch 사이의 관계를 학습한다. 그러나 초기 ViT에는 다음과 같은 한계가 있다.
논문의 저자들은 이 문제가 ViT 구조 자체가 아니라 지도학습 방식에서 비롯된 것일 수 있다고 본다. 왜냐하면 일반적인 image classification은 이미지 전체에 하나의 class label을 부여한다. 이 과정에서 이미지가 가진 풍부한 공간 정보는 하나의 label로 축소된다. 반면 NLP의 BERT나 GPT는 문장 내부의 단어를 이용해 자기지도학습 문제를 만든다.
Figure 2: Self-distillation with no labels. We illustrate DINO inthe case of one single pair of views (x1, x2) for simplicity.
Algorithm 1. DINO PyTorch pseudocode w/o multi-crop.
DINO는 두 개의 network로 구성된다.
두 network는 같은 architecture를 사용하지만 서로 다른 parameter를 가진다. 입력 이미지 x에 대해 student와 teacher는 각각 차원의 출력을 생성한다. Student 출력은 softmax를 거쳐 확률분포가 된다.
DINO projection head
Teacher도 를 사용해 를 생성한다.
Student는 teacher의 분포를 따라가도록 cross-entropy loss를 최소화한다.
여기서 차원은 ImageNet class를 의미하지 않는다. DINO가 representation을 학습하기 위해 사용하는 latent output space다. 이 논문의 차원은 65536이다.
DINO는 하나의 이미지에서 여러 crop을 만든다.
Loss는 teacher가 본 global view와 student가 본 다른 view의 출력을 비교한다.
이 구조는 student가 이미지 일부만 보고도 전체 이미지의 의미와 일관된 representation을 만들도록 한다. 이를 local-to-global correspondence라고 한다.
DINO는 미리 학습된 teacher가 없다.
Teacher는 student parameter의 EMA로 업데이트 된다.
EMA를 사용하는 이유는 Student weight를 teacher에 그대로 복사하면 teacher도 student만큼 빠르게 변한다. 그 경우 student가 따라갈 안정적인 target이 사라진다. EMA teacher는 student의 여러 과거 상태를 평균낸 temporal ensemble처럼 작동한다.
자기지도학습에서는 모든 입력이 동일한 feature로 매핑되는 collapse가 발생할 수 있다. DINO는 collapse 방지를 위해 teacher output에 두 가지 operation을 적용한다.
Teacher output의 평균을 추적해 특정 dimension이 지배적으로 커지는 것을 막는다
Centering은 한 dimension으로 모든 sample이 몰리는 것을 방지한다. 하지만 centering만 적용하면 모든 dimension이 비슷해지는 uniform collapse를 유발할 수 있다.
Teacher softmax에 낮은 temperature 를 적용해 분포를 더 뾰족하게 만든다. Sharpening은 모든 dimension의 확률이 동일해지는 uniform collapse를 억제한다.
따라서 DINO의 안정성은 Momentum Teacher + Centering + Sharpening에서 나온다.
Table 1: Networks configuration.
Patch가 작아질수록 더 세밀한 spatial information을 표현할 수 있지만 token 수가 증가해 계산량과 메모리 사용량이 커진다
DINO의 projection head는 최종 [CLS] token output에 연결된다.
DINO는 ImageNet의 label을 사용하지 않고 pretraining되는데 주요 학습 설정은 다음과 같다.
| 설정 | 값 |
|---|---|
| Optimizer | AdamW |
| Batch size | 1024 |
| GPU | ViT-S/16 기준 16 GPU |
| LR warm-up | 초기 10 epoch |
| Student temperature | 0.1 |
| Teacher temperature | 0.04 → 0.07 |
| Augmentation | Color jitter, Gaussian blur, solarization |
| Crop | Multi-crop |
| Position embedding | Bicubic interpolation |
DINO feature는 3가지 방법으로 평가한다.
Linear Evaluation
Finetuning
K-NN Evaluation
논문에서는 대부분의 실험에서 20-NN이 잘 작동했다고 보고 있다.
Table 2: Linear and k-NN classification on ImageNet.
Table 2 상단에서는 같은 architecture에서 DINO와 기존 SLL 방법을 비교하고 하단에서는 서로 다른 architecture에서 얻은 최고 성능을 비교한다.
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이다.
DINO feature는 왜곡된 이미지에서도 instance-level matching에 강한 모습을 보였다.
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로 봐야 한다.
Table 6: Transfer learning by finetuning pretrained models on different datasets.
DINO feature가 ImageNet의 1000개 class에만 최적화된 것이 아니라 다른 task로 전이 가능한 범용 representation임을 보여준다.
Table 7: Important component for self-supervised ViT pre-training.
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 성능은 높아진다.
DINO는 표준 ViT architecture를 수정하지 않고도 self-supervised learning을 통해 강력한 representation을 학습할 수 있음을 보여준다.