ABSTRACT
Transformer는 NLP 분야에서 표준이 되었지만, 컴퓨터 비전 분야에서는 그 적용이 제한적이다. 비전분야에서 attention은 convolutional network와 함께 사용된다. 본 논문에서는 CNN을 사용하지 않고 이미지 시퀀스 패치에 Transformer만을 적용해 image classification에서 잘 동작하는 것을 보여준다.
1 INTRODUCTION
Transformer는 NLP분야에서 표준이 되었고, 계산 효율성과 확장성 덕분에 100B개가 넘는 파라미터로 대규모의 모델의 훈련할 수 있게 되었다. 모델과 데이터 셋이 계속 증가해도 성능은 여전히 포화 상태에 도달하지 못한다.
그러나 CV에서는 Convolutional architecture가 여전히 지배적이다. 본 논문에서는 가능한 최소한 수정만으로 Transformer를 이미지에 직접 적용하는 실험을 진행했다. 이미지를 패치로 분할하고 이러한 패치의 선형 임베딩 시퀀스를 Transformer의 입력으로 제공해 supervised learning으로 image classification 모델을 훈련했다. 이미지 패치는 NLP의 토큰과 같은 방식으로 취급된다.
제안하는 모델 Vision Transformer(ViT)는 ImageNet과 같은 중간 크기의 데이터 셋에 대해 학습하면 성능이 낮지만, 충분한 규모로 사전 학습한 후 데이터 수가 적은 작업에 적용할 때 우수한 결과를 얻을 수 있다.
2 RELATED WORK
이미지에 self-attention을 순수하게 적용하려면 각 픽셀이 다른 모든 픽셀에 attention을 해야한다. 높은 계산 비용으로 인해 현실적인 입력 크기에 적용할 수 없어, Transformer를 적용하기 위한 몇 가지 방법이 시도되었다. 각 쿼리 픽셀과 인접한 픽셀에만 attention을 적용하거나, 몇몇 중요한 관계만을 선택적으로 계산한다. 또는 이미지를 여러 개의 작은 블록으로 나누고 각 블록에 대한 attention을 계산하거나, 이미지를 세로 또는 가로 단위로 나누어 attention을 처리하는 방식이 있다.
본 논문에서 제안하는 모델과 가장 유사한 모델은 입력 이미지에서 2$\times$2 크기의 패치를 추출하고 그 위에 self-attention을 적용한다. 이 모델은 ViT와 유사하지만, 본 논문에서는 대규모 사전 학습을 통해 vanilla Transformer가 CNN의 성능과 동등하거나 더 나은 경쟁력을 갖출 수 있다는 것을 입증하였고, 저해상도 이미지뿐만 아니라 중간 해상도의 이미지도 처리할 수 있다.
본 논문의 연구는 표준 ImageNet 데이터 셋보다 더 큰 규모의 이미지 인식을 탐구한다. ImageNet-21k와 JFT-300M과 같은 대규모 데이터 셋에 초점을 맞추어 Transformer를 훈련한다.
3 METHOD
Transformer를 즉시 가져다 쓸 수 있도록 가능한 기존의 구조를 따르며 모델을 설계했다. 모델의 전체적인 개요는 그림 1과 같다.

3.1 VISION TRANSFORMER (VIT)
먼저 토큰 임베딩의 시퀀스로 이뤄진 Transformer의 입력처럼 이미지 $x \in \mathbb{R}^{H \times W \times C}$를 패치들 $ x_p \in \mathbb{R}^{N \times (P^2 \cdot C)}$로 변환한다. 여기서 $H$,$W$,$C$는 각각 이미지의 height, width, channel를 의미한다. 그리고 $P$는 한 패치의 크기이며, 그러므로 $N= \frac{H}{P} \times \frac{W}{P}=HW/P^2$이다. 변환된 패치들은 각각 학습가능한 linear projection을 통해 $D$차원의 임베딩 벡터로 변환되며, 이 결과를 patch embeddings $x_pE \in \mathbb{R}^{N \times D}$로 사용한다.
그리고 BERT의 [class] 토큰처럼, patch embeddings 앞에 학습 가능한 임베딩을 클래스 임베딩 $x_{class} \in \mathbb{R}^{1 \times D} $으로 추가한다. 또한 위치 정보를 유지하기 위해 position embeddings $E_{post} \in \mathbb{R}^{(N+1) \times D}$ 이 입력 시퀀스에 추가된다. position embedding은 표준적인 학습 가능한 1D position embeddings를 사용했다.
이렇게 생성된 임베딩 시퀀스를 Transformer encoder에 입력해 image representation $y$를 생성한다.
또한 pre-training 과정에서는 encoder의 마지막 반복에서 하나의 hidden layer로 구성된 MLP를, fine-tuning과정에서는 encoder의 마지막 부분에 하나의 linear layer를 classification head로 사용해 이미지의 클래스를 예측한다.
위 과정은 다음의 식과 같다.
$$z_0 = \left[ \mathbf{x}_{\text{class}}; \mathbf{x}_{p}^{1}E; \mathbf{x}_{p}^{2}E; \cdots ; \mathbf{x}_{p}^{N}E \right] + E_{\text{pos}}, \quad E \in \mathbb{R}^{(P^2 \cdot C) \times D}, \quad E_{\text{pos}} \in \mathbb{R}^{(N+1) \times D} \tag{1}$$
$$z'_{\ell} = \text{MSA}(\text{LN}(z_{\ell-1})) + z_{\ell-1}, \quad \ell = 1 \dots L \tag{2}$$
$$z_{\ell} = \text{MLP}(\text{LN}(z'_{\ell})) + z'_{\ell}, \quad \ell = 1 \dots L \tag{3}$$
$$y = \text{LN}(z_L^0) \tag{4}$$
Inductive bias. 전통적인 CNN(합성곱 신경망)은 이미지 데이터를 처리할 때 지역적 패턴(예: 작은 패턴이나 물체의 특징)을 인식할 수 있는 inductive bias를 가지고 있다. 반면, Vision Transformer는 CNN처럼 명시적인 지역적 inductive bias를 가지고 있지 않다. ViT에서는 MLP 레이어만이 지역적이고 입력 이미지가 공간적으로 이동(translation)할 때, 모델의 출력도 그에 맞게 이동하는 특성인 번역 불변성(translation equivariance)을 가지며, 자기 주의(self-attention) 레이어는 전역적(global)이다. 이차원의 지역적 구조는 이미지를 패치로 자를때와 해상도가 다른 이미지의 위치 임베딩을 조정하는 fine-tuning에서만 사용된다. 그 외의 초기화 시의 위치 임베딩은 패치들의 2D 위치에 대한 정보를 전혀 담고 있지 않아, 패치 간의 모든 공간적 관계는 처음부터 끝까지 학습을 통해 얻어야 한다.
Hybrid Architecture. raw image patch 대신에 CNN의 feature map으로 입력 시퀀스를 생성할 수 있다. 특별한 경우, 패치가 $1 \times 1$의 크기를 가질 수 있는데, 이는 단순히 feature map을 평탄화하고 Transformer의 입력 차원에 맞게 변환하는 것이다. ViT의 classification input embedding과 position embeddings는 이와 같은 과정으로 생성된다.
3.2 FINE-TUNING AND HIGHER RESOLUTION
일반적으로 대규모 데이터셋으로 사전학습하고 다운스트림 작업에 맞게 fine-tuning 한다. fine-tuning을 진행할 때는 prediction head를 제거하고 차원을 클래스 수인 $K$로 변환하는 feedforward layer를 추가한다. 사전 훈련보다 더 높은 해상도로 fine-tuning하는 것이 유리한 경우가 많다. ViT는 더 높은 해상도의 이미지에 대해 동일한 패치 크기를 사용하지 않고, 원본 이미지에서의 위치에 따라 사전 학습된 위치 임베딩의 2D interpolation을 수행하여 학습된 위치 임베딩 정보의 손실을 막는다. 이 해상도 조정과 패치 추출이 이미지의 이차원의 지역적 구조에 관한 inductive bias가 수동적으로 ViT에 주입되는 유일한 지점이다.
4 EXPERIMENTS
- ResNet, ViT, ResNet과 ViT의 융합의 표현 학습 능력에 대해 평가
- 각 모델의 데이터 요구 사항 파악을 위해 다양한 크기의 데이터셋에 대해 사전 학습 및 벤치 마크 평가
- 소규모의 self-supervised learning 실험으로 ViT의 가능성 확인
4.1 SETUP
Datasets.
- ILSVRC-2012 ImageNet: 1K classes and 1.3M images
- ImageNet-21k: 21k classes and 14M images
- JFT: 18k classes and 303M high-resolution images
Model Variants.
We base ViT configurations on those used for BERT. In what follows we use brief notation to indicate the model size and the input patch size: for instance, ViT-L/16 means the “Large” variant with 16×16 input patch size.

CNN을 위해서 Group Normalization과 standardized convolution을 사용한 ResNet을 사용한다. 이 수정된 ResNet은 BiT로 표기한다. 하이브리드의 경우 ResNet의 중간의 feature map을 ViT에 입력으로 사용하고, 패치는 feature map의 한 픽셀로 정의된다.
Training & Fine-tuning.
*Training
- optimization: Adam $\beta_{1} = 0.9, \beta_{2} = 0.999$
- batch size: 4096
- weight decay: 0.1, use a linear learning rate warmup and decay
*Fine-tuning
- optimization: SGD with momentum
- batch size: 512
- with higher resolution: 512 or 518
- weight decay: Polyak & Juditsky averaging with a factor of 0.9999
4.2 COMPARISON TO STATE OF THE ART
CNN based model인 BiT-L과 ImageNet에 대해 semi-supervised learning으로 학습한 EfiicientNet 기반의 Noisy Student보다 모든 데이터셋에 대해서 ViT 모델이 더 좋은 성능을 보인다. 또한 TPU v3-core-days를 확인해보면 사전 훈련에 훨씬 적은 computational resources를 필요로 한다.

4.3 PRE-TRAINING DATA REQUIREMENTS
첫째, 우리는 점점 더 큰 크기의 데이터 세트인 ImageNet, ImageNet-21k, JFT300M에서 ViT 모델을 사전 학습한다. 가장 작은 데이터 세트인 ImageNet에서 사전 학습했을 때, ViT-Large 모델은 (적당한) 정규화에도 불구하고 ViT-Base 모델보다 성능이 낮다. JFT-300M에서만 더 큰 모델의 모든 이점을 볼 수 있다.

둘째, 전체 JFT300M 데이터 세트뿐만 아니라 9M, 30M, 90M의 무작위 하위 집합으로 모델을 훈련한다. 더 작은 하위 집합에서는 추가적인 정규화를 수행하지 않고 모든 설정에 동일한 하이퍼파라미터를 사용한다. 이렇게 하면 정규화의 효과가 아닌 내재적 모델 속성을 평가할 수 있다. Vision Transformers는 작은 데이터 세트에서 비슷한 계산 비용으로 ResNets보다 더 과적합 된다. 이러한 결과는 작은 데이터셋에서는 지역적인 특성을 학습하는 것(convolutional inductive bias)이 더 유리하지만, 큰 데이터셋의 경우에는 모델이 데이터 자체에서 더 넓고 복잡한 패턴을 직접 학습하는 것이 유리하다는 것을 보여준다.

4.4 SCALING STUDY
본 논문에서는 JFT-300M의 transfer performance을 평가하여 다양한 모델에 대한 통제된 스케일링 연구를 수행한다.
첫째, Vision Transformers는 performance/compute trade-off 에서 ResNets를 훨씬 뛰어넘는다. ViT는 동일한 성능을 얻기 위해 약 2~4배 적은 컴퓨팅을 사용한다.
두 번째로, hybrids는 작은 computational budgets에서는 ViT보다 약간 더 나은 성능을 보이지만, 더 큰 모델에서는 차이가 사라진다. 어떤 크기를 가지든 ViT를 도울 수 있는 convolutional local feature processing(CNN)을 기대할 수 있다.
셋째, Vision Transformers는 시도한 범위 내에서 포화 상태에 이르지 않는 것으로 보이며, 이는 향후 더 학습하여 성능을 높일 수 있다는 동기부여를 준다.

4.5 INSPECTING VISION TRANSFORMER
그림 7 (왼쪽) 첫번째 레이어는 패치를 저차원 공간으로 선형 변환하게 된다. 학습된 임베딩 필터의 상위 주요 구성 요소를 살펴보면, 구성 요소는 각 패치의 미세한 구조를 저차원으로 표현하기 위한 기초 함수와 비슷한 형태를 가진다. 즉, 임베딩 필터는 각 패치에서 중요한 패턴이나 구조를 잘 표현할 수 있는 함수들로 구성되어 있음을 알 수 있다.
그림 7 (가운데) 모델이 이미지 내 거리를 위치 임베딩을 통해 학습하는 것을 보여준다. 가까운 패치는 유사한 위치 임베딩을 갖는 경향이 있으며, 같은 행/열에 위치한 패치는 비슷한 임베딩을 갖는다. 패치가 많아질수록, 사인 곡선과 같은 패턴도 보인다. 이는 위치 임베딩이 주기적인 구조를 가질 수 있음을 의미한다. 결국 위치 임베딩이 2D 이미지의 위상(topology)을 잘 학습한다는 것이다. 즉, 이미지 내의 공간적인 관계를 모델이 잘 이해한다는 뜻이다. 이런 이유로 수작업으로 만든 2D-aware 임베딩(수동으로 위치 정보를 인코딩하는 방식)이 성능 향상을 이끌지 못한다. 모델이 스스로 2D 구조를 잘 학습할 수 있기 때문이다.
그림 7 (오른쪽) Self-attention을 통해 ViT는 가장 낮은 레이어에서도 전체 이미지에 걸쳐 정보를 통합할 수 있다. 정보가 얼마나 멀리까지 통합되는지를 나타내는 Attention distance를 계산하여 평가한다. ViT는 여러 개의 attention heads를 사용한다. 각 head는 서로 다른 방식으로 이미지를 처리하고, 일부는 이미 최초의 레이어에서부터 이미지의 대부분을 보게 된다. 이런 attention head는 이미지 전체 정보를 빠르게 통합한다. 반면, 일부 attention heads는 초기 레이어에서도 주로 작은 범위만을 다룬다. 이 모델의 초기 레이어에서 국소적(local)인 정보만 처리하는 부분이다. 하이브리드 모델에서는 ResNet을 먼저 사용한 후 Transformer를 적용하는데, 이 모델에서는 국소적인 attention이 덜 두드러진다. 이는 ResNet의 초기 합성곱 계층(CNN)이 이미 국소적인 정보 처리 역할을 하므로, Transformer의 초기에 그런 정보들이 필요하지 않다는 의미이다. 네트워크가 깊어질수록 attention distance가 증가한다. 즉, 모델이 깊어질수록 더 넓은 영역의 정보를 처리하게 된다.

5 CONCLUSION
Transformer를 직접 이미지 인식에 적용하는 방법을 제안했다. 기존 방법과 달리 기존의 패치 추출 단계를 제외하고는 image-specific inductive biases(CNN)을 사용하지 않았다. 이미지를 일련의 패치로 해석하고 표준 Transformer 인코더로 처리했다. 이러한 전략은 대규모 데이터셋에 대한 사전 학습과 결합하면 뛰어난 성능을 보이며 computational cost도 보다 저렴하다.
--
스터디
- 24.12.01(일) 14시 - 15시
- 24.12.04(수) 21시 30분 - 22시 30분
- 24.12.09(월) 22시 - 익일 0시