ViT: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale(ICLR 2021)

민서·2024년 3월 4일
0

paper review

목록 보기
6/9

Abstract

  • 배경: Transformer 구조는 자연어 처리(NLP) 분야에서 뛰어난 성능으로 표준이 되었지만, 컴퓨터 비전 분야에서는 그 적용이 제한적이었다. 컴퓨터 비전에서 Attention 기법은 주로 CNN(Convolutional Neural Networks)과 결합하거나, CNN 구성 요소를 대체하는 형태로 간접적으로만 활용되었었다.

  • 혁신: 구글 연구팀은 이러한 상황을 변화시키기 위해, 이미지를 작은 패치들로 나누고 이를 시퀀스로 처리하는 방식을 통해, CNN 없이도 Transformer 모델을 직접적으로 이미지 분류 작업에 적용하였다. 이 접근 방식은 이미지를 일련의 패치로 변환하여 Transformer에 입력으로 제공함으로써, 이미지 내의 글로벌한 컨텍스트를 효과적으로 학습할 수 있게 한다.

  • 성능: 연구팀은 ImageNet, JFT와 같은 대규모 데이터셋으로 모델을 사전 학습한 뒤, 중간 크기 또는 소규모의 이미지 데이터셋에 대한 전이 학습을 통해 기존의 ResNet 기반 SOTA 모델보다 더 우수한 성능과 적은 계산량을 달성하였다.

Background

Inductive Bias

머신러닝 모델 설계의 근본적인 목적은 관측 가능한 데이터를 통해 미지의 데이터의 특성이나 분포를 예측하는 것이다. 이 과정에서 모델은 제한된 데이터로부터 일반화된 패턴을 학습하여, 보지 못한 데이터에 대해 추론할 수 있어야 한다. 이러한 일반화 능력의 핵심 요소 중 하나가 바로 'inductive bias'이다.

Layer Norm



Layer Normalization (Layer Norm)은 딥러닝 모델에서 사용되는 일종의 정규화 기법으로, 특히 순환 신경망(RNN)과 Transformer 모델에서 사용된다. Layer Normalization의 주요 목적은 학습 과정을 안정화하고 가속화하는 것이다.

Layer Normalization의 작동 원리

Layer Normalization은 각 입력 샘플 내에서 특성 차원에 대해 정규화를 수행한다. 즉, 모든 특성(또는 숨겨진 유닛)에 대해 평균과 분산을 계산하고, 이를 사용하여 정규화한다. 이 과정은 배치 내의 다른 샘플들과 독립적으로 이루어지며, 이는 Batch Normalization과의 주요 차이점 중 하나이다.

수학적 표현

Layer Normalization에서는 각 샘플 xix_i의 각 특성 xijx_{ij}에 대해 다음과 같이 정규화를 수행한다:

x^ij=xijμiσi2+ϵ\hat{x}_{ij} = \frac{x_{ij} - \mu_i}{\sqrt{\sigma_i^2 + \epsilon}}

여기서,

  • x^ij\hat{x}_{ij}는 정규화된 출력
  • xijx_{ij}는 원본 입력값
  • μi\mu_i는 샘플 ii의 모든 특성에 대한 평균
  • σi2\sigma_i^2는 샘플 ii의 모든 특성에 대한 분산
  • ϵ\epsilon은 0으로 나누는 것을 방지하기 위한 작은 상수(예: 1e-5)

Layer Norm의 장점

  1. 배치 크기에 무관: Layer Norm은 배치 크기에 의존하지 않기 때문에, 작은 배치 크기에서도 잘 작동한다. 이는 특히 메모리 리소스가 제한적인 경우나 RNN과 같이 배치 정규화를 적용하기 어려운 구조에서 유용하다.

  2. 학습 안정화 및 가속화: Layer Normalization은 학습 과정을 안정화시키고, 모델이 더 빠르게 수렴하도록 돕는다.

  3. 내부 Covariate Shift(공변량 변화) 감소: 모델 학습 중 입력 데이터의 분포가 변하는 내부 공변량 변화를 줄여준다. 이는 특히 깊은 신경망에서 중요한 효과적이다.

사용 분야

Layer Normalization은 Transformer 아키텍처에서 특히 중요한 역할을 한다. Transformer 모델의 각 서브 레이어 후에 Layer Norm을 적용하여, 모델의 학습을 안정화하고 향상시키는 데 도움을 준다.

Introduction

배경

  • NLP 분야에서의 Transformer 모델의 큰 성공에 힘입어, 비전 태스크에도 Self-attention 구조 적용 시도했다.
  • 초기 시도에서는 기존 Convolutional Neural Network (CNN) 구조에 비해 성능이 낮았다.

ViT 모델 제안

  • 이미지를 여러 패치로 나누고, 각 패치를 선형 변환(linear projection)하여 Transformer의 토큰처럼 사용하는 방식을 사용한다.

성능 비교

  • 중간 크기 데이터셋(예: ImageNet)에서는 ResNet과 비교했을 때 낮은 성능을 보인다.
  • 저자들은 Transformer가 CNN에 비해 낮은 inductive bias를 가지기 때문에, 적은 데이터로는 일반화 성능이 떨어짐을 지적했다.

대규모 데이터셋에서의 성공

  • 대규모 데이터셋(예: ImageNet-21k, JFT-300M)에서 학습 시, ViT가 CNN 성능을 초과한다.
  • 이는 ViT가 대규모 데이터에서 더 복잡한 패턴을 학습할 수 있는 잠재력을 가지고 있음을 보여준다.

Methodology


  • MSA블럭과 MLP 블럭으로 구성되어있다.
  • MLP블럭은 2개의 레이어를 가지며, GELU activation function을 사용한다.
  • 각 블럭의 앞에는 LN을 적용하고, 각 블럭의 뒤에는 residual connection을 사용한다.
  • 저자들은 NLP Transformer 구조의 확장성과 효율성을 강조하기 위해, 거의 수정하지 않았다고 한다.

단계별 작동 방식

Step 1: 이미지 분할

  • 이미지 입력: 주어진 이미지는 xRH×W×Cx \in \mathbb{R}^{H \times W \times C}로 표현된다. 여기서 HH, WW는 이미지의 높이와 너비, CC는 채널의 수이다.
  • 패치 분할: 이미지를 (P×P)(P \times P) 크기의 패치 N(=H×WP2)N (= \frac{H \times W}{P^2})개로 분할하여 시퀀스 xpRN×(P2×C)x_p \in \mathbb{R}^{N \times (P^2 \times C)}를 생성한다.

Step 2: 패치 임베딩

  • 임베딩 변환: 각 패치를 flatten한 후, trainable linear projection을 사용해 D차원의 벡터로 변환한다. 이 벡터들은 패치 임베딩으로 사용된다.

Step 3: 클래스 및 위치 임베딩 추가

  • 클래스 임베딩: Learnable class 임베딩을 추가하여, 이미지 분류 작업에 사용된다.

  • 위치 임베딩: 각 패치 및 클래스 임베딩에 learnable position 임베딩을 더하여, 패치의 순서 정보를 제공한다.

Step 4: Transformer Encoder 처리

  • Transformer 입력: 클래스 임베딩과 패치 임베딩이 Transformer encoder의 입력으로 사용된다.
  • 이미지 표현 추출: Encoder를 LL번 거친 후, class 임베딩과 관련된 출력 부분이 이미지 표현(image representation)으로 사용된다.

Step 5: 이미지 분류

  • MLP 처리: 추출된 이미지 표현을 Multilayer Perceptron (MLP)의 입력으로 사용하여, 최종적으로 이미지의 클래스를 분류한다.

이러한 단계를 통해 ViT는 이미지 내의 복잡한 패턴과 정보를 학습하고, 이를 바탕으로 이미지 분류 작업을 수행한다. ViT는 Transformer의 self-attention 메커니즘을 활용하여 이미지의 전반적인 컨텍스트와 각 패치 간의 관계를 효과적으로 모델링한다.

Positional Embedding

  • 각각의 패치 임베딩에 위치 임베딩을 더하여 위치 정보를 활용할 수 있도록 함
  • 학습 가능한 1차원의 임베딩을 사용
  • 2차원 정보를 유지하는 위치 임베딩도 활용해 보았으나, 유의미한 성능 향상은 없었기 때문
  • Providing no positional information: Considering the inputs as a bag of patches.
  • 1-dimensional positional embedding: Considering the inputs as a sequence of patches in
    the raster order.
  • 2-dimensional positional embedding: Considering the inputs as a grid of patches in two dimensions.
  • Relative positional embeddings: Considering the relative distance between patches to encode the spatial information as instead of their absolute position.

Inductive Bias

  • ViT는 CNN보다 이미지 특화 inductive bias가 적다. CNN은 locality, two-dimensional neighborhood structure, translation equivariance을 모델 전체에 걸쳐 내장하고 있다. 반면 ViT에서는 MLP만이 locality와 translation equivariance한 특징을 가지고 있으며, self-attention layer는 전역적인 정보를 처리하기 때문에 inductive bias가 낮다.

  • 아래 방법을 통해 ViT는 CNN에 비해 상대적으로 낮은 inductive bias를 가지고 있음에도 불구하고, 학습을 통해 이미지의 전역적 및 지역적 특성을 효과적으로 이해하고 처리할 수 있게 된다.

  • Patch Extraction (패치 추출): ViT는 이미지를 여러 작은 패치로 분할하여 처리한다. 이미지의 2차원 구조를 일정 부분 활용하는 것으로, 각 패치는 이미지의 한 부분을 대표한다. 이러한 방식으로 이미지를 처리함으로써, 모델은 이미지의 전체 구조보다는 개별 패치를 기반으로 정보를 학습하게 된다. CNN에서의 필터가 지역적인 특징을 추출하는 것과 비슷한 역할을 하지만, 패치 간의 공간적 관계나 구조는 모델이 데이터로부터 직접 학습해야 한다.

  • Resolution Adjustment (해상도 조정): ViT는 다양한 해상도의 이미지에 대해 모델을 미세 조정할 때 positional embedding을 조절한다. 이는 모델이 다른 해상도의 이미지를 처리할 때, 패치 간의 공간적 관계가 변할 수 있음을 인식하고 이에 적응할 수 있도록 한다. 예를 들어, 더 높은 해상도의 이미지에서는 같은 객체가 더 많은 패치에 걸쳐 나타날 수 있으며, 이에 따라 위치 임베딩을 조정하여 모델이 이러한 변화를 반영할 수 있게 한다.

Hybrid Architecture

  • CNN 기반 Feature Map 활용: Vision Transformer(ViT)는 이미지를 직접적인 패치로 분할하여 처리하는 대신, CNN을 통해 추출된 feature map을 입력 시퀀스로 활용할 수 있습니다. 이 접근 방식은 CNN의 강점인 이미지의 지역적 특성 추출과 Transformer의 장점인 전역적 컨텍스트 이해를 결합합니다.

  • Patch Embedding Projection: 하이브리드 모델에서는 CNN에서 추출된 feature map으로부터 얻어진 패치에 대해 Patch Embedding Projection을 적용한다. 이는 feature map의 각 요소를 Transformer가 처리할 수 있는 형태로 변환하는 과정이다.

  • 1x1 패치의 특수 케이스: 특별한 경우로, 패치가 1x1 크기일 수 있습니다. 이는 feature map을 단순히 차원에 따라 평탄화(flatten)한 후, Transformer의 입력 차원으로 프로젝션하는 경우를 의미한다. 이 방식은 feature map의 각 요소를 독립적인 패치로 간주하고, Transformer 내에서 이들 사이의 관계를 모델링할 수 있게 한다.

하이브리드 아키텍처는 CNN과 Transformer의 장점을 결합하여, 이미지 처리 작업에서 정확한 예측을 가능하게 하는 접근 방식을 제공한다.

Fine-Tuning And Higher Resolution

  • Pre-training과 Fine-tuning: ViT 모델은 큰 데이터셋으로 pre-train을 진행한 후, 특정 하위 작업(downstream task)에 대해 fine-tune하여 사용한다. 이 과정은 모델이 일반적인 이미지 특성을 학습하게 하고, 특정 작업에 최적화되도록 조정한다.

  • Prediction Head 교체: Fine-tuning을 위해서는 사전 학습된 prediction head를 제거하고, D×KD \times K 크기의 zero-initialized feedforward layer로 대체한다. 이는 모델이 새로운 작업에 맞게 출력을 조정할 수 있게 한다.

  • 고해상도 이미지 처리: Fine-tuning 단계에서는 원본보다 높은 해상도의 이미지를 처리할 수 있다. 패치 크기는 동일하게 유지되지만, 이미지 해상도가 높아짐에 따라 시퀀스 길이가 길어진다.

  • 가변적 패치 길이 처리: ViT는 가변적인 길이의 패치를 처리할 수 있으나, 사전 학습된 position embeddings는 새로운 해상도에서 의미를 잃게 된다. 사전 학습된 위치 position embedding을 2차원 2D interpolation을 통해 원본 이미지의 위치에 맞게 조정한다.

이러한 접근 방식을 통해 ViT는 더 높은 해상도의 이미지에서도 효과적으로 작동하며, 다양한 이미지 처리 작업에 유연하게 적용될 수 있다. Fine-tuning을 통해 모델은 특정 작업에 필요한 세부적인 정보를 더 잘 파악하고, 전반적인 성능을 개선할 수 있다.

Experiments

Dataset

pre-train Dataset

  • ImageNet-1k: 1,000개의 클래스, 1.3백만 개의 이미지
  • ImageNet-21k: 21,000개의 클래스, 1,400만 개의 이미지
  • JFT: 18,000개의 클래스, 3억 3천만 개의 이미지 (고해상도)

benchmark task

아래의 benchmark tasks를 downstream task로 하여 pre-trained ViT의 representation 성능을 검증했다.

  • ReaL 라벨
  • CIFAR-10/100
  • Oxford-IIIT 애완 동물
  • Oxford Flowers-102
  • 19-task VTAB 분류 스위트

Model variants

  • ViT는 다양한 패치 크기로 3개의 볼륨에서 실험을 진행
  • variants에는 Base, Large, Huge가 포함
  • baseline CNNs로는, ResNet (2016)Batch Normalization layers를 Group Normalization로 변경하고 standardized convolutions을 사용한 Big Transformer구조의 ResNet(BiT)를 사용했다.

Result


14X14 패치 크기를 사용한 ViT-Huge와 16X16 패치 크기를 사용한 ViT-Large의 성능을 baseline과 비교했다.
JFT 데이터셋에서 pre-training한 ViT-L/16모델이 모든 downstream task에 대해 BiT-L보다 높은 성능을 도출했다.이는 JFT 데이터셋이 ViT 모델의 성능 향상에 중요한 역할을 한다는 것을 나타낸다.
ViT-L/14모델이 ViT-L/16모델보다 향상된 성능을 도출하였으며 BiT-L 모델보다 학습 시간이 훨씬 짧다.

  • JFT-300M에서 사전 훈련된 작은 ViT-L/16 모델이 동일한 데이터셋에서 사전 훈련된 BiT-L 모델보다 모든 작업에서 우수한 성능을 보였다.
  • ViT-H/14는 특히 어려운 데이터셋인 ImageNet, CIFAR-100 및 VTAB suite에서 성능을 더욱 향상시켰다.
  • ViT-H/14는 이전의 최신 기술보다 훨씬 적은 계산 자원을 사용하여 사전 훈련되었다.
  • ViT-L/16은 대부분의 데이터셋에서 잘 수행되었으며, 사전 훈련에 적은 자원이 필요했다.


19-task VTAB classification suite를 아래와 같이 3개 그룹으로 나누어 추가실험을 진행했다.

  • Natural: tasks like Pets, CIFAR, etc
  • Specialized: medical and satellite imagery
  • Structured: tasks that require geometric understanding like localization

VTAB 데이터셋에서도 ViT-H/14 모델이 가장 좋은 성능을 보였다.


pre-training dataset의 크기에 따른 fine-tuning 성능을 확인했다.
각 데이터셋에 대해 pre-traunung한 ViT를 ImageNet에 transfer learning한 정확도를 확인한 결과 데이터가 클수록 ViT가 BiT보다 성능이 좋고 크기가 큰 ViT모델이 효과가 있다.
JFT를 각각 다른 크기로 랜덤 샘플링한 데이터셋을 활용한 실험결과, 작은 데이터셋에서 CNN의 inductive bias가 효과가 있으나 큰 데이터셋 에서는 데이터로부터 패턴을 학습하는 것만으로 충분함을 알수 있다.

profile
CS&ICE, Senior in The Catholic University of Korea. welcome to my page:D http://about.minseo.me/

0개의 댓글