Author: Alexey Dosovitskiy∗,†, Lucas Beyer∗, Alexander Kolesnikov∗, Dirk Weissenborn∗,Xiaohua Zhai∗ , Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby∗,†∗equal technical contribution, †equal advising Google Research, Brain Team
PDF: %5BVit%5DAN%20IMAGE%20IS%20WORTH%2016X16%20WORDS%20TRANSFORMERS%20FO%2055db6960b10e45dd87478b566bab4979/VitAn_image_is_Worth_1616_Words-_Transformers_for_image_Recognition_At_scale.pdf
Published Date: 2021년 1월 3일
keyword: Vit, attention
참고자료
[Vision Transformer] An Image is Worth 16 x 16 Words : Transformer for Image Recognition at Scale
쉽게 이해하는 ViT(Vision Transformer) 논문 리뷰 | An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
https://www.notion.so
[논문 리뷰] Vision Transformer - An image is worth 16x16 words
1 | Introduction
📢 단순하고 확장 가능한 탐지 알고리즘을 제안(PASCAL VOC dataset에서 앙상블 모델이 젤 성능 좋았음)
배경
-
NLP 분야에서는 Transformer를 선두로 한, Self-attention-based 구조를 채택해서, 매우 좋은 성능을 보이고 있다.(대형 텍스트 코퍼스(corpus)에서 사전학습하여 smaller task-specific dataset에 파인튜닝)
-
Computer Vision에서는 여전히 합성곱 신경망(CNN)이 주류 구조로 자리잡고 있다.
-
Self-Attention 메커니즘을 CNN에 통합하거나 합성곱을 완전히 대체하려는 여러 연구들이 있었지만, 이러한 접근법들은 현재의 하드웨어 가속기와의 호환성 문제로 인해 널리 채택되지 못했다.
→ 대규모 이미지 인식 작업에서는 여전히 클래식 ResNet 기반 구조가 SOTA(State-of-the-Art) 위치를
유지하고 있다.
소개
-
연구 목적: 이 논문에서는 표준 트랜스포머 모델을 거의 변형하지 않고 이미지에 직접 적용하는 방법을 제안한다.
- 이미지를 패치(patch)로 나누어(NLP에서 사용하는 토큰처럼) 시퀀스 형태의 선형 임베딩으로 처리한 후, 트랜스포머 모델에 입력(이 모델은image classification를 위해 supervised learning(지도 학습 방식)으로 훈련됨)
-
mid-sized 데이터셋에서의 성능: ImageNet과 같은 중간 크기의 데이터셋에서 강력한 정규화 없이 훈련된 경우, 비슷한 크기의 ResNet 모델보다 몇 퍼센트 낮은 정확도를 보인다.
→ 트랜스포머가 CNN에 비해 Translation Equivariance, Locality와 같은 귀납적 편향(추상적 일반화)
(Inductive Biases)이 부족하여 작은 데이터셋에서는 일반화가 어렵다는 점을 시사한다.
-
하지만, 대용량 dataset에서 실험했을 때, 즉, ViT는 충분한 pre-trained 데이터가 있을 때, 매우 좋은 성능을 보인다.
-
Vision Transformer (ViT) 접근법:
- 모델 구조: Vision Transformer(ViT)는 입력 이미지를
패치 단위로 나누고, 이를 선형 임베딩을 적용하여 시퀀스로 만든 후, 표준 트랜스포머 구조에 입력한다.
- 훈련 및 성능: 대규모 데이터셋인 ImageNet-21k 또는 JFT-300M에서 사전 학습한 후, 더 작은 데이터셋에서 Transfer learning을 수행하면 ViT는 뛰어난 성능을 발휘한다.
- 주요 결과: 최적의 모델은 ImageNet에서 88.55%, ImageNet-ReaL에서 90.72%, CIFAR-100에서 94.55%, VTAB에서 77.63%의 정확도를 달성했다.
요약
- 트랜스포머와 컴퓨터 비전: 트랜스포머 모델은 원래 자연어 처리(NLP)에서 사용되었으나, 본 연구에서는 이를 이미지 인식에 적용한다.
- 기존 연구와의 비교: 이미지에서 self-attention을 사용하는 다양한 연구들과 ViT 모델과의 비교를 다룬다.
NLP
| 연구/연구자 | 주요 내용 |
|---|
| Vaswani et al. (2017) | Transformer 구조를 기계 번역 모델로 처음 제안. 현재 많은 NLP 작업에서 최고의 성능을 보이는 구조. |
| Devlin et al. (2019) | BERT 모델 제안. 노이즈를 제거하는 자기 지도 사전 학습 방식 수행. |
| GPT 계열 (2018, 2019, 2020) | 언어 모델을 사전 학습 태스크로 선정하여 수행. |
Computer Vision
| 연구/연구자 | 주요 내용 |
|---|
| Parmar et al. (2018) | Local neighborhood에만 self-attention 적용. |
| Sparse Transformers (2019), Weissenborn et al. (2019) | Attention의 범위를 조정하여 self-attention 적용. |
| → 이러한 특별한 방식의 attention의 경우에는 하드웨어 가속기에서 연산을 효율적으로 수행하기에는 다소 번거로운 작업이 포함되어 있는 경우가 다수. |
| Cordonnier et al. (2020) | 이미지를 2x2 패치로 나누어 self-attention 적용. 저해상도 이미지에 적합하며, ViT에 비해 중해상도 이미지를 다루기 어려움. |
| Chen et al. (2020) | 이미지 해상도와 color space를 줄인 후, image pixel 단위로 Transformer를 적용한 생성 모델. |

기존 연구 대비 ViT의 차별점
- 표준 ImageNet 데이터셋보다 더 큰 크기의 데이터셋에서 image recognition 실험을 진행.
- 더 큰 크기의 데이터셋에서 학습시킴 → 기존의 ResNets 기반 CNN보다 더 좋은 성능을 낼 수 있었음.
Vision Transformer가 발표된 2021년 당시, NLP 분야는 아주 급격하게 발전하고 있었다. 이러한 급성장은 Transformer라는 새로운 Architecture의 발견에 가장 큰 영향을 받았다. Transformer는 기존 RNN, LSTM들과 달리 Self Attention을 주요 메커니즘으로 사용하며 Language Task 성능을 큰 폭으로 향상시켰다. 대표적으로 GPT, BERT 등의 모델이 있다.
반면 이미지 도메인에서는 여전히 ResNet, EfficientNet 등의 CNN 모델이 메인으로 자리잡고 있었는데, 이는 언어와 이미지의 도메인 차이로 인해 Transformer를 바로 적용하기 어려웠기 때문이다. 언어는 고정된 사이즈의 토큰 벡터를 사용하며 입력 데이터가 순차적으로 들어오는 방식이다. 반면 이미지는 3차원 벡터의 형태이며 사이즈 또한 고정되어 있지 않다는 특성이 있다. 이렇게 서로 다른 데이터 특성으로 인해 Transformer를 이미지 모델에 바로 적용하기는 어려움이 있었다.
물론 Vision Transformer 이전에도 Transformer를 이미지 모델에 적용한 방법들은 존재했다.
첫 번째는 Stand Alone Self Attention (SASA) 이다. SASA에서는 CNN의 Convolution 연산을 Self Attention 연산으로 대체하는 방법을 시도했다.

그림1. SASA의 Self Attention
위 그림은 SASA에서 사용한 Self Attention 방법을 도식화한 그림으로, 왼쪽의 파란색 사각형은 입력 데이터를 의미한다. 입력 데이터에 대해 Query, Key, Value를 Projection한 뒤 Attention Score를 구하는 방법을 사용했다. 하지만 이러한 방법은 엄밀히 말하면 Self Attention을 이미지 모델에 적용한 것이지, Transformer 구조를 그대로 이미지 모델에 적용했다고 말하기 어렵다.
한편 2020년에는 ICLR에서는 Self Attention과 Convolution 연산을 비교하는 논문도 발표되었다. 이 논문에서는 수식 비교와 여러 실험을 통해 Self Attention은 Convolution의 모든 표현을 완벽하게 포함할 수 있음을 증명했다.
Vision Transformer와 가장 비슷한 모델로는 2020년 ICML에 발표된 ImageGPT를 들 수 있는데, ImageGPT는 이름에서 알 수 있듯이 언어 모델인 GPT의 철학을 그대로 이미지 모델에 적용한 방법이다.

그림2. ImageGPT 방법
위 그림은 ImageGPT의 방법을 도식화한 그림이다. 왼쪽은 이미지를 저해상도로 낮춘뒤 각 픽셀을 토큰으로 만드는 모습을 표현하고 있다. 가운데는 ImageGPT가 Pretraining 하는 방법을 소개하고 있다. a에서는 GPT와 동일하게 Autoregressive 방식으로 학습하는 모습을 보여주고 있다. 이때의 Autoregressive란 이전 데이터까지를 입력받아 다음 토큰을 예측하는 방식을 반복적으로 수행하는 방법을 의미한다. 반복적으로 적용하기에 Regressive라고 하고, 순차적으로 이전까지의 데이터를 업데이트하며 반복하기에 Autoregressive라고 표현한다. b에서는 BERT 방식으로 학습하는 모습을 보여준다. 랜덤으로 토큰을 지우고, 이를 예측하는 방법을 의미한다.
ImageGPT는 Vision Transformer와 가장 유사한 방법이다. 하지만 몇 가지 한계를 갖고 있는데요. 가장 주요한 한계는 이미지 픽셀값을 토큰으로 사용하기 위해 저화질 이미지를 사용해야 했다는 점이다. 따라서 이미지넷과 같이 중간 사이즈의 이미지 데이터셋에서는 아주 좋은 성능을 발휘하기 어려웠다. Vision Transformer에서는 이 점에 주목한다. ImageGPT와 같이 Transformer 구조를 최대한 그대로 이미지 모델에 적용하되, 고화질 이미지를 학습할 수 있는 방법에 초점을 맞춘다.
3 | Method
요약
- 3.1 Vision Transformer (ViT): ViT의 구조를 설명하며, 이미지 패치를 입력으로 받아 트랜스포머 인코더를 통해 이미지를 처리하는 방식을 소개한다.
- 3.2 Fine-tuning and Higher Resolution: 더 높은 해상도의 이미지로 미세 조정(fine-tuning)하는 방법과 이에 따른 성능 향상을 다룬다.
1. 모델 설계 개요
📢 이 모델 설계는 Vaswani et al. (2017)이 제안한 원래 Transformer 아키텍처를 최대한 가깝게 따른다. 이 간단한 설정의 주요 장점은 기존의 확장 가능한 NLP Transformer 아키텍처와 그 효율적인 구현을 거의 그대로 사용할 수 있다는 것이다.

Vision Transformer (ViT)은 주로 1D 시퀀스의 토큰 임베딩을 처리하는 Transformer 아키텍처를 2D 이미지를 처리할 수 있도록 수정한 것이다.
- 이미지 표현:
-
크기 H×W×C (여기서 H 와 W 는 이미지의 높이와 너비, C는 채널 수) 인 입력 이미지( x )는 평탄화된 2D 패치 시퀀스 xp 로 분할한다.
-
각 패치는 P×P 크기를 가지며, 총 패치 수 N=P2HW 이다. 패치는 평탄화되고 학습 가능한 선형 투영을 통해 잠재 차원 D 로 매핑되어 패치 임베딩을 생성한다.
→ Transformer는 1D 데이터를 처리하는데, 이미지는 2D이다. 이미지(HXWXC)를 다루기 위해, Image를 2D patches(PXPXC) 개로 나누었다.
- Patch Embedding:

-
Linear Projection의 출력은 Patch Embedding이라 불린다.
-
학습 가능한 class embedding xclass 이 패치 임베딩 시퀀스에 추가된다. 이 class embedding의 상태는 Transformer encoder를 통과한 후 이미지 표현 y 로 사용된다.
- Transformer는 각 layer에서 constant latent vector size : D를 유지하는데, 이를 위해, patch들을 학습 가능한 linear projection을 통해, D dimension 화.

쉽게 이해하기 위한 추가 설명
- Class Embedding 추가:
- Transformer 모델에서
class embedding이라는 특별한 벡터를 사용한다. 이 벡터는 xclass 로 표시된다. 이 벡터는 학습 가능한 벡터이며, 모델이 이미지를 처리할 때 중요한 역할을 한다
- 입력 이미지가 여러 개의 패치로 나뉘는데, 이 패치들의 임베딩 시퀀스의 맨 앞에 이
class embedding을 추가한다.
- Transformer 모델이 이 임베딩 시퀀스를 처리한 후, 최종적으로 xclass 의 상태가 이미지 전체의 표현으로 사용된다. 이 최종 상태는 모델이 이미지에 대한 전반적인 이해를 나타낸다고 볼 수 있다.
- Patch Embedding과 Latent Vector Size:
- Transformer 모델은 각 층(layer)에서 일정한 크기의 잠재 벡터(Latent Vector)를 유지한다. 이 크기를 D 라고 부른다.
- 이미지를 작은 패치로 나눈 후, 각 패치를 평탄화(flatten)하고 임베딩 벡터로 변환한다. 하지만 이 변환된 패치의 크기는 Transformer의 입력 크기 D 와 맞지 않을 수 있다.
- 이를 해결하기 위해, 각 패치 벡터를 학습 가능한 선형 변환(Linear Projection)을 통해 크기 D 로 맞춘다. 이렇게 하면 모든 패치가 동일한 크기의 벡터로 변환되어 Transformer 모델에 입력될 수 있다
예시
쉽게 생각하면, Transformer 모델이 이해할 수 있는 고정된 크기의 입력을 필요로 한다고 할 수 있다. 이미지를 패치로 나누고 나면, 이 패치들의 크기는 제각각일 수 있다. 그래서 이 패치들을 일관된 크기의 벡터(크기 ( D ))로 변환해주는 과정이 필요하다. 이 변환을 학습 가능한 선형 변환(Linear Projection)을 통해 수행하게 된다.
결과적으로, 모든 패치가 동일한 크기 D의 벡터로 변환되어, Transformer 모델이 이를 처리할 수 있게 된다. 이 과정에서 추가된 class embedding 벡터도 동일한 크기 D 로 만들어지며, 최종적으로 모델이 이미지에 대한 전반적인 이해를 나타내는 벡터 y 를 출력하게 된다.
가장 먼저 해야 하는 과정은 이 입력 이미지를 쪼개서 N개의 Patch로 만들어 주는 것입니다. 이때의 Patch 사이즈는 PxPxC라고 표현했습니다. ImageGPT에서는 이렇게 만들어진 Patch를 BERT와 Autoregressive 방식으로 학습하기 위해 입력 이미지 화질을 아주 작게 만들어야 했습니다. 픽셀값을 예측하도록 학습해야 했기 때문이죠. 반면 Vision Transformer에서는 픽셀값을 예측할 필요가 없기 때문에 낮은 차원의 벡터로 변환만 해주면 되는데요. 이를 위해서 Linear Projection을 사용합니다. 결과적으로 3차원의 PxPxC 사이즈를 갖는 Patch는 D 차원의 벡터로 변환되게 됩니다. 이때 총 N개의 Patch를 모두 Linear Projection 해주어서 총 NxD 사이즈의 Patch Embedding이 만들어지게 된다.
- Position Embedding:
-
위치 정보를 유지하기 위해 표준 학습 가능한 1D Position Embedding이 Patch Embedding에 추가된다.
-
더 발전된 2D 인식 Position Embedding을 사용해도 성능 개선이 크지 않음을 언급
-
Position embeddings는 patch embeddings에 더해져, 공간 정보를 제공한다.
→ transformer와 가장 큰 차이가 나는 부분! (고정된 positional embedding 사용 안함)


- Transformer Encoder:
- Transformer encoder는 다중 헤드 Self-Attention (MSA)과 다층 퍼셉트론 (MLP) 블록으로 교차하여 구성된다.
- Layer Normalization (LN)이 각 블록 전에 적용되며, 블록마다 multiheaded self-attention residual connection(잔차 연결)이 추가된다.
- MLP 블록은 GELU 비선형성을 가진 두 개의 layer을 포함한다.
- Classification Head:
-
사전 학습 중에는 Transformer encoder의 출력에 Classification Head가 부착된다. 이 Classification Head는 하나의 은닉층을 가진 MLP로 구현된다.
-
Fine-tunning 동안 Classification Head는 단일 선형 층으로 간단하게 구현된다.
- pre-training과 fine-tuning 단계에서 모두, Transformer encoder의 ouput이 classification의 head로 이용된다.
- classification head는 pre-training 단에서는 one hidden layer의 MLP로, fine-trurning 단계에서는 하나의 linear layer로 구성된다.

식 정리
-
Patch Embedding:
z0=[xclass;x1pE;x2pE;⋯;xNpE]+Epos
- E∈R(P2⋅C)×D 는 학습 가능한 선형 투영 행렬
- Epos∈R(N+1)×D 는 Position Embedding 행렬
-
Multiheaded Self-Attention 및 잔차 연결:
z′l=MSA(LN(zl−1))+zl−1,l=1…L
-
MLP 블록 및 잔차 연결:
zl=MLP(LN(zl′))+zl′,l=1…L
-
이미지 표현:
y=LN(z0L)
Inductive Bias
Vision Transformer(ViT)는 CNN에 비해 이미지에 특화된 inductive bias가 적다.
- CNN: 지역성(locality), 2차원 neighborhood 구조, 평행 이동 불변성(translation equivariance)이 모델 전체의 각 layer에 내장되어 있음.
- ViT: MLP layer만이 지역적이고 평행 이동 불변성을 가지며, self-attention layer는 전역적(global)임. → MLP layer에서만 translation 등분산성과 지역 정보를 보고, self-attention layer들에서는 전체적으로 본다.
- 2차원 이웃 구조는 모델의 시작에서 이미지를 패치로 나눌 때(cutting)와, 이미지 해상도에 따라 position embedding을 조정할 때만 사용됨.
- 초기화 시점의 position embedding은 패치의 2D 위치에 대한 정보를 전혀 포함하지 않으며, 패치들 간의 모든 공간적 관계는 처음부터 학습해야 함.
Hybrid Architecture
- ViT에서 원본 이미지 패치(raw image patches) 대신 CNN의 feature map에서 추출된 패치를 사용해 입력 시퀀스를 구성할 수 있음.
- 이 경우, 패치 임베딩 투영 E 가 CNN feature map에서 추출된 패치에 적용됨.
- 패치의 공간적 크기가 1×1일 경우, 입력 시퀀스는 feature map의 공간적 차원을 평탄화하고 Transformer 차원으로 투영하여 얻어짐.
- Classification input embedding과 position embedding은 기존 ViT와 동일하게 추가됨.
3. Fine-Tuning and Higher Resolution
- 사전 학습과 파인튜닝:
- Vision Transformer(ViT)은 일반적으로 큰 데이터셋에서 사전 학습을 진행한 후, 더 작은 하위 작업에 파인튜닝을 수행한다.
- 파인튜닝을 위해, 사전 학습된 예측 헤드를 제거하고, 크기가 ( D \times K )인 feedforward layer를 추가한다. 여기서 ( K )는 하위 작업의 클래스 수이며, 이 레이어는 0으로 초기화된다.
- 해상도 조정:
- 파인튜닝 시, 사전 학습보다 높은 해상도로 이미지를 처리하는 것이 종종 유리하다.
- 더 높은 해상도의 이미지를 입력할 때, 패치 크기는 동일하게 유지되며, 이로 인해 시퀀스 길이가 증가한다.
- ViT는 메모리 제약 내에서 임의의 시퀀스 길이를 처리할 수 있지만, 사전 학습된 position embedding이 더 이상 유효하지 않을 수 있다.
- 따라서, 원본 이미지에서의 위치에 따라 사전 학습된 position embedding에 대해 2D 보간을 수행한다.
- 2D 구조의 inductive bias:
- 해상도 조정 및 패치 추출 과정이 ViT에 2D 이미지 구조에 대한 inductive bias가 수동으로 주입되는 유일한 지점이다.
4 | Experiments (실험)
- 4.1 Setup: 실험 설정과 데이터셋을 설명합니다. ILSVRC-2012 ImageNet, ImageNet-21k, JFT-300M 등의 대규모 데이터셋을 사용하여 실험이 진행되었습니다.
- 4.2 Comparison to State of the Art: ViT의 성능을 기존의 최첨단 모델들과 비교하며, 대규모 데이터셋에서의 성능을 강조합니다.
- 4.3 Pre-training Data Requirements: ViT가 사전 학습을 위해 얼마나 많은 데이터가 필요한지를 평가합니다.
- 4.4 Scaling Study: 다양한 모델 크기와 계산 비용을 고려한 성능 비교를 통해 ViT가 효율적임을 보여줍니다.
- 4.5 Inspecting Vision Transformer: ViT의 self-attention 메커니즘이 어떻게 이미지를 처리하는지 시각적으로 분석합니다.
- 4.6 Self-supervision: 자가 지도 학습(self-supervised learning)을 통해 ViT의 잠재력을 탐구합니다.
Scaling Study
- 연구 목적:
- JFT-300M 데이터셋을 이용해 다양한 모델들의 전이 학습 성능을 평가하는 통제된 스케일링 연구를 수행한다.
- 데이터 크기가 모델 성능의 병목이 되지 않으며, 각 모델의 사전 학습 비용 대비 성능을 평가한다.
- 모델 세트:
- ResNet: 7개의 ResNet 모델 (R50x1, R50x2, R101x1, R152x1, R152x2는 7 에포크 동안, R152x2와 R200x3는 14 에포크 동안 사전 학습됨).
- Vision Transformer (ViT): 6개의 ViT 모델 (ViT-B/32, B/16, L/32, L/16은 7 에포크 동안, L/16과 H/14는 14 에포크 동안 사전 학습됨).
- 하이브리드 모델: 5개의 하이브리드 모델 (R50+ViT-B/32, B/16, L/32, L/16은 7 에포크 동안, R50+ViT-L/16은 14 에포크 동안 사전 학습됨). 여기서 모델 이름 끝의 숫자는 패치 크기가 아닌 ResNet 백본의 총 다운샘플링 비율을 나타냄.

- 주요 결과:
- ViT vs. ResNet: Vision Transformer는 성능/연산비용 측면에서 ResNet을 압도하며, ViT는 동일한 성능을 달성하기 위해 약 2-4배 적은 연산을 사용함 (5개의 데이터셋 평균).
- 하이브리드 모델: 하이브리드 모델은 작은 연산 예산에서 ViT보다 약간 더 나은 성능을 보이지만, 큰 모델에서는 차이가 사라짐. 이는 ConvNet의 지역적 특징 처리가 ViT에 어떤 크기에서든 도움을 줄 것으로 예상했기 때문에 다소 놀라운 결과임.
- ViT의 스케일링 가능성: Vision Transformer는 시도된 범위 내에서 성능이 포화되지 않는 경향을 보여, 향후 스케일링 연구에 대한 동기를 부여함.

학습 완료된 Vision Transformer 모듈을 여러 형태로 분석한 그림
- 1번째 그림 : Vision Transformer 첫 번째 Layer를 시각화한 그림
- 학습 완료된 CNN의 필터와 유사하게 이미지 특징들을 잘 학습한 모습
- 2번째 그림 : Positional Embedding을 분석한 그림.
-
Positional Embedding의 각 행,열에 대해 모든 행,열의 코사인 유사도를 측정한 것.
-
가까운 패치일 수록 비슷한 Positional Embedding을 갖고 있다는 것입니다. 그리고 같은 행,열에서 더욱 비슷한 값을 가짐.
→ 우리는 이미지를 1차원 형태로 잘라서 Transformer를 학습했지만, 학습 과정에서 Vision Transformer가 2차원 형태의 이미지 특성을 잘 학습했음을 알 수 있음
- 3 번째 그림: Self Attention Weight를 분석한 그림.
- Layer에 따라 Self Attention Weight를 바탕으로 Mean Attention Distance를 표현
- Attention Distance가 크다는 말은 더 멀리 있는 정보에 집중하고 있다는 것을 의미
-
낮은 레이어에서는 Attention Distance가 다양하게 분포하고 있는 모습
→ 이는 낮은 레이어에서는 Local한 정보와 Global한 정보를 모두 잡아내고 있음을 의미
-
높은 레이어에서는 Attention Distance가 모두 큰 값을 갖는데요.
→ 높은 레이어에서는 모두 Global 정보를 잡아내고 있음을 의미
- 내부 표현 분석:
- Vision Transformer(ViT)가 이미지 데이터를 어떻게 처리하는지 이해하기 위해 내부 표현을 분석함.
- ViT의 첫 번째 레이어는 평탄화된 패치를 선형적으로 투영하여 저차원 공간으로 변환함(식 1 참조).
- Figure 7 (왼쪽): 학습된 임베딩 필터의 주요 주성분을 보여주며, 각 패치 내의 세부 구조를 저차원으로 표현하는 데 적합한 기저 함수와 유사한 구조를 나타냄.
- Position Embedding:
- 투영 후, 학습된 Position Embedding이 패치 표현에 추가됨.
- Figure 7 (중앙): 모델이 이미지 내 거리 정보를 Position Embedding의 유사성으로 인코딩하는 것을 학습함. 즉, 가까운 패치일수록 더 유사한 Position Embedding을 가지는 경향이 있음.
- 행-열 구조가 나타나며, 같은 행/열에 있는 패치들이 유사한 임베딩을 가짐. 큰 그리드에서는 가끔 사인 곡선 구조가 나타남(부록 D 참조).
- Position Embedding이 2D 이미지 토폴로지를 표현하도록 학습된다는 사실은 수작업으로 만든 2D 인식 임베딩 변형이 개선을 가져오지 않는 이유를 설명함(부록 D.4 참조).
- Self-Attention:
- Self-Attention은 ViT가 가장 낮은 레이어에서도 전체 이미지에 걸쳐 정보를 통합할 수 있게 해줌.
- Figure 7 (오른쪽): Attention weights를 기반으로 정보가 통합되는 이미지 공간 내 평균 거리를 계산하여, 네트워크가 이 능력을 얼마나 활용하는지 조사함. 이 "attention 거리"는 CNN에서의 receptive field 크기와 유사함.
- 일부 Attention heads는 가장 낮은 레이어에서도 이미지 대부분에 주목하는데, 이는 모델이 전역적으로 정보를 통합하는 능력을 실제로 사용하고 있음을 보여줌.
- 다른 Attention heads는 낮은 레이어에서 일관되게 작은 attention 거리를 가지며, 이는 초기 CNN의 convolutional layers와 유사한 기능을 수행할 수 있음을 시사함.
- 하이브리드 모델에서는 이러한 국부적인 Attention이 덜 두드러지며, 이는 Transformer 전에 ResNet을 적용했을 때 나타남.
- Attention 거리는 네트워크 깊이에 따라 증가함.
- 전반적으로, 모델은 분류에 의미적으로 중요한 이미지 영역에 주목하는 것으로 나타남(Figure 6 참조).
Self-Supervision
- Transformer의 성능:
- Transformer는 NLP 작업에서 뛰어난 성능을 보여준다. 그러나 이 성과는 뛰어난 확장성뿐만 아니라 대규모 self-supervised pre-training(자기 지도 사전 학습)에 크게 의존한다.
- Self-Supervision 연구:
- ViT에서 self-supervised pre-training의 한 형태로 masked patch prediction(마스킹된 패치 예측)을 초기 탐색했다. 이는 BERT에서 사용된 마스킹된 언어 모델링 작업을 모방한 것이다.
- Self-supervised pre-training을 통해, 작은 ViT-B/16 모델이 ImageNet에서 79.9%의 정확도를 달성했다. 이는 처음부터 학습했을 때보다 2% 향상된 결과이지만, 여전히 supervised pre-training보다 4% 낮다.
- 부록 B.1.2에는 추가적인 세부 사항이 포함되어 있다.
- 미래 연구 방향:
- Contrastive pre-training(대조 학습, Chen et al., 2020b; He et al., 2020; Bachman et al., 2019; Henaff et al., 2020)에 대한 탐구는 미래의 연구 과제로 남겨둔다.
이 요약은 Vision Transformer에서 self-supervised pre-training의 초기 연구 결과를 설명하며, masked patch prediction의 성능 향상과 미래 연구 방향에 대해 다루고 있다.
5 | Conclusion
-
ViT의 우수한 성능을 요약하고, 미래 연구 방향을 제안한다. 특히, 자가 지도 학습과 다른 컴퓨터 비전 과제에 ViT를 적용하는 방법에 대해 논의한다.
-
Transformer의 Image Recognition 적용:
-
이 연구는 Transformer를 image recognition 분야에 직접적으로 적용한 첫 사례
-
이미지에 특화된 inductive biases를 네트워크 구조에 주입하지 않았다.(이미지 패치 추출 제외)
→ 이미지를 NLP에서와 같이 패치 시퀀스로 처리하여, 간단하면서도 확장성이 높은 방법을 제안하였다.
결론
- ViT의 가능성: Vision Transformer(ViT)는 단순한 구조와 확장성 덕분에 SOTA 모델들과 견줄 수 있는 성능을 보여주었으며, 사전 학습 비용도 절감할 수 있었다.
- 향후 과제: 아직 해결해야 할 과제가 많이 남아 있다. ViT를 detection이나 segmentation과 같은 다른 컴퓨터 비전 작업에 적용하는 것, 그리고 자가지도 사전 학습(self-supervised pretraining) 방법을 계속 탐구하는 것이 필요하다. 이러한 방향으로 ViT의 확장성이 더 높은 성능 향상을 가져올 가능성이 있다.
추가정리 사항
5-1. 장점
- 전역적인 컨텍스트 인식 능력:
- Vision Transformer는 Self Attention 모듈을 통해 이미지의 각 부분을 독립적으로 처리하는 것이 아니라, 전체 이미지의 컨텍스트를 고려하여 정보를 처리함.
- 이를 통해 복잡한 시각적 관계나 패턴을 파악하는 데 매우 유용함.
- 스케일링의 유연성:
- Vision Transformer는 모델의 크기나 깊이를 쉽게 조절할 수 있어 다양한 연산 요구 사항에 맞게 스케일링할 수 있음.
- 특히 큰 데이터셋에서 큰 모델을 훈련시킬수록 성능이 향상되는 경향이 있음.
- 데이터 전처리의 최소화:
- Vision Transformer는 이미지를 패치로 나누고 이를 벡터로 변환하는 간단한 전처리 과정만 필요로 함.
- 복잡한 데이터 증강이나 특별한 전처리 없이도 높은 성능을 달성할 수 있음.
- 모듈화 및 재사용의 용이성:
- 구조가 모듈화되어 있어 다양한 시각적 작업에 쉽게 적용 가능함.
- 훈련된 모델을 다른 작업에 전이 학습하기도 용이하여 다양한 데이터셋에서 성능을 향상시킬 수 있음.
5-2. 단점
- 계산 복잡도:
- Vision Transformer는 이미지의 모든 부분 간의 관계를 계산하기 때문에 계산 복잡도가 높음.
- 특히 이미지 크기나 패치 수가 증가하면 연산 요구 사항이 급격히 증가할 수 있어 훈련 시간이 길어질 수 있음.
- 데이터 의존성:
- Vision Transformer는 충분한 양의 데이터와 다양한 데이터가 필요함.
- 작은 데이터셋에서는 성능이 제한될 수 있으며, 충분한 데이터가 없으면 모델의 전체 잠재력을 발휘하기 어려움.
- CNN이 이미지 도메인의 특성을 반영한 Inductive Bias를 활용하는 반면, Vision Transformer는 이러한 Bias가 없어 더 많은 데이터로부터 이미지만의 특성을 직접 학습해야 함.
- 해석의 어려움:
- Transformer 구조는 CNN에 비해 직관적이지 않음.
- 따라서, 모델이 이미지를 처리하고 판단을 내리는 방식을 이해하거나 해석하는 것이 어려울 수 있음.
- 이는 모델의 동작 방식을 분석하거나 문제점을 파악하는 데 어려움을 줄 수 있음.