이미지 분류 모델을 학습하려면 레이블이 필요하다. ImageNet 120만 장에 레이블을 붙이는 데 수십만 시간의 인간 노동이 들었다. 레이블 없이 좋은 시각적 표현을 학습할 수 없을까?
NLP에서는 MLM(마스크된 언어 모델)이 레이블 없이 텍스트 표현을 학습했다. 이미지에서 같은 역할을 하는 방법이 자기지도학습(self-supervised learning)이다.
Meta AI의 Caron 등이 2021년 발표한 DINO(self-DIstillation with NO labels)는 레이블 없이 ViT를 학습하는 방법을 제안했다.
학생-교사 구조
DINO는 두 개의 동일한 ViT 네트워크를 사용한다.
교사 네트워크(Teacher): 가중치가 고정되지 않지만 역전파로 직접 학습하지 않는다. 학생의 가중치를 지수이동평균(EMA)으로 서서히 따라간다.
학생 네트워크(Student): 일반적인 역전파로 학습한다.
가중치_교사 = α × 가중치_교사 + (1-α) × 가중치_학생
α ≈ 0.996 (천천히 업데이트)
다중 크롭 전략
같은 이미지에서 두 가지 크기의 크롭을 만든다.
- 글로벌 크롭: 이미지의 50% 이상을 포함하는 큰 크롭 2개
- 로컬 크롭: 이미지의 50% 미만인 작은 크롭 6~8개
교사는 글로벌 크롭만 보고, 학생은 모든 크롭을 본다.
학습 목표: 어떤 크롭을 입력해도 같은 이미지에서 나왔으면 비슷한 표현(임베딩)을 가져야 한다.
로컬 크롭(학생) → ViT → 임베딩_학생
글로벌 크롭(교사) → ViT → 임베딩_교사
손실: 두 임베딩이 유사해지도록 (크로스 엔트로피)
이 설계가 중요한 이유: 작은 패치만 보고도 전체 이미지와 같은 표현을 만들어야 하므로, 모델이 부분에서 전체를 이해하도록 강제된다.
Centering과 Sharpening
자기지도학습에서 자주 발생하는 두 가지 실패 모드가 있다.
Collapse: 모든 입력에 대해 같은 출력을 내는 것이 손실을 0으로 만드는 지름길이다. 이를 방지하기 위해 교사 출력에 Centering(평균 빼기)을 적용해 하나의 차원이 지배하지 않도록 한다.
Sharp: 교사 출력에 낮은 온도 매개변수를 적용해 특정 차원에 집중된 분포를 만든다. 학생이 구체적인 특징을 학습하도록 유도한다.
놀라운 발견: 세그멘테이션
DINO의 어텐션 헤드를 시각화하면 세그멘테이션 레이블 없이 학습했음에도 객체 경계가 자연스럽게 나타난다.
개 이미지를 입력하면 [CLS] 토큰의 어텐션이 개의 윤곽을 따른다. 배경과 전경이 명확하게 분리된다. 레이블 없이 의미 있는 시각적 분리를 학습한 것이다.
이것이 DINO가 단순한 분류 사전학습을 넘어서는 부분이다. 배운 표현이 세그멘테이션, 깊이 추정, 객체 탐지 등 다양한 태스크에 전이된다.
선형 프로빙
사전학습된 DINO 특징의 품질을 측정하는 방법이다. DINO 가중치를 고정하고 마지막에 선형 분류기 하나만 학습한다.
선형 분류기만으로 ImageNet에서 78% 이상의 정확도가 나왔다. 이는 감독 학습(supervised)으로 학습한 ViT의 선형 프로빙 성능과 비슷하다. 레이블 없이 학습한 표현이 레이블 있는 학습과 비슷한 품질을 갖는다는 것을 의미한다.
DINOv2와의 관계
2023년 발표된 DINOv2는 DINO를 대규모 데이터(1억 4200만 장, 자동 큐레이션)와 개선된 학습 방식으로 확장했다. 091에서 다룬다.
트레이드오프
DINO는 학습이 불안정할 수 있다. 교사-학생 가중치 비율, 온도 파라미터, 크롭 비율이 모두 중요한 하이퍼파라미터다. 이 값들이 맞지 않으면 Collapse가 발생한다. 재현이 어렵다는 점이 초기 연구에서 지적됐다.
또한 학습 계산량이 감독 학습보다 많다. 이미지당 여러 크롭을 처리하고 교사-학생을 동시에 실행하므로 메모리와 연산이 약 2배 필요하다.