An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

2022. 3. 3. 18:02Computer Vision

An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

 

Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby

 

Abstract

트랜스포머 아키텍처는 자연어 처리 작업의 실질적인 표준이 되었지만 컴퓨터 비전에 대한 적용은 여전히 제한적이다.
비전에서 attention는 컨볼루션 네트워크와 함께 적용되거나 컨볼루션 네트워크의 특정 구성 요소를 대체하면서 전체적인 구조를 유지하는 데 사용된다.
우리는 CNN에 대한 이러한 의존성이 필요하지 않으며 이미지 패치 시퀀스에 직접 적용된 순수한 트랜스포머가 이미지 분류 작업에서 매우 잘 수행될 수 있음을 보여준다.
많은 양의 데이터에 대해 사전 학습된 여러 개의 중형 또는 소형 이미지 인식 벤치마크(ImageNet, CIFAR-100, VTAB 등)로 전송하면 ViT(Vision Transformer)는 학습에 훨씬 적은 계산 리소스를 요구하면서 SOTA 컨볼루션 네트워크에 비해 우수한 결과를 얻을 수 있다.

 

 

1. Introduction

Self-attention 기반 아키텍처, 특히 Transformer(Vaswani 등, 2017)는 자연어 처리(NLP)에서 선택 모델이 되었다.
지배적인 접근법은 큰 텍스트 말뭉치를 사전 학습한 다음 더 작은 작업별 데이터 세트에서 미세 조정하는 것이다(Devlin 등, 2019).
Transformer의 계산 효율성과 확장성 덕분에 100B 이상의 매개 변수를 가진 전례 없는 크기의 모델을 학습하는 것이 가능해졌다(Brown et al., 2020; Lepikhin et al., 2020).
모델과 데이터 세트가 증가해도 여전히 성능을 포화시킬 기미가 보이지 않는다.

 

그러나 컴퓨터 비전에서는 컨볼루션 아키텍처가 지배적이다(LeCun 등, 1989; Krizhevsky 등, 2012; He 등, 2016).
NLP 성공에서 영감을 받아 여러 작품이 CNN과 유사한 아키텍처를 self-attention(Wang et al., 2018; Carion et al., 2020)과 결합하려고 시도하며, 일부는 컨볼루션을 완전히 대체한다(Ramachandran et al., 2019; Wang et al., 2020a).
후자의 모델은 이론적으로는 효율적이지만 전문화된 attention 패턴의 사용으로 인해 현대 하드웨어 가속기에서 아직 효과적으로 확장되지 않았다.
따라서 대규모 이미지 인식에서 고전적인 ResNet 유사 아키텍처는 여전히 SOTA다(Mahajan 등, 2018; Xie 등, 2020; Kolesnikov 등, 2020).

 

NLP의 Transformer 스케일링 성공에서 영감을 받아 최소한의 수정으로 이미지에 직접 표준 Transformer를 적용하는 실험을 한다.
이를 위해 이미지를 패치로 분할하고 이러한 패치의 선형 임베딩 시퀀스를 Transformer에 대한 입력으로 제공한다.
이미지 패치는 NLP 응용 프로그램에서 토큰(워드)과 동일한 방식으로 처리됩니다.
우리는 지도 방식의 이미지 분류에 대해 모델을 학습한다.

 

강력한 정규화 없이 ImageNet과 같은 중간 크기의 데이터 세트에 대해 학습하면 이러한 모델은 비슷한 크기의 ResNet보다 몇 퍼센트 낮은 정확도를 산출한다.
이 실망스러운 결과는 예상할 수 있다: Transformer는 CNN에 내재된 일부 귀납적 편견이 부족하다, 예를 들어, 번역 등분산성 및 지역성, 따라서 불충분한 양의 데이터에 대해 학습할 때 잘 일반화되지 않는다.

 

그러나 모델이 더 큰 데이터 세트(14M-300M 이미지)에 대해 훈련되면 그림이 바뀐다.
우리는 대규모 훈련이 귀납적 편견을 능가한다는 것을 발견했다.
ViT(Vision Transformer)는 충분한 규모로 사전 학습을 받고 더 적은 데이터 포인트로 작업으로 전환하면 우수한 결과를 얻는다.
공용 ImageNet-21k 데이터 세트 또는 in-house JFT-300M 데이터 세트에서 사전 학습을 받을 때 ViT는 여러 이미지 인식 벤치마크에서 SOTA 기술에 근접하거나 능가합니다.
특히, 최상의 모델은 ImageNet에서 88.55%, ImageNet-ReaL에서 90.72%, CIFAR-100에서 94.55%, 19개 작업으로 구성된 VTAB 제품군에서 77.63%의 정확도에 도달한다.

 

 

2. Related Work

Transformers는 Vaswani et al.(2017)이 기계 번역을 위해 제안했으며, 이후 많은 NLP 작업에서 SOTA 방법이 되었다.
대형 트랜스포머 기반 모델은 종종 대형 말뭉치에서 사전 학습을 받은 후 당면한 작업에 맞게 미세 조정된다.
BERT(Devlin et al., 2019)는 노이즈 제거 self-supervised 사전 학습 과제를 사용하는 반면, GPT 작업 라인은 사전 학습 과제로서 언어 모델링을 사용한다(Radford et al., 2018; 2019; Brown et al., 2020).

 

이미지에 self-attention을 순진하게 적용하려면 각 픽셀이 다른 모든 픽셀에 집중해야 합니다.
픽셀 수가 2차 비용인 경우에는 실제 입력 크기로 확장되지 않습니다.
따라서 이미지 처리의 맥락에서 Transformers를 적용하기 위해 과거에 몇 가지 근사치가 시도되었다.
Parmar et al.(2018)은 전역이 아닌 각 쿼리 픽셀에 대해 지역 이웃에서만 self-attention을 적용했다.
그러한 로컬 multi-head dot-product self-attention 블록은 컨볼루션을 완전히 대체할 수 있다(Hu 등, 2019; Ramachandran 등, 2019; Zhao 등, 2020).
다른 작업 라인에서 Sparse Transformers(Child et al., 2019)는 이미지에 적용할 수 있도록 전역 self-attention에 대한 확장 가능한 근사치를 사용한다.
Attention을 스케일링하는 다른 방법은 극단적인 경우에만 개별 축을 따라 다양한 크기의 블록(Weissenborn et al., 2019)에 적용하는 것이다(Ho et al., 2019; Wang et al., 2020a).
이러한 많은 전문 attention 아키텍처는 컴퓨터 비전 작업에서 유망한 결과를 보여주지만 하드웨어 가속기에 효율적으로 구현하려면 복잡한 엔지니어링이 필요하다.

 

우리와 가장 관련이 있는 것은 입력 이미지에서 크기가 2x2인 패치를 추출하고 위에 완전한 self-attention을 적용하는 Cordonnier et al.(2020) 모델이다.
이 모델은 ViT와 매우 유사하지만, 우리의 연구는 더 나아가 대규모 사전 학습이 vanilla transformers를 최첨단 CNN과 (또는 더 나은) 경쟁력을 갖게 한다는 것을 입증한다.
또한, Cordonnier et al.(2020)은 2x2 픽셀의 작은 패치 크기를 사용하여 모델을 작은 해상도 이미지에만 적용할 수 있으며, 중간 해상도 이미지도 취급한다.

 

또한 컨볼루션 신경망(CNN)을 self-attention의 형태와 결합하는 것에 대한 많은 관심이 있어왔다, 예를 들어 이미지 분류를 위한 피쳐 맵을 강화하거나(Bello et al., 2019) self-attention을 이용하여 CNN의 출력을 추가로 처리함으로써, 예: 물체 검출(Hu et al., 2018; Carion et al., 2020), 비디오 처리(Wang et al., 2018; Sun et al., 2019), 이미지 분류(Wu et al., 2020), 감독되지 않은 물체 발견(Locatello et al., 2020) 또는 통합 텍스트 비전 작업(Chen et al., 2020c;  Lu et al., 2019; Li et al., 2019)을 위한 것이다.

 

최근 나온 또 다른 관련 모델은 이미지 해상도와 색 공간을 줄인 뒤 이미지 픽셀에 Transformers를 적용하는 image GPT(iGPT)(Chen et al., 2020a)다.
모델은 생성 모델로 비지도 방식으로 학습되며, 그 결과 표현은 분류 성능에 대해 미세 조정되거나 선형적으로 조사되어 ImageNet에서 최대 72%의 정확도를 달성할 수 있다.

 

우리의 연구는 표준 ImageNet 데이터 세트보다 더 큰 규모로 이미지 인식을 탐구하는 논문 모음에 추가된다.
추가 데이터 소스를 사용하면 표준 벤치마크에 대한 SOTA를 달성할 수 있다(Mahajan et al., 2018; Touvron et al., 2019; Xie et al., 2020).
또한 Sun et al.(2017)은 CNN 성능이 데이터 세트 크기에 따라 어떻게 확장되는지, Kolesnikov et al.(2020)은 어떻게 확장되는지 연구한다, Dolonga et al.(2020)은 ImageNet-21k 및 JFT-300M과 같은 대규모 데이터 세트에서 CNN 전이 학습에 대한 경험적 탐색을 수행한다.
우리는 이 두 개의 후기 데이터 세트에도 초점을 맞추지만, 이전 작업에 사용된 ResNet 기반 모델 대신 Transformer를 학습시킨다.

 

 

3. Method

모델 설계에서 우리는 가능한 한 원래의 Transformers(Vaswani et al., 2017)를 따른다.
이렇게 의도적으로 간단한 설정의 장점은 확장 가능한 NLP Transformer 아키텍처와 효율적인 구현을 거의 즉시 사용할 수 있다는 것입니다.

그림 1: 모델 개요. 이미지를 고정 크기 패치로 분할하고 각 패치를 선형으로 내장하고 위치 임베딩을 추가한 다음 결과 벡터 시퀀스를 표준 Transformer 인코더에 공급한다. 분류를 수행하기 위해 학습 가능한 "분류 토큰"을 시퀀스에 추가하는 표준 접근 방식을 사용한다. Transformer 인코더의 그림은 Vaswani et al.(2017)에서 영감을 받았다.

3.1 Vision Transformer (ViT)

모델의 개요는 그림 1에 설명되어 있습니다.
표준 Transformer는 토큰 임베딩의 1D 시퀀스를 입력으로 수신합니다.
2D 영상을 처리하기 위해 이미지 x ∈ R^(H x W x C)를 일련의 평평한 2D 패치 x_p ∈ R^(N x (P^2 · C))로 재구성한다, 여기서 (H, W)는 원본 영상의 해상도, C는 채널의 수, (P, P)는 각 영상 패치의 해상도, N = HW/P^2는 결과 패치 수다, 이는 Transformer의 유효 입력 시퀀스 길이로도 사용됩니다.
Transformer는 모든 레이어를 통해 일정한 잠재 벡터 크기 D를 사용하므로 패치를 평평하게 만들고 학습 가능한 선형 프로젝션(식 (1))으로 D 치수에 매핑한다.
우리는 이 프로젝션 결과를 패치 임베딩이라고 부릅니다.

 

BERT의 [class] 토큰과 유사하게, 우리는 학습 가능한 임베딩을 내장 패치 시퀀스(z^0_0 = x_class)에 추가하며, 그 상태는 트랜스포머 인코더(z^0_L)의 출력에서 이미지 표현 y(식 (4))로 작용한다.
사전 학습 및 미세 조정 중 모두 분류 헤드가 z^0_L에 부착됩니다.
분류 헤드는 사전 학습 시간에 하나의 숨겨진 레이어가 있는 MLP와 미세 조정 시간에 단일 선형 레이어에 의해 구현된다.

 

위치 정보를 유지하기 위해 위치 임베딩이 패치 임베딩에 추가됩니다.
우리는 보다 고급 2D 인식 위치 임베딩(부록 D.4)을 사용함으로써 상당한 성능 향상을 관찰하지 못했기 때문에 표준 학습 가능한 1D 위치 임베딩을 사용한다.
내장 벡터의 결과 시퀀스는 인코더에 대한 입력 역할을 한다.

 

Transformer 인코더(Vaswani et al., 2017)는 다중 헤드 self-attention(MSA, 부록 A 참조)와 MLP 블록(식 (2), (3))의 교대로 구성된다.
모든 블록 앞에 레이어놈(LN)이 적용되고 모든 블록 뒤에 잔차 연결이 적용된다(Wang et al., 2019; Baevski & Auli, 2019).
MLP에는 GELU 비선형성을 갖는 두 개의 레이어가 포함되어 있습니다.

Inductive bias.

우리는 ViT가 CNN보다 이미지별 유도 편향이 훨씬 적다는 것을 주목한다.
CNN에서는 지역성, 2차원 이웃 구조 및 번역 등변성이 전체 모델에 걸쳐 각 레이어로 구워진다.
ViT에서 MLP 계층만이 지역적이고 번역적으로 등변인 반면, self-attention 계층은 전역적이다.
2차원 인접 구조는 모델 시작 시 이미지를 패치로 잘라내고 해상도가 다른 이미지의 위치 임베딩을 조정하기 위한 미세 조정 시간에 매우 적게 사용됩니다(아래 설명 참조).
그 외에는 초기화 시 위치 임베딩에는 패치의 2D 위치에 대한 정보가 없으며 패치 간의 모든 공간 관계를 처음부터 학습해야 한다.

 

Hybrid Architecture.

원시 이미지 패치의 대안으로, 입력 시퀀스는 CNN의 피쳐 맵에서 형성될 수 있다(LeCun et al., 1989).
이 하이브리드 모델에서 패치 임베딩 프로젝션 E(식 (1))는 CNN 피쳐 맵에서 추출한 패치에 적용된다.
특수한 경우로 패치는 공간 크기 1x1을 가질 수 있으며, 이는 입력 시퀀스가 피쳐 맵의 공간 치수를 평탄화하고 Transformer 치수에 프로젝션하여 얻어지는 것을 의미한다.
위와 같이 분류 입력 임베딩 및 위치 임베딩이 추가됩니다.

 

3.2 Fine-tuning and Higher Resolution

일반적으로, 우리는 대규모 데이터 세트에서 ViT를 사전 학습하고 (더 작은) 다운스트림 작업에 맞게 미세 조정한다.
이를 위해, 우리는 사전 학습된 예측 헤드를 제거하고 제로 초기화 D x K 피드포워드 레이어를 연결한다, 여기서 K는 다운스트림 클래스의 수이다.
사전 학습보다 높은 해상도로 미세 조정하는 것이 종종 유익하다(Touvron et al., 2019; Kolesnikov et al., 2020).
고해상도 이미지를 공급할 때는 패치 크기를 동일하게 유지합니다, 따라서 유효 시퀀스 길이가 더 길어집니다.
ViT는 임의의 시퀀스 길이(메모리 제약까지)를 처리할 수 있지만, 사전 학습된 위치 임베딩은 더 이상 의미가 없을 수 있다.
따라서 우리는 원본 이미지에서의 위치에 따라 사전 학습된 위치 임베딩의 2D 보간을 수행한다.
이 해상도 조정 및 패치 추출은 영상의 2D 구조에 대한 유도 바이어스를 ViT에 수동으로 주입하는 유일한 지점입니다.

 

 

4. Experiments

 

 

 

5. Conclusion

우리는 Transformer를 이미지 인식에 직접 적용하는 방법을 알아봤다.
컴퓨터 비전의 self-attention을 사용한 이전 작업과 달리, 초기 패치 추출 단계 외에 이미지별 유도 편향을 아키텍처에 도입하지 않는다.
대신, 우리는 이미지를 일련의 패치로 해석하고 NLP에서 사용되는 표준 Transformer 인코더에 의해 처리한다.
이 간단하지만 확장 가능한 전략은 대규모 데이터 세트에 대한 사전 학습과 결합할 때 놀라울 정도로 잘 작동한다.
따라서 ViT는 많은 이미지 분류 데이터 세트에서 SOTA 기술과 일치하거나 능가하는 동시에 사전 학습에는 상대적으로 저렴하다.

 

이러한 초기 결과는 고무적이지만, 많은 과제가 남아있다.
하나는 ViT를 검출, 분할과 같은 다른 컴퓨터 비전 작업에 적용하는 것입니다.
우리의 결과는 Carion et al.(2020)의 결과와 결합되어 이 접근법의 가능성을 나타낸다.
또 다른 과제는 자가 지도하는 사전 학습 방법을 계속 탐구하는 것이다.
우리의 초기 실험은 자가 지도 사전 학습에서 개선된 것을 보여주지만, 여전히 자가 지도 사전 학습과 대규모 지도 사전 학습 사이에는 큰 격차가 있다.
마지막으로, ViT의 추가적인 확장은 성능 향상으로 이어질 것이다.