Search
Duplicate

AI/ Paper/ An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale(ViT)

ABSTRACT

Transformer 아키텍쳐가 NLP 작업에서 사실상의 표준이 되는 동안 computer vision에 대한 응용은 제한 되었다. vision에서 attention은 convolutional network와 함께 사용되거나 convolutional 네트워크의 전체적인 구조를 유지하면서 특정 성분을 교체하는데 사용되었다. 우리는 이러한 CNN에 대한 신뢰가 불필요하고, image 패치의 시퀀스에 직접 적용되는 순수한 transformer가 이미지 분류 작업에서 더 잘 작동함을 보인다. 대규모 데이터에 pre-trained이고 여러 중소 크기 이미지 인식 벤치마크(ImageNet, CIFAR-100, VTAB 등)로 전이될 때, Vision Trasformer(ViT)는 최첨단 convolutional network와 비교하여 학습에 상당히 적은 계산 자원을 요구하면서도 훌륭한 결과를 달성한다.

1 INTRODUCTION

Self-attention 기반 아키텍쳐, 특히 Transformer는 NLP에서 선호되는 모델이 되었다. 지배적인 접근방식은 대규모 text corpus에 pre-train 시킨 후에 더 작은 task-specific 데이터셋에 fine-tune하는 것이다. Transformer의 계산 효율성과 확장성 덕분에, 100B 파라미터 이상의 전례없는 크기의 모델을 학습시키는 것이 가능해졌다. 모델과 데이터셋이 성장함에도 여전히 성능 포화의 신호는 없다.
그러나 computer vision에서 convolutional 아키텍쳐가 주도적으로 남아 있다. NLP의 성공에 영감을 받아 여러 연구가 CNN-like 아키텍쳐를 sefl-attention과 결합하는 것을 시도했고, 일부는 convolution 전체를 교체했다. 후자의 모델은 이론적 효율성을 가졌지만, 특별한 attention 패턴의 사용 때문에 현대의 하드웨어 가속기에서 효율적으로 확장되지 못했다. 그러므로 대규모 이미지 인식에서는 전통적인 ResNet-like 아키텍쳐가 여전히 최첨단이다.
NLP에서 Transformer의 스케일링 성공에 영감받아, 우리는 가능한 적게 수정하면서 표준 Transformer를 이미지에 직접 적용하도록 실험한다. 이를 위해 우리는 이미지를 patch로 분할하고, 이러한 패치의 선형 임베딩의 시퀀스를 Transformer에 입력으로 제공한다. 이미지 패치는 NLP 응용에서 토큰(단어)와 같은 방법으로 취급된다. 우리는 supervised 방식으로 이미지 분류에서 모델을 학습한다.
강력한 규제없이 ImageNet과 같은 중간 크기 데이터셋에서 학습될 때, 이러한 모델은 비교할만한 크기의 ResNet에 비해 몇 퍼센트 포인트 낮은 정확도를 산출한다. 이러한 다소 실망스러운 결과는 예상될 수 있다. Transformer는 CNN에 내재된 translation(평행 이동) 동등성과 locality 같은 일부 inductive bias가 부족하므로 불충분한 데이터로 학습될 때 잘 일반화되지 않는다.
그러나 모델이 더 큰 데이터셋(14M-300M 이미지)에서 학습될 때 그림은 바뀐다. 우리는 대규모 학습이 inductive bias를 지우는 것을 발견했다. 우리의 Vision Transformer(ViT)는 충분한 스케일에서 pre-trained되고 더 적은 데이터 포인트를 가진 작업으로 전이될 때 훌륭한 결과를 달성할 수 있다. 공개된 ImageNet-21k 데이터셋 또는 in-house JFT-300M 데이터에서 pre-trained일 때, ViT는 multiple image 인식 벤치마크에서 최첨단에 근접하거나 능가한다. 특히 best 모델은 ImageNet에서 88.55%, ImageNet-ReaL에서 90.72%, CIFAR-100에서 94.55%, 19가지 작업으로 구성된 VTAB suite에서 77.63%의 정확도를 달성한다.

2 RELATED WORK

Transformer는 기계번역을 위해 Vaswani et al(2017)에 의해 제안되었고, 이후 많은 NLP 작업에서 최첨단을 달성했다. 대규모 transformer 기반 모델은 종종 대규모 copora에서 pre-trained 된 다음 특정 작업에 대해 fine-tune 된다. BERT는 denoising self-supervised pre-training task를 사용하고, GPT 계열은 언어 모델링을 pre-training 작업으로 사용한다.
이미지에 self-attention을 단순히 적용하는 것은 각 픽셀이 모든 다른 픽셀에 attend 하는 것을 요구한다. 픽셀의 수에 따라 비용이 2차적 이므로, 현실의 입력 크기로 확장되지 않는다. 따라서 이미지 처리에 Transformer를 적용하기 위해 여러가지 근사가 과거에 시도되었다. Parmar et al(2018)은 globally 대신 각 쿼리 픽셀에 대해 local 이웃에만 self-attention을 적용했다. 이러한 local multi-head dot-product self attention block은 convolution을 완전하게 대체한다. 다른 작업에서 Sparse Transformers(Child et al, 2019)가 이미지에 적용 가능하도록 전역 self-attention의 확장가능한 근사를 활용한다. 극단적인 경우에 개별 축을 따라서만 적용된다. 이러한 특수한 attention 아키텍쳐 중 많은 것들이 computer vision 작업에서 유망한 결과를 시연했지만 하드웨어 가속기에 효율적으로 구현되기 위해 복잡한 엔지니어링이 필요했다.
우리와 가장 관련된 것은 Cordonnier et al(2020)의 모델이다. 이것은 입력 이미지에서 2x2 크기의 패치를 추출하고 그 위에 full self-attention을 적용한다. 이 모델은 ViT와 매우 유사하지만 우리의 작업은 추가로 대규모 pre-training이 vanilla transformer가 최첨단 CNN과 경쟁적(또는 더 나은)임을 보인다. 게다가 Cordonnier et al(2020)은 2x2 픽셀의 작은 패치만 사용하는데, 이것은 모델이 작은 해상도 이미지에만 적용가능하게 한다. 반면 우리는 medium 해상도 이미지도 다룬다.
convolutional neural network(CNN)을 self-attention의 형식과 결합하는데 많은 관심이 존재한다. 예컨대 augmenting feature map for image classification 또는 object detection, video processing, image classification, unsupervised object discovery, unified text-vision task 등을 위해 CNN의 출력을 selft-attention을 사용하여 추가로 프로세싱하는 방식이 있다.
최근의 또 다른 관련 모델은 GPT(iGPT)이다. 이것은 이미지 해상도와 색상 공간을 축소한 후에 이미지 픽셀에 transformer를 적용한다. 이 모델은 generative 모델로써 unsupervised 방식으로 학습되고 결과 representation은 분류 성능을 위해 fine-tune 되거나 선형적으로 탐색될 수 있어서 ImageNet에서 최대 72%의 정확도를 달성했다.
우리의 연구는 표준 ImageNet 데이터셋 대신 대규모 스케일에서 이미지 인식을 탐색하는 논문 모음에 기여한다. 추가 데이터 소스의 사용은 표준 벤치마크에서 최첨단 결과를 달성할 수 있게 한다. 또한 Sun et al(2017)은 데이터셋 크기에 따라 CNN 성능이 어떻게 확장되는지를 연구하고, Kolesnikov et al(2020), Djolonga et al(2020)은 ImageNet-21k와 JFT-300M과 같은 대규모 데이터셋에서 CNN transfer learning에 대한 실험적 탐색을 수행한다. 우리는 이 두 데이터셋에 초첨을 맞추지만 prior 연구에서 사용된 ReNet-based 모델 대신 transformer를 학습한다.

3 METHOD

모델 설계에 있어서 우리는 original Transformer을 가능한 충실히 따른다. 이러한 의도적으로 간단한 설정의 이점은 확장 가능한 NLP transformer 아키텍쳐와 그들의 효율적인 구현을 거의 그대로 사용할 수 있다는 것이다.

3.1 VISION TRANSFORMER (VIT)

모델의 전체는 그림 1에 묘사된다. 표준 transformer는 1d 토큰 임베딩 시퀀스를 입력으로 받는다. 2d 이미지를 다루기 위해 우리는 이미지 xRH×W×C\bold{x} \in \mathbb{R}^{H \times W \times C}를 평탄화된 2d 패치의 시퀀스 xpRN×(P2C)\bold{x}_p \in \mathbb{R}^{N \times (P^2 \cdot C)}로 재구성한다. 여기서 (H,W)(H, W)는 원래 이미지의 해상도이고 CC는 채널의 수, (P,P)(P, P)는 각 이미지 패치의 해상도이고 N=HW/P2N = HW/P^2은 결과 패치의 수로 transformer에 유효 입력 시퀀스 길이 역할을 한다. transformer는 전체 레이어에서 상수 latent vector 크기 DD를 사용하므로 우리는 patch를 평탄화하고 학습 가능한 linear projection을 사용하여 DD 차원으로 매핑한다(방정식 1). 이 projection의 출력을 patch embedding이라 부른다.
BERT의 [class] 토큰과 유사하게 우리는 임베딩된 패치 시퀀스 앞에 학습 가능한 임베딩(z00=xclass(\bold{z}_0^0 = \bold{x}_\text{class})을 추가한다. 이 임베딩의 transformer 인코더의 출력 (zL0\bold{z}_L^0)이 이미지 representation y\bold{y} 역할을 한다(방정식 4). pre-training과 fine-tuning 모두에서 classification head가 zL0\bold{z}_L^0에 추가된다. classification head는 pre-training에서는 1개의 hidden 레이어를 갖는 MLP로, fine-tuning에서는 단일 linear 레이어로 구현된다.
positional 정보를 유지하기 위해 패치 임베딩에 Position embedding이 추가된다. 우리는 표준 학습 가능한 1d position embedding을 사용한다. 더 발전된 2d-aware position embedding을 사용해도 유의미한 성능 향상을 관찰하지 못했기 때문이다(부록 D.4). 결과적인 임베딩 벡터 시퀀스가 encoder에 대한 입력으로 제공된다.
Transformer 인코더는 multiheaded self-attention(MSA) 레이어와 MLP block이 번갈아 구성된다. Layernorm(LN)은 각 블록 전에 적용되고 residual connection이 각 블록 후에 적용된다.
MLP는 GELU non-linearity를 사용하는 2개 레이어를 포함한다.
z0=[xclass;xp1E;xp2E;...;xpNE]+Epos, (ER(P2C)×D,EposR(N+1)×D)z=MSA(LN(z1))+z1 (=1...L)z=MLP(LN(z))+z (=1...L)y=LN(zL0)\begin{align} \bold{z}_0 &= [\bold{x}_\text{class}; \bold{x}_p^1\bold{E}; \bold{x}_p^2\bold{E};...;\bold{x}_p^N\bold{E}] + \bold{E}_\text{pos}, \ (\bold{E} \in \mathbb{R}^{(P^2\cdot C)\times D}, \bold{E}_\text{pos} \in \mathbb{R}^{(N+1)\times D}) \\ \bold{z}_\ell' &= \text{MSA}(\text{LN}(\bold{z}_{\ell-1})) + \bold{z}_{\ell-1} \ (\ell = 1...L) \\ \bold{z}_\ell &= \text{MLP}(\text{LN}(\bold{z}_\ell')) + \bold{z}_\ell' \ (\ell = 1...L) \\ \bold{y} &= \text{LN}(\bold{z}_L^0)\end{align}
Inductive bias.
vision transformer가 CNN 보다 이미지의 특징적인 inductive bias가 훨씬 적다는 것에 주목한다. CNN에서 locality, 2차원 이웃 구조와 translation equivariance는 모델 전체의 각 레이어에 내재되어 있다. ViT에서는 오직 MLP 레이어만 local과 translationally equivariant이고 self-attention 레이어는 global이다. 2차원 이웃 구조는 매우 제한적으로 사용된다. 모델의 초기에서 이미지를 patch로 커팅할 때와 fine-tuning에서 다른 해상도의 이미지에 대한 position embedding을 조정할 때만 사용된다(아래 설명). 그 외에는 초기화 시 position embedding이 패치의 2차원 위치에 관한 정보를 담고 있지 않으며, 패치 사이의 모든 공간적 관계는 처음부터 학습되어야 한다.
Hybrid Architecture.
raw image 패치에 대안으로 CNN의 feature map에서 입력 시퀀스를 형성할 수 있다. 이 하이브리드 모델에서 패치 임베딩 projection E\bold{E}(방정식 1)은 CNN feature map에서 추출된 패치에 적용된다. 특별한 경우로써 패치는 공간 크기 1x1 을 가질 수 있는데, 이것은 입력 시퀀스가 단순히 feature map의 공간 차원을 평탄화하고 transformer 차원에 projecting하여 얻어진다는 것을 의미한다. classification 입력 embedding과 position embedding은 위에 설명된 것처럼 추가된다.

3.2 FINE-TUNING AND HIGHER RESOLUTION

일반적으로 우리는 ViT를 대규모 데이터셋에서 pre-train하고 (더 작은) downstream 작업에 fine-tune한다. 이를 위해 우리는 pre-trained prediction head를 제거하고 zero-초기화된 D×KD \times K feedforward 레이어를 추가한다. 여기서 KK는 downstream class의 수이다. pre-training 보다 더 높은 해상도에서 fine-tune 하는 것이 종종 유익하다. 더 높은 해상도의 이미지를 공급할 때, 우리는 패치 크기를 동일한 크기로 유지한다. 이것은 더 큰 유효 시퀀스 길이를 발생시킨다. Vision Transformer는 임의의 시퀀스 길이를 다룰 수 있지만(메모리 제약까지) pre-trained position embedding은 더 이상 의미가 없을 수 있다. 그러므로 우리는 원래 이미지에서 그들의 위치에 따라 pre-trained position embedding의 2d 보간을 수행한다. 이 해상도 조정과 패치 추출이 Vision Transformer에 이미지의 2d 구조에 관한 inductive bias가 수작업으로 주입되는 유일한 지점임에 유의하라.

4 EXPERIMENTS

우리는 ResNet, Vision Transformer(ViT)와 하이브리드의 representation learning 능력을 평가한다. 각 모델의 데이터 요구사항을 이해하기 위해 우리는 다양한 크기의 데이터셋에서 pre-train하고 많은 벤치마크 작업을 평가한다. 모델의 pre-training 계산 비용을 고려할 때, ViT는 매우 유리한 성능을 보이며, 더 낮은 pre-training 비용에서 대부분 인식 벤치마크에서 최첨단을 달성한다. 마지막으로 우리는 self-supervision을 사용하여 작은 실험을 수행하여 self-supervised ViT가 미래에 유망할 것임을 보인다.

4.1 SETUP

Datasets.
모델 확장성을 탐험하기 위해 우리는 1k 클래스와 1.3M 이미지를 갖는 ILSVRC-2012 ImageNet 데이터셋(우리는 이후로 이것을 ImageNet이라 부른다), 그 superset인 21k 클래스와 14M 이미지를 갖는 ImageNet-21k, 18k 클래스와 303M 고해상도 이미지를 갖는 JFT를 사용한다. 우리는 Kolesnikov et al(2020)을 따라 downstream 작업의 테스트 셋에 대해 pre-training 데이터셋의 중복을 제거한다. 이러한 데이터셋에서 학습된 모델을 여러 벤치마크 작업으로 전이한다. 원본 검증 라벨과 정제된 ReaL label을 사용한 ImageNet, CIFAR-10/100, Oxford-IIIT Pets, Oxford Flowers-102이다. 이러한 데이터셋에 대한 전처리는 Kolesnikov et al(2020)을 따른다.
우리는 또한 19-task로 구성된 VTAB classification suite에 대해 평가한다. VTAB은 task 당 1000개 학습 예제를 사용하여 다양한 작업 대한 low-data 전이를 평가한다. task는 3개 그룹으로 분할된다. Natural -위에서 언급한 Pets, CIFAR 등과 같은 작업. Specialized-의학과 위성 이미지. Structured -localization과 같은 기하학적 이해를 요구하는 작업
Model Variants.
우리는 Table 1에 요약된 것과 같이 BERT를 위해 사용된 이러한 것에서 ViT 설정을 기반한다. ‘Base’와 ‘Large’ 모델은 직접적으로 BERT에서 채택되고 우리는 더 큰 ‘Huge’ 모델을 추가한다. 개요 표기를 사용하는 것을 따라 모델 크기와 입력 패치 크기를 나타낸다. 예컨대 ViT-L/16은 16x16 입력 패치 크기를 사용하는 ‘Large’ 변종을 의미한다. Transformer의 시퀀스 길이는 패치 크기의 제곱에 역으로 비례한다. 따라서 더 작은 패치 크기를 갖는 모델은 계산적으로 더 비싸다.
baseline CNN의 경우 우리는 ResNet을 사용하지만 Batch Normalization layer를 Group Normalization으로 교체하고 표준 convolution을 사용한다. 이러한 수정은 transfer를 개선하고 우리는 수정된 모델을 ‘ResNet(BiT)’라 부른다. 하이브리드에 대해 우리는 중간 feature map을 하나의 픽셀의 패치 크기를 갖는 ViT로 공급한다. 다양한 시퀀스 길이로 실험하기 위해 우리는 (i) regular ResNet50의 stage 4 출력을 취하거나 (ii) stage 4를 제거하고 stage 3의 동일한 수의 레이어를 놓고(레이어의 전체 수를 유지하기 위해), 이 확장된 stage 3의 출력을 취한다. option (ii)는 4배 더 긴 시퀀스 길이에서 결과와 더 비싼 ViT 모델을 발생시킨다.
Training & Fine-tuning.
우리는 ResNet을 포함하여 모든 모델을 Adam을 사용하여 훈련한다. 여기서 β1=0.9,β2=0.999\beta_1 = 0.9, \beta_2 = 0.999이고, 배치크기는 4096이고, 0.1의 높은 weight decay를 적용한다. 우리는 이것이 모든 모델의 전이에 유용하다는 것을 발견했다(부록 D.1에서는 일반적인 관행과 달리 우리의 설정에서 Adam이 ResNet에 대한 SGD 보다 약간 더 잘 작동한다는 것을 보인다). linear learning rate warm-up과 decay를 사용하며 자세한 내용은 부록 B.1 참조. fine-tuning을 위해 우리는 모든 모델에 대해 momentum을 사용하는 SGD와 배치 크기 512를 사용한다. 부록 B.1.1 참조. Table 2의 ImageNet 결과를 위해 우리는 더 높은 해상도에서 fine-tune 한다. ViT-L/16에 대해 512, ViT-H/14에 대해 518. 또한 0.9999의 factor로 Polyak & Juditsky(1992) 평균화를 사용한다.
Metrics.
우리는 downstream 데이터셋에 대한 결과는 few-shot 또는 fine-tuning 정확도를 통해 리포트한다. Fine-tuning 정확도는 각 모델을 해당 데이터셋에 대해 fine-tuning한 후의 성능을 포착한다. Few-shot 정확도는 학습 이미지의 부분집합의 (frozen) representation을 {1,1}K\{-1, 1\}^K 타겟 벡터에 매핑하는 regularized least-squares regression 문제를 해결하여 얻어진다. 이 공식화를 통해 우리는 정확한 해를 닫힌 형식으로 얻을 수 있다. 우리가 주로 fine-tuning 성능에 초점을 맞추지만, fine-tuning은 매우 비쌀 수 있는 경우 빠른 실시간 평가를 위해 때때로 linear few-shot 정확도를 사용한다.

4.2 COMPARISON TO STATE OF THE ART

우리는 우선 우리의 가장 큰 모델—ViT-H/14와 ViT-L/16—을 문헌에서 최첨단 성능을 보이는 CNN 모델과 비교한다. 첫 번째 비교 대상은 Bit Transfer(BiT)이다. 이것은 대규모 ResNet을 사용하여 supervised transfer learning을 수행한다. 두 번째는 Noisy Student이다. 이것은 라벨이 제거된 ImageNet과 JFT-300M에서 semi-supervised learning을 사용하여 학습된 대규모 EfficientNet이다. 현재 Noisy Student는 ImageNet에서 최첨단이고 BiT-L은 여기서 리포트된 다른 데이터셋에서 최고 성능을 보인다. 모든 모델은 TPUv3 하드웨어에서 학습되고 우리는 그들의 pre-train에 취해진 TPUv3-core-days를 리포트 한다. 즉 학습에 사용된 TPU v3 core 수(칩당 2)에 학습 일수를 곱한 값이다.
Table 2는 결과를 보여준다. JFT-300M에서 pre-trained 더 작은 ViT-L/16 모델이 모든 작업에서 BiT-L(동일한 데이터셋에서 pre-trained)을 능가하면서도 학습에 대한 계산 자원을 상당히 적다. 더 큰 모델인 ViT-H/14는 성능을 추가로 개선한다. 특히 더 도전적인 데이터셋인 ImageNet, CIFAR-100과 VTAB suite에서 두드러진다. 흥미롭게도 이 모델은 여전히 prior 최첨단 보다 pre-train에 필요한 계산량이 상당히 적다. 그러나 pre-training 효율성은 아키텍쳐 선택 뿐만 아니라 학습 스케쥴, optimizer, weight decay 등과 같은 다른 파라미터에 의해서도 영향을 받는다는 것에 주의한다.
섹션 4.4에서 다양한 아키텍쳐에 대한 성능 vs 계산량의 통제된 연구를 제공한다. 마지막으로 공개된 ImageNet-21k 데이터셋에서 pre-trained인 ViT-L/16 모델도 대부분의 데이터셋에서 잘 수행되는 반면 더 적은 pre-train 자원을 취한다. 이것은 standard cloud TPUv3의 8개 코어를 사용하여 약 30일간 학습된다.
그림 2는 VTAB 작업을 각 그룹으로 분해하고 이 벤치마크에서 이전 SOTA 방법과 비교한다. BiT, VIVI—ImageNet과 Youtube에서 함께 학습된 ResNet—와 S4L—ImageNet에서 supervise와 semi-supervised learning. ViT-H/14는 Natural과 Structured 작업에서 BiT-R152x4와 다른 방법을 능가한다. Specialized에서는 상위 두 모델의 성능은 유사하다.

4.3 PRE-TRAINING DATA REQUIREMENTS

Vision Transformer는 대규모 JFT-300M 데이터셋에서 pre-trained일 때 잘 수행된다. ResNet 보다 vision에 대한 iductive bias이 더 적은 상황에서 핵심은 데이터 크기이다. 우리는 두 가지 실험 시리즈를 수행한다.
첫째로 우리는 증가하는 크기의 데이터셋에서 ViT 모델을 pre-train한다. ImageNet, ImageNet-21k, JFT-300M. 더 작은 데이터셋에서 성능을 높이기 위해, 우리는 3가지 기본 regularization 파라미터 —weight decay, dropout, label smoothing— 를 최적화한다. 그림 3은 ImageNet에 대한 fine-tuning 이후의 결과를 보인다(다른 데이터셋에 대한 결과는 Table 5에 보여진다). 가장 작은 데이터셋인 ImageNet에서 pre-trained할 때, Vit-Large 모델은 (적당한) regularization에도 불구하고 ViT-Base 모델과 비교하여 성능이 떨어진다. ImageNet-21k pre-training에서는 성능은 유사해진다. JFT-300M을 사용할 때만 더 큰 모델의 완전한 이점을 볼 수 있다. 그림 3은 또한 다양한 크기의 BiT 모델이 포괄하는 성능 영역을 보인다. BiT CNN은 ImageNet에서 ViT를 능가하지만, 더 큰 데이터셋에서는 ViT가 앞선다.
두 번째 우리는 JFT-300M 데이터셋의 9M, 30M, 90M 무작위 부분집합과 전체 데이터셋에서 모델을 학습한다. 작은 부분집합에 추가적인 regularization을 수행하지 않고 모든 설정에 대해 동일한 하이퍼파라미터를 사용한다. 이렇게 하여 regularization의 효과가 아니라 모델의 내재적 속성을 평가한다. 그러나 early-stopping을 사용하고 학습하는 동안 달성된 최고의 validation 정확도를 리포트한다. 계산을 줄이기 위해 우리는 full fine-tuning 정확도 대신 few-shot linear 정확도를 리포트한다. 그림 4는 결과를 보여준다. Vision Transformer는 작은 데이터셋에서 비슷한 계산 비용의 ResNet 보다 과적합된다. 예컨대 ViT-B/32는 ResNet50 보다 약간 더 빠르다. 이것은 9M 부분집합에서는 성능이 훨씬 나쁘지만 90M+ 부분집합에서는 더 좋다. ResNet152x2와 ViT-L/16에서도 동일하게 사실이다. 이 결과는 convolutional inductive bias가 작은 데이터셋에서 유용하지만, 큰 데이터셋에서는 관련된 패턴을 직접 학습하는 것이 충분하며, 심지어 유리하다는 직관을 강화한다.
전체적으로 ImageNet에서 few-shot 결과(그림 4) 뿐만 아니라 VTAB에 대한 낮은 데이터 결과(Table 2)는 매우 낮은 데이터 전이에 대해 유망해 보인다. ViT의 few-shot 속성의 추가 분석은 미래 작업의 흥미로운 방향에 존재한다.

4.4 SCALING STUDY

우리는 JFT-300M에서 전이 성능을 평가하여 다양한 모델의 통제된 스케일링 연구을 수행한다. 이 설정 데이터 크기는 모델의 성능을 제한하지 않으며, 각 모델의 performance vs pre-training 비용을 평가한다. 모델 집합에는 다음이 포함된다. 7개의 Resnet(7 epoch pretrained 된 R50x1, R50x2, R101x1, R152x1, R152x2와 14 epoch pre-trained 된 R152x2와 R200x3), 6가지 ViT(7 epoch pre-trained인 ViT-B/32, B/16, L/16과 14 epoch pre-trained인 L/16, H/14), 5가지 하이브리드(7 epoch pre-trained인 R50+ViT-B/32, B/16, L/32, L/16과 14 epoch pre-trained인 R50+ViT-L/16). (하이브리드에 대해 모델 이름 끝의 숫자는 패치 크기가 아니라 ResNet backbone에서 총 다운샘플링 비율을 타나낸다)
그림 5는 transfer performance vs total pre-training compute를 보인다(계산 비용에서 상세한 내용은 부록 D.5 참조). 모델별 상세 결과는 부록의 Table 6에서 제공된다. 몇 가지 패턴을 관찰할 수 있다. 첫째, Vision Transformer는 performance/compute trade-off에서 ResNet을 압도한다. ViT는 동일한 성능(5개 데이터셋에 대한 평균)을 얻기 위해 약 2-4x 덜 계산한다. 둘째, 하이브리드는 작은 계산 예산에서 약간 ViT를 능가하지만 더 큰 모델에 그 차이는 사라진다. 이는 convolutional local feature 처리가 임의의 크기에서 ViT를 지원할 것이라 예상할 수 있기 때문에 놀라운 결과이다. 셋째, Vision Transformer는 시도된 범위 내에서 포화가 나타나지 않는다. 이것은 미래 스케일링 노력에 동기를 부여한다.

4.5 INSPECTING VISION TRANSFORMER

Vision Transformer가 이미지 데이터를 어떻게 처리하는지에 대한 이해하기 위해, 우리는 그 내부 representation을 분석한다. Vision Transformer의 첫 번째 레이어는 평탄화된 패치를 더 낮은 차원 공간(방정식 1)으로 linearly project 한다. 그림 7(왼쪽)은 학습된 임베딩 필터의 상위 주성분을 보인다. 이 컴포넌트들은 각 패치 내의 미세한 구조에 대한 저차원의 표현의 그럴듯한 기저 함수와 유사해 보인다.
projection 후에 학습된 position embedding이 patch representation에 추가된다. 그림 7(중간)은 모델이 position embedding의 유사도에서 이미지 내의 거리를 인코딩하는 방법을 학습함을 보인다. 즉, 더 가까운 패치들은 더 유사한 position embedding을 갖는 경향이 있다. 게다가 row-column 구조가 나타난다. 동일한 row/column의 패치들은 유사한 embedding을 갖는다. 마지막으로 더 큰 grid에서 때때로 sinusoidal 구조가 나타난다(부록 D). position embedding이 2d 이미지 topology을 represent하는 방법을 학습한다는 사실은 수작업으로 만든 2d-aware 임베딩 변종이 개선을 만들지 않는 이유를 설명한다.
self-attention은 ViT가 가장 낮은 레이어에서도 전체 이미지에 걸쳐 정보를 통합하도록 한다. 우리는 네트워크가 이러한 능력을 어느 정도로 활용하는지 조사한다. 구체적으로 우리는 attention 가중치에 기반하여 정보가 통합되는 이미지 공간에서 평균 거리를 계산한다(그림 7, 오른쪽). 이 ‘attention distance’는 CNN에서 receptive field 크기와 유사하다. 우리는 일부 head가 가장 낮은 레이어에서도 이미지의 대부분에 attend 하고 있다는 것을 발견했다. 이것은 전역적으로 정보를 통합하는 능력이 실제로 모델에 의해 사용되었다는 것을 보인다. 다른 attention head들은 낮은 레이어에서 일관되게 작은 attention 거리를 갖는다. 이 고도로 지역화된 attention은 Transformer 전에 ResNet을 적용하는 하이브리드 모델에서 덜 두드러진다(그림 7 오른쪽). 이는 CNN의 초기 convolutional 레이어와 유사한 기능을 수행할 수 있음을 시사한다. 추가로 attention 거리는 네트워크 깊이가 증가함 따라 증가한다. 전반적으로 우리는 모델이 분류에 의미론적으로 관련된 이미지 영역에 attend 하는 것을 발견했다(그림 6).

4.6 SELF-SUPERVISION

Transformer는 NLP 작업에서 인상적인 성능을 보였다. 그러나 그들의 성공의 대부분은 훌륭한 확장성 뿐만 아니라 대규모 self-supervised pre-training에서도 비롯된다. 우리는 또한 BERT에서 사용된 maksed language modeling을 모방하여 self-supervision을 위한 masked patch prediction에 대한 예비 탐색을 수행한다. self-supervised pre-training을 사용하여, 우리의 더 작은 ViT-B/16 모델은 ImageNet에서 79.9% 정확도를 달성한다. 이는 처음부터 학습하는 것에 대해 2%의 상당한 개선이지만, 여전히 supervised pre-training에 비해 4% 뒤쳐진다. 부록 B.1.2는 추가 세부사항이 포함되어 있다. 우리는 contrastive pre-training의 탐색을 향후 연구를 위해 남겨둔다.

5 CONCLUSION

우리는 Transformer를 이미지 인식에 직접 적용하는 것을 탐색했다. computer vision에서 self-attention을 사용하는 prior 작업과 다르게, 우리는 초기 패치 추출 단계를 제외하고는 이미지-특화 inductive biases를 아키텍쳐에 도입하지 않는다. 대신 우리는 이미지를 패치의 시퀀스로 해석하고 NLP에서 사용된 표준 Transformer encoder로 처리한다. 이 단순하고 확장 가능한 전략은 대규모 데이터셋에 pre-training과 결합될 때 놀랍게도 잘 작동한다. 따라서 Vision Transformer는 많은 이미지 분류 데이터셋에서 최첨단과 일치하거나 초과하면서도 pre-train 비용이 상대적으로 저렴하다.
이러한 초기 결과가 고무적이지만, 여전히 많은 도전이 남아 있다. 하나는 ViT를 detection이나 segmentation 같은 다른 computer vision 작업에 적용하는 것이다. 우리의 결과와 Carion et al(2020)의 결과는 이 접근의 유망함을 나타낸다. 또 다른 도전은 self-supervised pre-training 방법을 계속 탐색하는 것이다. 우리의 초기 실험은 self-supervised pre-training에서 개선을 보이지만, self-supervised와 large-scale supervisd pre-training 사이에는 여전히 큰 격차가 있다. 마지막으로 ViT의 추가적인 확장은 성능 향상으로 이어질 수 있다.