[논문리뷰] Emerging Properties in Self-Supervised Vision Transformers

ChangSeong Yoo·4일 전
0

Machine Learning

목록 보기
12/13
post-thumbnail

📝 이번 포스트는 "Emerging Properties in Self-Supervised Vision Transformers" 논문에 대해 알아보도록 하겠습니다.

1. Why : 연구의 배경

연구진은 NLP에서 사용된 트랜스포머 구조를 기반으로 한 ViT(Vision Transformer), CNN과 경쟁할 수 있는 수준까지 발전했지만 아직 명확한 장점이 없다고 생각하였습니다.
ViT는 계산량이 많아서 데이터를 많이 필요로 하며, CNN과 비교헀을 때 독특한 특성이 부족한 문제점이 있습니다.
또한 지도학습 방식에서는 ViT가 특별한 성공이 없다고 생각합니다.

연구진은 NLP에서 트랜스포머가 성공한 이유 중 하나가 self-supervised learning에 있다고 주장합니다.
NLP의 유명 모델인 BERT는 마스킹된 단어 예측을 활용하여 강력한 표현 학습을 달성하였고, GPT는 언어 모델링을 통해 단어 시퀀스의 의미를 학습하는 Self-Supervised Learning(SSL) 방식을 이용합니다.
이러한 self-supervised learning 기법들은 단순히 레이블을 예측하는 것이 아닌 더 풍부한 학습을 제공합니다.

NLP에서는 단어 간 관계를 활용하여 Self-Supervised Learning을 적용할 수 있지만, Computer Vision에서는 상황이 다릅니다.
일반적인 Classification에서는 복잡한 이미지 정보를 단 하나의 레이블로 축소하는 문제가 있습니다.
classification에서는 무슨 클래스에 해당하는지만 맞추면 되기 때문입니다.
따라서 NLP처럼 더 풍부한 정보를 제공하는 자기지도 학습 기법이 필요함을 느껴 ViT를 Self-Supervised Learning으로 연구를 시작하였습니다.


2. How : 연구 방법론

2.1. SSL with Knowledge Distillation

✅ 1. DINO의 핵심 개념
DINO는 기존의 Self-Supervised Learning 방식과 유사한 구조를 가지지만, Knowledge Distillation 관점에서 해석 가능하다는 점에서 차별성을 갖습니다.
즉, 학생 네트워크가 교사 네트워크의 출력을 모방하도록 학습하는 방식을 뜻합니다.

지식 증류(Knowledge Distillation)란?
일반적인 지식 증류에서는 학생 네트워크가 교사 네트워크의 출력을 따라가도록 학습함.
보통 큰 모델을 작은 모델에 맞추기 위해 사용함.

✅ 2. DINO의 지식 증류 방식
Knowledg Distillation은 학생 네트워크 gθsg_{\theta_s}가 교사 네트워크 gθtg_{\theta_t}의 출력과 같아지도록 하는 방법입니다.
두 네트워크는 같은 구조를 갖지만, 각기 다른 파라미터 θs\theta_sθt\theta_t를 갖습니다.
그렇다면 입력 이미지 xx가 주어졌을 때, 학생과 교사 네트워크는 K차원의 확률 분포 PsP_sPtP_t를 출력하게 됩니다.
확률 분포 PP는 네트워크 gg는 소프트맥스 함수를 거쳐 정규화됩니다.
자세한 과정은 아래와 같습니다.

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)}

여기서 τs\tau_s 는 Temperature 매개변수로, 0보다 큰 값이며 출력된 확률의 sharpness를 조절하는 매개변수입니다.
τs\tau_s가 0에 근접할수록 확률분포가 더 sharp해지고 값이 커질수록 평탄해집니다.
위 수식은 학생 네트워크의 확률분포를 구하는 공식인데, 교사 네트워크 gθtg_{\theta_t} 또한 동일한 softmax 변환을 적용합니다. 하지만 다른 Temperature 파라미터 τs\tau_s를 사용하여 확률분포를 구합니다.

손실 함수는 cross-entropy로 정의되었고 학생 네트워크가 교사 네트워크의 출력을 따라가도록 학습을 진행합니다.
수식으로는 아래와 같습니다.

minθsH(Pt(x),Ps(x))\min_{\theta_s} H(P_t(x), P_s(x))

여기서 H(a,b)H(a, b)alogb-a \log b를 뜻합니다.
손실함수를 이렇게 설정함으로써 학생이 교사의 확률 분포를 최대한 따르도록 학습하게 할 수 있습니다.

✅ 3. DINO의 자기지도 학습 적용 방식
DINO에서는 다양한 변형된 이미지(View)를 활용하여 SSL을 적용합니다.
Multi-Crop 전략을 사용하여 데이터에 변형을 주어 하나의 이미지에서 여러 개의 다른 크기의 view를 생성합니다.
두 개의 글로벌 뷰와 여러 개의 로컬 뷰를 생성합니다.
글로벌 뷰는 전체 이미지의 50% 이상을 포함하는 224^2 크기의 이미지들이 해당합니다.
로컬 뷰는 전체 이미지의 50% 이하를 포함하는 224^2 크기의 이미지들이 해당합니다.
이 뷰를 통해 교사 네트워크는 글로벌 뷰만 입력받고, 학생 네트워크는 모든 뷰를 입력받습니다.
즉, 학생 네트워크는 로컬 뷰를 통해 학습하며, 교사의 글로벌 뷰와 일관성을 맞추도록 유도합니다.

모든 뷰를 고려한 손실함수는 아래와 같습니다.

minθsx{x1g,x2g}xV,xxH(Pt(x),Ps(x))\min_{\theta_s} \sum_{x \in \{x^g_1, x^g_2\}} \sum_{x{\prime} \in V, x{\prime} \neq x} H(P_t(x), P_s(x^\prime))

교사 네트워크는 글로벌 뷰 xg1,xg2x_g^1, x_g^2에 대해서만 출력을 생성합니다.
학생 네트워크는 모든 뷰에 대해 출력을 생성하고, 교사 출력을 모방하도록 학습합니다.

✅ 4. 교사 네트워크 (Teacher Network)
일반적인 Knowledge Distillation에서는 사전에 학습된 고정된 교사 네트워크가 존재하지만, DINO에서는 교사 네트워크가 학습 과정에서 동적으로 생성합니다.
학생 네트워크를 Exponential Moving Average을 이용하여 업데이트하는 방식을 사용합니다.
업데이트는 θtλθt+(1λ)θs\theta_t \leftarrow \lambda \theta_t + (1 - \lambda) \theta_s와 같이 적용됩니다.
λ\lambda값이 코사인 스케줄을 따라 0.996에서 1까지 점진적으로 증가하도록 하였습니다.
momentum encoder 방식은 원래 contrastive learning에서 queue를 대체하기 위해 사용되었습니다.
하지만 DINO에서는 queue나 contrastive loss 없이도 자가지도 학습을 안정적으로 진행하는 역할을 합니다.
이 방식은 Polyak-Ruppert Averaging과 유사한 역할을 하며, 모델의 성능을 향상시키는 데 도움을 줍니다.

✅ 5. 네트워크 아키텍처 (Network Architecture)
네트워크 gg는 ViT 혹은 ResNet으로 구성된 Backbone ff와 특징을 변환하는 projection head hh로 구성됩니다.
아키텍처를 수식으로 표현하면 g=hfg = h \circ f와 같습니다.
backbone ff의 출력은 다운스트림 작업에 사용될 특징으로 사용됩니다.
projection head는 3-layer MLP로 이루어져 있으며, hidden layer의 차원은 2048이고, L2정규화 후, FC-layer를 적용하였습니다.
추가로 일반적인 CNN에서는 Batch Normalization을 사용하지만, ViT에서는 기본적으로 Batch Normalization을 사용하지 않았습니다.
따라서 DINO를 ViT에 적용할 때도 BN을 적용하지 않았으며 전반적인 구조를 BN-free(배치정규화가 없는)로 하였습니다.

✅ 6. 모델 붕괴(Collapse) 방지 전략
자기지도 학습에서 모델 붕괴를 막기 위해 다양한 방법을 연구하였습니다.
기존의 collapse를 방지하는 방법으로는 contrastive loss를 사용하는 방법, clustering constraints, predictor, batch normalization을 사용하는 방법 등이 있습니다.
하지만 DINO는 centering과 sharpening를 통해 collapse를 방지하였습니다.
centering은 특정 차원이 너무 강하게 활성화되는 것을 방지하지만 균일한 분포로 붕괴되도록 촉진하는 반면, 선명하게 하면 반대 효과가 나타납니다.
특정 차원으로 강하게 활성화된다는 것은 모델이 출력하는 특징 벡터의 특정 차원 값만 높아지고, 나머지는 거의 0에 가까워지는 현상을 뜻합니다.
즉 모델이 데이터를 다양한 방식으로 구별하기보다는 일부 차원에만 집중하여 특징을 표현하는 문제가 발생하는 것입니다.
교사 네트워크를 gt(x)gt(x)+cg_t(x) \leftarrow g_t(x) + c로 표현할 수 있는데 cc는 편향을 뜻하고, Exponential Moving Average 방식으로 업데이트됩니다.
Exponetial Moving Average로 업데이트 되는 c는 아래와 같습니다.

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

m은 0보다 큰 업데이트 속도를 조절하는 파라미터이며, B는 배치 크기를 뜻합니다.
shaprneing은 온도 파라미터 τt\tau_t를 낮게 설정하여, 교사 네트워크의 출력이 너무 평탄해지는 것을 방지하고자 사용되었습니다.
즉 교사의 softmax 출력이 더 뾰족한 high-confidence를 갖는 확률 분포를 갖도록 유도하는 방식으로 사용됩니다.

2.2. Implementation and evaluation protocols

ViT는 이미지를 NxN 크기의 겹치지 않는 패치들로 분할하여 입력으로 사용합니다.
이 논문에서는 N=16(ViT-S/16) 또는 N=8(ViT-S/8) 크기의 패치를 주로 사용하였습니다.
각 패치들은 linear layer들을 통과하면서 임베딩 벡터로 변환됩니다.
이 변환된 패치 벡터들을 Transformer 모델에 입력하여 학습을 진행합니다.
그리고 기존 ViT 연구들에서 사용된 것과 동일한 방식으로 클래스 토큰을 추가합니다.
클래스 토큰은 Transformer의 최종 출력을 대표하는 역할을 하며, 이를 projection head hh에 연결하여 최종 출력을 생성합니다.
주의할 점은 DINO에서는 클래스 토큰이 특정한 라벨을 예측하는 것이 아니며, 자기지도 학습을 위한 정보 요약 역할만 합니다.


4. Conclusion

이 논문은 DINO를 활용한 자기지도 학습이 ViT의 성능을 크게 향상시킬 수 있음을 입증했으며, 이를 통해 ViT가 기존 CNN 기반 모델과 경쟁할 수 있음을 보여주었습니다.
또한 연구 결과를 바탕으로 향후 연구에서 활용할 수 있는 두 가지 중요한 특성을 제시하였습니다.
하나는 k-NN 분류에서 강력한 특징 학습 능력을 갖는다는 것을 찾았고, 다른 하나는 Scene layout 정보를 보존한다는 것을 발견하였습니다.

profile
𝒥𝓊𝓃𝒾ℴ𝓇 𝒟𝒶𝓉𝒶 𝒮𝒸𝒾ℯ𝓃𝓉𝒾𝓈𝓉

0개의 댓글

관련 채용 정보