본문 바로가기

vision

DINO : Emerging Properties in Self-Supervised Vision Transformers

https://arxiv.org/abs/2104.14294

 

Emerging Properties in Self-Supervised Vision Transformers

In this paper, we question if self-supervised learning provides new properties to Vision Transformer (ViT) that stand out compared to convolutional networks (convnets). Beyond the fact that adapting self-supervised methods to this architecture works partic

arxiv.org

CVPR 2021

self-supervised learning이 ViT에서도 적용될 수 있는지 알아보는 논문

이에 더해 두 가지 고찰

  • self-supervised ViT fearutre가 image의 semantic segmentation에 대한 정보를 가지고 있는지
  • 기존 supervised ViT 나 Conv는 어려움이 존재
  • 이 fearutre들이 K—NN classifier로 이용될 수 있는지 ( ImageNet에 대해 78.3%달성)

이러한 방법론을 사용해 만든 모델 ⇒ DINO (no label로 self-distillation 적용)

Introduction

self-supervised ViT가 supervised ViT나 CNN에서는 나타나지 않은 두 가지 특징

  • 명시적으로 장면의 레이아웃(scene layout)이나 object boundary를 포함하고 있음
  • ⇒ self-attention module의 마지막 block에서 이를 확인할 수 있음
  • finetuning을 하지 않고도 basic nearest neighbors classfier(K-NN)으로 잘 수행함

이러한 self-supervised approach를 통해 label 없이 knowedge distillation 가능하게됨

⇒ DINO framework

teacher network의 output predicting을 통한 self-supervised training 단순화

이 때 standard cross-entropy loss, momentum encoder 이용

Method

SSL with knowledge distillation

기본 Architecture

knowledge distillation : student network $g_{\theta_s}$를 teacher network $g_{\theta_t}$의 output에 맞춰 학습 시키는 것

  • input image x 가 주어짐P는 softmax function을 이용해 output network g를 정규화 시켜 획득여기서 $\tau_s$는 temperature parameter - knowledge distillation 논문읽어보면 무엇을 의미하는지 나옴
  • output distribution을 조절한다고 생각하면 됨. 비슷한 형태로 $P_t$ 도 temperature $\tau_t$에 의해 조절됨
  • $$ P_s(x)^{(t)} = {\exp(g_{\theta_s}(x)^{(i)}/\tau_s) \over \sum_{k=1}^K \exp (g_{\theta_s}(x)^{ (k)} / \tau_s)} $$
  • ⇒ 두 개의 Network가 output 으로 K 차원의 확률 분포 출력 : $P_s$. $P_t$
  • 얻은 확률 분포 간의 cross entropy loss 최소화하는 방향- parameter는 student network
  • $$ min_{\theta_s}H(P_t(x), P_s(x)) $$

위에서 나온 식을 이용해 어떻게 self-supervised learning을 하는가

  • multi crop 전략을 사용해 주어진 image에 대해 다양한 view 생성\이 set는 두 개의 global view($x_1^g, x_2^g$)와 낮은 해상도의 몇개의 local view 포함⇒ “loval-to-global” 증진..?(솔직히 무슨말인지 모르겠음)
    • GPT 설명
      • 로컬 뷰: 원본 이미지의 작은 부분을 나타내며, 이는 이미지의 특정 세부 사항이나 패치를 포함합니다.
      • 글로벌 뷰: 원본 이미지의 더 큰 부분 또는 전체를 나타내며, 이미지의 전반적인 컨텍스트와 구조를 포함합니다.
      학습 과정에서 다음과 같이 진행됩니다:
      1. 학생 네트워크는 이미지의 로컬 뷰와 글로벌 뷰 모두를 받아서 처리합니다. 이를 통해 이미지의 작은 부분에서 추출한 정보와 전체 이미지에서 추출한 정보 모두를 이해하려고 합니다.
      2. 교사 네트워크는 오직 글로벌 뷰만을 받아 처리합니다. 이는 교사 네트워크가 전체 이미지의 상위 수준의 표현을 학습하게 만듭니다.
      '로컬-투-글로벌' 대응을 장려하는 것은 학생 네트워크가 이미지의 부분적인 정보만으로도 전체적인 구조를 이해할 수 있게 만들어, 더 일반화된 특성을 학습하도록 하는 데 목적이 있습니다. 즉, 로컬 뷰를 통해 얻은 정보를 통합하여 글로벌 뷰에서의 정보와 매칭시키는 것을 학습함으로써, 네트워크는 전체 이미지를 더 잘 이해하고 예측할 수 있게 됩니다. 이러한 방식으로 학생 네트워크는 보다 효과적으로 전체적인 이미지 컨텍스트를 파악하는 법을 배우게 됩니다.
    • 이 문장은 자기지도 학습 프레임워크 내에서 사용되는 특정 학습 기법을 설명하고 있습니다. 여기서 언급된 '로컬-투-글로벌'(local-to-global) 대응은 학생 네트워크가 이미지의 작은 부분(로컬 뷰)으로부터 전체 이미지(글로벌 뷰)의 상위 수준 특성을 학습하도록 장려하는 메커니즘을 의미합니다.
    loss 식
  • $$ min_{\theta_s} \sum_{x \in {x_1^g, x_2^g}} \sum_{x'\in V, x'\neq x} H(P_t(x), P_s(x')) $$
  • 모든 view 가 student network를 통과하지만 teacher network는 global view만 통과
  • ⇒ 주어진 Image에 대해 생성된 set V

두 네트워크는 같은 architecture g를 사용하지만 Parameter set만 $\theta_s$와 $\theta_t$로 나뉨

그러나 stochastic gradient descent로는 $\theta_s$만 학습

Teacher network

기존 knowledge distillation 방식과 다르게 teacher network $g_{\theta_t}$가 초기에 주어지지 않음

⇒ student network의 과거 iteration에서 만들어짐

epoch 마다 teacher network를 고정 시키는 것이 효과가 좋았다고함

추가로 student 가중치를 그대로 teacher에게 가져가는 것은 수렴에 실패했다고 함

  • EMA(exponential moving average)$$ \theta_t \larr \lambda\theta_t + (1-\lambda)\theta_s $$
  • 위 수식이 update rule, $\lambda$는 cosine scheduliing에 의해 학습동안 0.996 에서 1로 증가하도록 설정
  • EMA를 이용하는 momentum encoder를 이용해 student weight를 이동 시킴

teacher network가 student network보다 나은 성능을 보이고 학생 Network의 학습을 지도함

⇒ global view만 사용하고 모델 크기 자체가 크기에 그렇다고 개인적인 생각

Network architecture

  • neural network g는 backbone f (ViT or ResNet)로 구성됨
  • projection head $h: g = h \circ f$$l_2$ normalization과 K dimension weight normalized
  • 3-layer MLP(multi-layer perceptron) 으로 구성
  • 다른 architecture들과 다르게 BN(batch normalization) 사용하지 않음
  • ⇒ BN-free라 함

Avoiding collapse

collapse란 주로 self-supervised learning에서 발생할 수 있는 것으로 model이 우리가 원하는 방향으로 feature를 뽑아내는 것이 아닌 다른 solution을 향해 나아가는 현상 local minimum하고 비슷한듯

따라서 collapse를 피하기 위해 self-supervised method에서 여러가지 방법을 적용하려함

이 논문의 저자들은 여러 normalization 방법으로 가능하지만

⇒ momentum teacher output의 centering 과 scharpening만으로 안정화가 가능하다고 함

Centering은 어떤 한 차원이 지배적으로 작동하는 것을 예방하지만 uniform distribution으로 collapse 가능

Sharpening은 Centering과 반대로 작동 ⇒ 이 둘을 같이 적용하여 균형을 이루고자 함

이를 통해 batch에 대한 의존도를 줄일 수 있음(….?)

  • centering operation은 first-order batch statics에만 의존 하고 teacher에 bias term c 추가 가능

이 centering이 EMA를 이용해서c를 update됨, B는 배치 크기임, m은 rate parameter

$$ c \larr mc + (1 - m){1\over B}\sum_{i=1}^B g_{\theta_t}(x_i) $$

sharpening은 teacher softmax normalization에서 temperature $\tau_t$를 낮게 설정하면 됨

Implementation및 결과 내용은 논문 참고 바람

self-supervised learning이 ViT에서도 적용될 수 있는지 알아보는 논문

이에 더해 두 가지 고찰

  • self-supervised ViT fearutre가 image의 semantic segmentation에 대한 정보를 가지고 있는지
  • 기존 supervised ViT 나 Conv는 어려움이 존재
  • 이 fearutre들이 K—NN classifier로 이용될 수 있는지 ( ImageNet에 대해 78.3%달성)

이러한 방법론을 사용해 만든 모델 ⇒ DINO (no label로 self-distillation 적용)

Introduction

self-supervised ViT가 supervised ViT나 CNN에서는 나타나지 않은 두 가지 특징

  • 명시적으로 장면의 레이아웃(scene layout)이나 object boundary를 포함하고 있음
  • ⇒ self-attention module의 마지막 block에서 이를 확인할 수 있음
  • finetuning을 하지 않고도 basic nearest neighbors classfier(K-NN)으로 잘 수행함

이러한 self-supervised approach를 통해 label 없이 knowedge distillation 가능하게됨

⇒ DINO framework

teacher network의 output predicting을 통한 self-supervised training 단순화

이 때 standard cross-entropy loss, momentum encoder 이용

Method

SSL with knowledge distillation

기본 Architecture

knowledge distillation : student network $g_{\theta_s}$를 teacher network $g_{\theta_t}$의 output에 맞춰 학습 시키는 것

  • input image x 가 주어짐P는 softmax function을 이용해 output network g를 정규화 시켜 획득여기서 $\tau_s$는 temperature parameter - knowledge distillation 논문읽어보면 무엇을 의미하는지 나옴
  • output distribution을 조절한다고 생각하면 됨. 비슷한 형태로 $P_t$ 도 temperature $\tau_t$에 의해 조절됨
  • $$ P_s(x)^{(t)} = {\exp(g_{\theta_s}(x)^{(i)}/\tau_s) \over \sum_{k=1}^K \exp (g_{\theta_s}(x)^{ (k)} / \tau_s)} $$
  • ⇒ 두 개의 Network가 output 으로 K 차원의 확률 분포 출력 : $P_s$. $P_t$
  • 얻은 확률 분포 간의 cross entropy loss 최소화하는 방향- parameter는 student network
  • $$ min_{\theta_s}H(P_t(x), P_s(x)) $$

위에서 나온 식을 이용해 어떻게 self-supervised learning을 하는가

  • multi crop 전략을 사용해 주어진 image에 대해 다양한 view 생성\이 set는 두 개의 global view($x_1^g, x_2^g$)와 낮은 해상도의 몇개의 local view 포함⇒ “loval-to-global” 증진..?(솔직히 무슨말인지 모르겠음)
    • GPT 설명
      • 로컬 뷰: 원본 이미지의 작은 부분을 나타내며, 이는 이미지의 특정 세부 사항이나 패치를 포함합니다.
      • 글로벌 뷰: 원본 이미지의 더 큰 부분 또는 전체를 나타내며, 이미지의 전반적인 컨텍스트와 구조를 포함합니다.
      학습 과정에서 다음과 같이 진행됩니다:
      1. 학생 네트워크는 이미지의 로컬 뷰와 글로벌 뷰 모두를 받아서 처리합니다. 이를 통해 이미지의 작은 부분에서 추출한 정보와 전체 이미지에서 추출한 정보 모두를 이해하려고 합니다.
      2. 교사 네트워크는 오직 글로벌 뷰만을 받아 처리합니다. 이는 교사 네트워크가 전체 이미지의 상위 수준의 표현을 학습하게 만듭니다.
      '로컬-투-글로벌' 대응을 장려하는 것은 학생 네트워크가 이미지의 부분적인 정보만으로도 전체적인 구조를 이해할 수 있게 만들어, 더 일반화된 특성을 학습하도록 하는 데 목적이 있습니다. 즉, 로컬 뷰를 통해 얻은 정보를 통합하여 글로벌 뷰에서의 정보와 매칭시키는 것을 학습함으로써, 네트워크는 전체 이미지를 더 잘 이해하고 예측할 수 있게 됩니다. 이러한 방식으로 학생 네트워크는 보다 효과적으로 전체적인 이미지 컨텍스트를 파악하는 법을 배우게 됩니다.
    • 이 문장은 자기지도 학습 프레임워크 내에서 사용되는 특정 학습 기법을 설명하고 있습니다. 여기서 언급된 '로컬-투-글로벌'(local-to-global) 대응은 학생 네트워크가 이미지의 작은 부분(로컬 뷰)으로부터 전체 이미지(글로벌 뷰)의 상위 수준 특성을 학습하도록 장려하는 메커니즘을 의미합니다.
    loss 식
  • $$ min_{\theta_s} \sum_{x \in {x_1^g, x_2^g}} \sum_{x'\in V, x'\neq x} H(P_t(x), P_s(x')) $$
  • 모든 view 가 student network를 통과하지만 teacher network는 global view만 통과
  • ⇒ 주어진 Image에 대해 생성된 set V

두 네트워크는 같은 architecture g를 사용하지만 Parameter set만 $\theta_s$와 $\theta_t$로 나뉨

그러나 stochastic gradient descent로는 $\theta_s$만 학습

Teacher network

기존 knowledge distillation 방식과 다르게 teacher network $g_{\theta_t}$가 초기에 주어지지 않음

⇒ student network의 과거 iteration에서 만들어짐

epoch 마다 teacher network를 고정 시키는 것이 효과가 좋았다고함

추가로 student 가중치를 그대로 teacher에게 가져가는 것은 수렴에 실패했다고 함

  • EMA(exponential moving average)$$ \theta_t \larr \lambda\theta_t + (1-\lambda)\theta_s $$
  • 위 수식이 update rule, $\lambda$는 cosine scheduliing에 의해 학습동안 0.996 에서 1로 증가하도록 설정
  • EMA를 이용하는 momentum encoder를 이용해 student weight를 이동 시킴

teacher network가 student network보다 나은 성능을 보이고 학생 Network의 학습을 지도함

⇒ global view만 사용하고 모델 크기 자체가 크기에 그렇다고 개인적인 생각

Network architecture

  • neural network g는 backbone f (ViT or ResNet)로 구성됨
  • projection head $h: g = h \circ f$$l_2$ normalization과 K dimension weight normalized
  • 3-layer MLP(multi-layer perceptron) 으로 구성
  • 다른 architecture들과 다르게 BN(batch normalization) 사용하지 않음
  • ⇒ BN-free라 함

Avoiding collapse

collapse란 주로 self-supervised learning에서 발생할 수 있는 것으로 model이 우리가 원하는 방향으로 feature를 뽑아내는 것이 아닌 다른 solution을 향해 나아가는 현상 local minimum하고 비슷한듯

따라서 collapse를 피하기 위해 self-supervised method에서 여러가지 방법을 적용하려함

이 논문의 저자들은 여러 normalization 방법으로 가능하지만

⇒ momentum teacher output의 centering 과 scharpening만으로 안정화가 가능하다고 함

Centering은 어떤 한 차원이 지배적으로 작동하는 것을 예방하지만 uniform distribution으로 collapse 가능

Sharpening은 Centering과 반대로 작동 ⇒ 이 둘을 같이 적용하여 균형을 이루고자 함

이를 통해 batch에 대한 의존도를 줄일 수 있음(….?)

  • centering operation은 first-order batch statics에만 의존 하고 teacher에 bias term c 추가 가능

이 centering이 EMA를 이용해서c를 update됨, B는 배치 크기임, m은 rate parameter

$$ c \larr mc + (1 - m){1\over B}\sum_{i=1}^B g_{\theta_t}(x_i) $$

sharpening은 teacher softmax normalization에서 temperature $\tau_t$를 낮게 설정하면 됨

Implementation및 결과 내용은 논문 참고 바람