인공지능/논문

CV - (VIT)AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE -(1)번역

BangPro 2024. 3. 14. 23:46
728x90

ABSTRACT

트랜스포머 아키텍처가 자연어 처리 태스크에서 사실상 표준이 되었지만 컴퓨터 비전 분야에서는 아직 제한적으로 사용되었음. CV 분야에서는 attention은 Convolution 네트워크와 연계되어 사용되거나 혹은 convolution 네트워크의 일부 구조를 대체하는 방식으로 적용되었음. 본 논문에서는 CNN과 연계하지 않고 순차적인 Image patch들을 활용한 트랜스포머 구조만으로도 이미지 분류 문제(태스크)를 수행하는데 매우 적합함을 보여줌. 방대한 양의 데이터로 사전 학습을 진행하였고 여러 개의 중간, 소규모 이미지 인식 기준에 적용하였습니다.(ImageNet, CIFAR-100, VTAB, etc.) Vision Transformer(ViT)는 기존의 SOTA Convolutional 네트워크에 비교해서 적은 양의 컴퓨터 자원으로 훌륭한 결과를 보였습니다.

1. Introduction

self-attention 기반의, 특히 트랜스포머 아키텍쳐는 NLP 분야에서 선택되는 모델이 되었음. 주요한 방식은 대규모 말뭉치(text-corpus)를 활용해서 사전 학습을 진행하고 세부 목적을 가진 데이터셋을 통해 미세 조정(fine-tuning)을 하는 방식이었음. 트랜스포머의 효율성과 확장성 덕분에 모델을 전례없는 규모로 학습시키는게 가능해졌습니다. 하지만 CV 분야에서는 convolutional 아키텍쳐가 아직 지배적입니다. NLP의 성공에 영향을 받아서 많은 연구들이 CNN에 self-attention을 적용하거나 심지어는 convolution을 완전히 대체하는 시도들을 했습니다.(Ramachandran et al. 2019). 후자의 경우 이론적으로 효율적이지만 특수한 attention 패턴을 사용해서 최신 하드웨어에서 효과적으로 적용되지는 못함. 따라서, 대규모 이미지 인식 분야에서는 전통적인 ResNet과 유사한 아키텍쳐들이 여전히 SOTA 모델임.

논문의 저자들은 트랜스포머 모델의 확장성이 NLP 분야에서 성공하는걸 목도하고 나서 표준 트랜스포머에 작은 변경만을 하고 이미지에 적용하였습니다. 이를 위해 이미지를 패치들로 나누고 이 패치들에 대해 순차적으로 선형 임베딩을 해서 트랜스포머의 입력값으로 사용하였음. 이미지 패치들은 NLP에서 토큰과 동일하게 처리됨. 모델을 지도학습 방식으로 학습시킴.

강한 정규화 없이 ImageNet과 같은 중간 크기의 데이터셋(데이터의 개수가)으로 학습을 했을때 비슷한 크기의 ResNet 모델보다 몇퍼센트정도 낮은 정확도를 보였음. 논문의 저자들은 이런 트랜스포머 구조가 CNN에 내재된 translation equivalence and locality와 같은 inductive bias가 부재해서 그렇다고 판단하였고, 그렇기 때문에 충분하지 않은 양의 데이터로 학습했을때는 트랜스포머 모델의 성능을 잘 나타내지 못한다고 주장함.

  • translation equivalence and locality**Translation Equivalence (이동 불변성)**
    • 정의: Translation equivalence, 또는 translation invariance는 객체가 이미지 내에서 이동하더라도 같은 방식으로 인식될 수 있어야 한다는 가정입니다. 즉, 이미지의 한 부분에 있는 특징이 다른 위치로 이동했을 때도 동일하게 인식되어야 한다는 것입니다.
    • 동작 방식: CNN에서 이는 주로 합성곱(convolution) 연산과 풀링(pooling) 계층을 통해 달성됩니다. 합성곱 필터는 이미지 전체에 걸쳐 동일하게 적용되므로, 어떤 특징이 이미지의 어느 부분에 나타나든 간에 같은 방식으로 처리됩니다. 풀링 계층은 더 나아가 공간적 해상도를 줄이면서도 중요한 특징을 유지함으로써 위치의 작은 변화에 대해 모델을 더 강인하게 만듭니다.
    Locality (국소성)
    • 정의: Locality 바이어스는 이미지의 국소적인 부분, 즉 작은 영역 내에서 중요한 정보를 추출하는 것을 의미합니다. 이는 이미지의 인접한 픽셀이 서로 관련이 깊다는 가정에 기초합니다.
    • 동작 방식: CNN에서 이 바이어스는 합성곱 필터가 작은 영역(예: 3x3 또는 5x5 픽셀)에만 적용되어 국소적인 특징을 추출함으로써 구현됩니다. 이를 통해 모델은 이미지의 작은 부분에서 패턴과 구조(예: 가장자리, 모서리, 질감 등)를 효과적으로 감지할 수 있습니다.이 두 인덕티브 바이어스는 CNN이 이미지 내의 다양한 위치에서 동일한 패턴을 인식하고, 또한 이미지의 작은 부분에서 중요한 정보를 추출하는 데 핵심적입니다. 이로 인해 CNN은 이미지 분류, 객체 감지 및 다양한 컴퓨터 비전 작업에서 뛰어난 성능을 발휘합니다.
  • CNN(Convolutional Neural Networks)의 인덕티브 바이어스 중 "translation equivalence"와 "locality"는 이 모델이 이미지와 같은 데이터를 처리할 때 핵심적인 역할을 합니다. 이 두 바이어스는 CNN의 구조와 작동 방식에 깊이 내재되어 있습니다.

하지만 더 큰 데이터셋(14M-300M images)에 대해 학습한 경우 이야기가 달라졌음. 논문의 저자들은 대규모 학습이 inductive bias를 능가함을 발견함. ViT는 충분한 양의 데이터로 사전 학습 시키고 데이터가 적은 다른 태스크에 적용했을때 훌륭한 결과를 보임. ImageNet-21k 데이터셋이나 in-house JFT-300M 데이터셋으로 사전학습을 시킨 경우 여러 개의 이미지 인식 기준에 대해 성능이 SOTA에 근접하거나 능가하는 것을 확인함.

(In particular, the best model reaches the accuracy of 88.55% on ImageNet, 90.72% on ImageNet-ReaL, 94.55% on CIFAR-100, and 77.63% on the VTAB suite of 19 tasks.)

2. Related Work

self-attention을 단순하게 이미지에 적용한다면 각 픽셀들이 다른 픽셀들을 얼마나 attend하는지 파악해야한다. 하지만 이는 현실적이지 않다. 따라서 트랜스포머를 이미지 처리에 활용하기 위해 과거에 다양한 시도들이 있었다.
Parmar et al. 에서는 local neighbor들에 대해서 self-attention을 적용함. 이러한 local multi-head dot-product self attention 블락이 CNN 구조를 완전히 대체함.

다른 접근에서는 전역적인 self-attention을 이미지에 적용하기위해 확장가능한 근사를 사용함.

이후로도 다양한 방법들이 시도되었지만 모두 복잡한 과정이 필요하다는 단점이 존재. 해당 논문과 유사한 접근을 한 경우도 있었음. 입력 이미지에서 2x2 패치를 추출하고 self-attention을 최상단에서 적용함. 이 모델은 viT와 매우 유사하지만 ViT 기존 연구에서 더 나아가 대규모의 사전학습이 트랜스포머를 SOTA CNN 모델들과 동급 혹은 그 이상으로 성능을 발휘하게 한다는 점을 입증함.

3. Method

모델을 디자인할때 저자들은 원래의 트랜스포머 형태를 최대한 따라가려고 함. 이렇게 간단한 셋업의 장점은 확장 가능한 NLP 트랜스포머 아키텍처와 그 효율적인 구현을 거의 바로 사용할 수 있다는 점이었음.

3.1 Vision Transformer(ViT)

전체적인 모델은 Model Overview에 묘사되어있다. 표준 트랜스포머가 1차원 토큰 인베딩들을 입력값으로 받음. 2D 이미지를 처리하기 위해 H x W x C인 이미지를 패치 시퀀스 $N \times (P^2 \times C)$ 로 변경함.

📌 H,W는 원래 이미지의 height, width 이고 C는 channel수, (P,P)는 각 이미지 패치의 해상도이고 $N =HW/P^2$은 패치의 개수로 트랜스포머의 입력 시퀀스의 길이이다.

트랜스포머는 모든 층(layer)에서 고정 벡터 사이즈 D를 유지하기때문에 저자들은 패치를 평탄화하고 학습 가능한 linear projection을 통해 D 차원에 맵핑했습니다. 저자들은 이 projection의 출력을 패치 임베딩(patch embedding)이라 표현함.

트랜스포머 인코더의 출력 상태($z^{0}{L}$)이 이미지의 표현 y역할을 하는 Bert의 [class] 토큰처럼, 저자들은 학습가능한 임베딩을 임베딩된 패치($z^{0}{0} = x_{class}$)들의 시퀀스에 앞에 추가합니다. 사전 학습과 미세 조정 과정 모두에서 classification head는 $z^{0}_{L}$에 붙어있음. Classification head는 사전 학습시에는 은닉층(hidden layer)이 한개인 MLP로 구현되었고 미세 조정시에는 하나의 선형 층으로 구현되었다.

Position embedding은 위치 정보(positional information)를 유지하기 위해 patch embedding에 추가된다. 저자들은 진보된 2D-aware 포지션 임베딩을 사용했지만 획기적인 성능향상이 관측되지 않아 학습가능한 1D 포지션 임베딩을 사용하였다. 그 결과로 출력되는 임베딩 벡터들의 시퀀스는 인코더의 입력값으로 사용된다.

트랜스포머 인코더는 Multi-head Self-Attention 층(MSA)과 MLP 블록들로 구성되어있고 각각의 블록 사이에서는 LayerNorm(LN)이 적용되고 잔차 연결(residual connection)이 존재한다. MLP는 GELU 비선형활성화 함수를 가진 두 개의 층을 포함한다.

GELU
Transformer Encoder

📌 이러한 잔차 연결 덕분에 깊게 layer를 깊게 쌓아 학습할 수 있었다.(ResNet에서도 사용하는 방법으로 이전 층의 정보가 그대로 들어와서 vanishing gradient 문제를 해결함)

VIT 내부 구조

z~y 각각은 층의 입력값과 출력값을 나타낸다. z0은 이미지가 임베딩된 패치로 변환된 트랜스포머 인코더의 입력값으로 쓰일 값이다. z’l은 이전 층의 z값이 LayerNorm을 지나고 멀티헤드셀프어텐션 layer를 지난 값에 잔차 연결로 이전 층의 z값이 그대로 더해진 값. 즉 위의 트랜스포머 인코더 그림의 아래 + 직후의 값이다. zl은 위의 + 직후의 값. L은 layer의 개수 혹은 깊이라고 생각하면 된다. 즉, $z_L^0$은 L번째 층을 지난 0번째 순서 z값이다.(0번째는 입력 순서)

Inductive bias

저자들은 Vision Transformer가 CNN에 비해 이미지 분야에서의 inductive bias가 훨씬 적다는 점에 주목했습니다. CNN에서 locality, 2차원 neighbor structure 및 translation equivariance가 전체 모델의 각 레이어에 적용됨. ViT에서는 self-attention layers가 전역적인 반면에 MLP layer만이 local하고 translationally equivalent하다. 2차원 neighborhood structure는 매우 드물게 사용된다 : 모델의 처음 부분에서 이미지를 patch들로 자를 때와 fine-tuning하는 시점에 서로 다른 해상도를 가진 이미지들의 포지션 임베딩을 조정할때 사용된다. 이외의 부분에서는 초기화 하는 시점의 포지션 임베딩은 patch들에 대한 2차원 위치에 대한 정보를 가지고 있지 않고 모든 patch들 간의 공간적 관계에 대한 정보는 처음부터 학습되어야한다.

Hybrid architecture

초기 상태의 이미지 패치를 대신해서 입력 시퀀스는 CNN의 feature map으로 구성해도 된다. 이러한 하이브리드 모델에서 patch embedding projection E는 CNN의 feature map에서 추출된 patch들에 적용된다. 특수한 케이스에서 patch는 1x1의 공간적인 크기(?)를 가질 수 있다. 다른 말로 하면 입력 시퀀스는 단순히 feature map의 공간적 차원을 평탄화 시키고 transformer 차원에 투영(projecting)함으로써 구할 수 있다. 입력 임베딩과 포지션 임베딩은 위에 서술한 것 처럼 추가된다.

3.2 FINE-TUNING AND HIGHER RESOLUTION

일반적으로 논문의 저자들은 ViT를 대규모 데이터셋으로 사전 학습시킨 이후에 목적(downstream task)에 따라 미세조정을 진행하였다. 이를 위해 저자들은 사전 학습된 예측 layer를 제거한 후 0으로 초기화된 D x K 피드포워드 층을 붙였다. (교수님께서 수업중에 fine-tuning 부분에서 언급하심) 대부분의 경우 사전학습하는 것보다 높은 해상도로 fine-tuning하는게 더 유익한 경우가 많았다. 높은 해상도의 이미지를 입력하는 경우(feed) patch의 사이즈는 동일하게 유지해서 시퀀스의 길이를 길게 유지한다. ViT는 메모리 제약사항만 없다면 임의의 길이의 시퀀스를 처리할 수 있지만 그렇게되면 사전학습된 포지션 인코딩이 의미를 잃는다. 따라서 논문의 저자들은 사전학습된 포지션 임베딩의 원래 이미지에서의 위치에 따라서 2차원 interpolation을 수행한다. 이러한 해상도 조정과 patch 추출이 ViT에 주입되는 유일한 이미지의 2D구조에 관한 inductive bias이다.

4. EXPERIMENTS

논문의 저자들은 ResNet, ViT과 hybrid 모델의 representation learning 능력에 대해 평가했다. 각 모델의 데이터 필요조건을 이해하기 위해서 서로 다른 사이즈의 데이터셋에 대해 사전 학습을 수행하고 여러 개의 benchmark task에 대해 평가한다. 모델을 사전학습하는 계산 비용을 고려하면 ViT는 대부분의 성능 평가 지표에서 적은 사전학습 비용으로도 sota를 달성한 것을 확인할 수 있음. 마지막으로 논문의 저자들은 자가 학습을 통한 소규모의 실험을 수행해서 자가학습된 ViT가 미래에 유망함을 보였음.

4.1 Setup

Datasets

모델의 확장성을 살펴보기 위해, 논문의 저자들은 1K개의 클래스와 1.3M 이미지를 가지고 있는 ILSVRC-2012 ImageNet dataset(이후에 언급되는 ImageNet은 위의 특정 데이터셋을 지칭한다)과 해당 데이터셋의 확대집합(superset)인 21K개의 클래스들과 14M개의 이미지를 가진 ImageNet-21K 데이터 셋과 18개의 클래스와 303M개의 고해상도 이미지를 가진 JFT 데이터셋으로 사용함. 논문의 저자들은 downstream task의 테스트 세트에 대해서 사전학습 데이터셋과의 중복을 제거함. 저자들은 위의 데이터셋으로 학습시킨 후 모델을 transfer시켜서 다른 벤치마크 task를 수행시킴. ImageNet의 검증 데이터셋과 CIFAR-10/100, Oxford-IIIT Pets, Oxford Flowers-102 데이터셋을 사용함.

또한 19개의 태스크를 가진 VTAB 분류 세트로 평가합니다. VTAB은 다양한 태스크에 대해 평가하는데 태스크당 1000개의 훈련 이미지를 사용함. 태스크는 3가지 그룹으로 구분되는데 Natural : Pets, CiFaR같은 자연물에 대한 것이고 Specialized 는 의료 혹은 위성 사진들에 대한 것이고 Structured : 지정학적 이해가 필요한 태스크입니다.

Model Variants

저자들은 Table 1에 소개된 바와 같이 BERT에 사용된 구성을 기반으로 ViT를 구성함. “Base” 와 “Large” 모델은 BERT에서 직접적으로 채택되었고 “Huge” 모델을 새롭게 추가하였습니다. 또한 모델의 input patch 사이즈를 모델명 뒤에 간략하게 추가합니다. 가령 ViT-L/16 은 16 x 16의 Input patch size를 가지는 ViT-Large 모델이라는 의미입니다. Transformer의 시퀀스 길이는 패치 크기의 제곱에 반비례하므로 패치 크기가 작은 모델은 계산 비용이 더 많이 듭니다. 즉, 총 학습해야할 이미지가

CNN 모델의 경우Batch Normalization 층을 Group Normalization으로 대체한 ResNet을 사용했습니다. 이러한 변경은 다른 데이터셋에 대한 성능을 향상시키고 이 모델을 “ResNet(BiT)”라 합니다. 하이브리드 모델의 경우 ViT에 한 픽셀을 patch size로 하는 피처맵을 입력합니다.

서로 다른 시퀀스의 길이에 대해 실험하기위해 저자들은 (i) ResNet50 모델의 stage4에서의 output을 취하거나 (ii) stage4를 삭제하고 같은 개수의 층을 stage3에 추가해서 총 레이어의 수를 유지해서 stage3의 output을 취하는 방법을 취함. (ii) 방법은 4배 더 긴 시퀀스 길이를 생성해서 ViT 모델 학습 비용이 더 비싸집니다.

Training & Fine-tuning

저자들은 ResNet을 포함해서 모든 모델을 학습시킴(Adam 옵티마이저 사용했고 batchsize = 4096, $\Beta_1=0.9,\Beta_2=0.999$, weight decay = 0.1. 이 수치들은 저자들이 확인한 모든 모델들이 transfer하기 좋은 수치였음. 사전학습시에는 learning rate warmup과 decay를 사용했고 fine-tuning 할때는 batchsize = 512이고 SGD를 사용함.

For ImageNet results in Table 2, we fine-tuned at higher resolution: 512 for ViT-L/16 and 518 for ViT-H/14, and also used Polyak & Juditsky (1992) averaging with a factor of 0.9999

사전학습시에 사용된 하이퍼 파라미터

Metrics

저자들은 downstream dataset의 결과를 few-shot 혹은 fine-tuning accuracy로 정리함. Fine-tuning 정확도는 각 데이터셋에서 모델을 fine-tuning한 후 각 모델의 성능을 측정함. Few-shot accuracy는 이미 학습된 모델의 frozen representation을 사용해서 제한된 학습 이미지를 특정 목표 벡터에 매핑하는 regularized least-squares regression 문제를 해결해서 구한다. 이 공식을 활용하면 닫힌 형태에서 정확한 해답을 얻을 수 있음. 물론 저자들이 fine-tuning accuracy에 집중하지만, fine-tuning에 비용이 너무 많이 드는 경우 즉석 평가를 위해 few-shot accuracy를 측정함.

4.2 COMPARISON TO STATE OF THE ART

저자들은 우선 가장 큰 ViT 모델인 ViT-H/14 and ViT-L/16를 sota CNN 모델들과 비교함. 첫 비교점은 대규모 ResNet을 사용해서 지도학습 방식으로 학습된 BiT이고 두번째는 Noisy Student로, 레이블이 제거된 ImageNet 및 JFT-300M에서 준지도 학습(semi-supervised learning)을 사용하여 훈련된 대규모 EfficientNet입니다. 논문 작성일 기준으로 Noisy student가 ImageNet 데이터셋의 sota 모델이고, BiT-L은 앞서 언급한 다른 데이터셋에 대해 sota 모델임. TPUv3 하드웨어로 학습함.

Table 2: Comparison with state of the art on popular image classification benchmarks. We re- port mean and standard deviation of the accuracies, averaged over three fine-tuning runs. Vision Transformer models pre-trained on the JFT-300M dataset outperform ResNet-based baselines on all datasets, while taking substantially less computational resources to pre-train. ViT pre-trained on the smaller public ImageNet-21k dataset performs well too. ∗Slightly improved 88.5% result reported in Touvron et al. (2020).

위의 Table 2를 확인해보면 JFT-300M 데이터셋으로 사전학습된 더 작은 ViT-L/16 모델의 성능이 같은 데이터셋에서 학습한 BiT-L 모델의 성능을 뛰어넘고 연산 비용도 상대적으로 더 적다. 더 큰 모델인 ViT-H/14의 경우 비교적 더 어려운 데이터셋인 ImageNet, CIFAR-100, and the VTAB 에서 성능이 더욱 상승함. 전반적으로 ViT 모델들이 기존의 모델을 앞서는 것을 볼 수 있음. ViT-H/14 모델의 경우 사전학습 비용이 기존의 sota 모델에 비교해서 적게 필요함. (물론 사전학습 비용은 아키텍쳐 선택뿐만 아니라 training schedule, optimizer, weight decay등의 파라미터에 따라 변동됨.) 마지막으로 ImageNet-21k 데이터셋으로 사전학습된 ViT-L/16 모델의 경우 사전학습 비용이 상대적으로 덜 사용되지만 대부분의 데이터셋에서 잘 수행함.(학습하는데 표준 cloud 8core TPUv3로 대량 30가량 걸림)

Figure 2: Breakdown of VTAB performance in Natural , Specialized , and Structured task groups.

위의 그림은 VTAB 태스크의 성능을 모델별로 비교함. BiT-L, VIVI는 ResNet 기반으로 ImageNet과 Youtube로 학습한 모델이고 S4L은 ImageNet 데이터를 지도학습과 반지도학습을 통해 학습한 모델임. Natural과 Structured task에서는 ViT가 성능이 좋고, Specialized 에서는 비슷한 것을 확인할 수 있습니다.

4.3 PRE-TRAINING DATA REQUIREMENTS

ViT는 대규모 JFT-300M 데이터셋에서 학습했을때 성능이 잘 나온다. ResNet에 비해 컴퓨터 비전 측면에서 inductive bias가 부족한데 여기서 데이터셋 크기의 중요성을 판단하기 위해 논문의 저자들은 두가지 실험을 진행함.

첫째로 저자들은 ViT를 점점 더 큰 사이즈의 데이터셋으로 학습시킴. ImageNet, ImageNet-21k, and JFT- 300M. 작은 데이터셋에서 모델의 성능을 향상시키기 위해 세가지 regularization 파라미터를 최적화함. (weight decay, dropout, and label smoothing)

Figure 3을 확인했을때 가장 작은 데이터 세트인 ImageNet에 대해 사전 학습된 경우 ViT-Large 모델은 정규화에도 불구하고 ViT-Base 모델에 비해 성능이 낮음. ImageNet-21k 사전 훈련을 사용하면 성능이 비슷함. JFT-300M을 통해서만 더 큰 모델의 이점을 최대한 활용할 수 있음. 또한 BiT가 ImageNet에서 ViT보다 성능이 좋지만 데이터셋의 크기가 커짐에 따라 ViT의 성능이 더 높아짐.

둘째, 전체 JFT-300M 데이터세트뿐만 아니라 9M, 30M, 90M 크기를 가진 무작위 하위 집합에 대해 모델을 교육합니다. 더 작은 하위 집합에 대해서는 추가 정규화를 수행하지 않으며 모든 설정에 동일한 하이퍼 매개변수를 사용합니다. 이런 방식으로 저자들은 정규화의 효과가 아닌 고유한 모델 속성을 평가합니다. 또한, early stopping을 사용해서 훈련 중에 달성된 최고의 검증 정확도를 보고합니다. 컴퓨팅을 절약하기 위해 전체 Fine-tuning 정확도 대신 몇 번의 linear accuracy를 보고합니다. Figure 4에는 결과가 포함되어 있음. Vision Transformer는 더 작은 데이터 세트에서 비슷한 계산 비용으로 학습했을때 ResNet보다 더 많이 과적합됩니다. 예를 들어 ViT-B/32는 ResNet50보다 약간 빠릅니다. 9M 데이터셋에서는 성능이 훨씬 떨어지지만 90M 이상의 데이터셋에서는 성능이 더 좋습니다. ResNet152x2 및 ViT-L/16의 경우에도 마찬가지입니다. 이 결과는 convolutional inductive bias가 작은 데이터 세트에는 유용하지만, 큰 데이터 세트의 경우 데이터에서 직접 적절한 패턴을 학습하는 것으로 충분하고 심지어 유익하다는 직관을 뒷받침함.

4.4 SCALING STUDY

논문의 저자들은 통제된 확장성 연구를 다양한 모델의 JFT-300M 데이터셋에서의 성능을 비교해서 수행함. 이 설정에서는 데이터 크기가 모델 성능에 병목 현상을 일으키지 않으며 각 모델의 사전 훈련 비용 대비 성능을 평가합니다. 모델 세트에는 다음이 포함됩니다:

7개 epoch 동안 사전 훈련된 7개의 ResNet, R50x1, R50x2 R101x1, R152x1, R152x2, 14개 에포크 동안 사전 훈련된 R152x2 및 R200x3

그리고 6개의 Vision Transformer, ViT-B/32, B/16, L/32, L/16, 7개 에포크에 대해 사전 훈련됨, 추가로 14개 에포크에 대해 사전 훈련된 L/16 및 H/14 그리고 5개의 하이브리드, R50+ViT-B/32, B/16, L/32, L/16은 7개의 에포크 동안 사전 훈련되었으며, R50+ViT-L/16은 14개의 에포크 동안 사전 훈련되었습니다(하이브리드의 경우 숫자 모델 이름 끝에 있는 것은 patch size가 아니라 ResNet backbone의 총 down sampling 비율을 나타냅니다.

Figure 5는 다른 태스크에서의 성능과 전체 사전 훈련 계산이 포함되어 있습니다(계산 비용에 대한 자세한 내용은 부록 D.5 참조). 모델별 세부 결과는 부록의 Table 6과 같음. 몇 가지 패턴을 관찰할 수 있습니다. 첫째, Vision Transformers는 성능/컴퓨팅 균형 측면에서 ResNet을 압도합니다. ViT는 동일한 성능을 달성하기 위해 약 2~4배 적은 컴퓨팅을 사용합니다(평균 5개 데이터 세트). 둘째, 하이브리드는 작은 계산 예산에서 ViT보다 약간 뛰어난 성능을 보이지만 더 큰 모델에서는 그 차이가 사라집니다. 이 결과는 다소 놀라운데, 컨벌루션 로컬 특징 처리가 어떤 크기에서든 ViT를 지원할 것이라고 기대할 수 있기 때문입니다. 셋째, Vision Transformers는 시도한 범위 내에서 포화되지 않는 것으로 나타나 향후 확장 노력에 동기를 부여합니다.

C ADDITIONAL RESULTS

맨 왼쪽부터 pretrain 한 데이터셋, 검증한 데이터셋, 정확도 순. 아래로 내려갈수록 pretrain 데이터셋의 크기가 커지고 대규모 모델의 성능이 높아짐

결론 : 사전학습 데이터셋의 크기가 클수록 대규모 ViT 모델의 성능이 높아짐.

자세한 모델 크기별 실험 결과


논문에 등장하는 개념 정리

트랜스포머의 inductive bias

  • 트랜스포머(Transformer) 구조는 주로 자연어 처리(NLP) 분야에서 널리 사용되며, 다른 머신 러닝 모델들과 마찬가지로 특정 인덕티브 바이어스를 가지고 있습니다. 이러한 바이어스들은 트랜스포머의 학습 방식과 성능에 영향을 미칩니다. 트랜스포머의 주요 인덕티브 바이어스는 다음과 같습니다:
  1. 순서 불변성(Sequence Invariance): 트랜스포머는 기본적으로 입력 시퀀스의 순서에 대해 무관심합니다. 즉, 순서 정보가 내재적으로 모델에 포함되어 있지 않습니다. 이는 위치 인코딩(Positional Encoding)을 통해 해결되는데, 이를 통해 모델이 단어의 순서 정보를 인식할 수 있게 됩니다.
  2. 전역적 문맥 인식(Global Context Awareness): 트랜스포머의 어텐션 메커니즘은 입력 시퀀스의 모든 요소(예: 단어) 간의 관계를 한 번에 고려합니다. 이는 모든 단어가 문장 전체의 맥락에서 해석되어야 한다는 가정을 반영합니다. 이로 인해 트랜스포머는 전체 문맥을 효과적으로 이해하고, 관련성이 높은 단어 간의 관계를 강조할 수 있습니다.
  3. 병렬 처리(Parallel Processing): 트랜스포머는 시퀀스의 각 요소를 동시에 처리할 수 있는 구조를 가지고 있습니다. 이는 모든 단어 또는 토큰을 동시에 고려하여 처리 속도를 향상시키고, 효율적인 학습을 가능하게 합니다.
  4. 유연한 길이 적응(Flexible Length Adaptation): 트랜스포머는 입력 시퀀스의 길이에 상대적으로 유연하게 적응할 수 있는 구조를 가지고 있습니다. 이는 다양한 길이의 문장이나 문서를 처리하는 데 유리합니다.

이러한 인덕티브 바이어스들은 트랜스포머가 특히 자연어 처리에서 뛰어난 성능을 발휘하는 데 중요한 역할을 합니다. 하지만 이러한 특성 때문에 트랜스포머는 순서 정보나 문맥 이해가 중요한 문제에 특히 적합합니다. 다른 유형의 데이터나 문제에 적용할 때는 이러한 특성들을 고려해야 합니다.

CNN inductive bias

  • 합성곱 신경망(Convolutional Neural Networks, CNN)은 특히 이미지 처리와 관련된 작업에서 강력한 성능을 발휘하는데, 이는 CNN이 가지는 몇 가지 중요한 인덕티브 바이어스(innovative biases) 덕분입니다. 이러한 바이어스들은 CNN이 이미지 데이터에서 유의미한 패턴과 특징을 효과적으로 학습하고 인식하도록 도와줍니다.
  1. 국소성 바이어스(Locality Bias): CNN은 각 합성곱 계층에서 소규모의 이웃 픽셀 그룹에 대해 연산을 수행합니다. 이는 이미지의 국소적인 특징(예: 가장자리, 색상 변화)이 중요하다는 가정에 기반합니다. 이로 인해 CNN은 이미지의 국소적인 패턴을 잘 감지하고, 이를 기반으로 보다 복잡한 특징을 학습합니다.
  2. 공간적 계층 구조(Spatial Hierarchical Structure): CNN은 여러 계층을 통해 점차적으로 복잡한 특징을 학습합니다. 초기 계층은 단순한 패턴(예: 선, 모서리)을 인식하고, 깊은 계층으로 갈수록 복잡한 패턴(예: 객체의 일부)을 인식합니다. 이는 이미지의 시각적 구조가 계층적으로 구성되어 있다는 가정을 반영합니다.
  3. 불변성 바이어스(Invariance Bias): CNN은 풀링 계층(pooling layers)을 사용하여 특징의 위치 변화에 대한 강인성을 학습합니다. 예를 들어, 최대 풀링(max pooling)은 특징이 이미지 내 다른 위치에 나타나더라도 인식할 수 있도록 합니다. 이는 이미지 내 객체의 위치나 크기가 달라져도 그 특징을 인식할 수 있어야 한다는 가정을 반영합니다.
  4. 매개변수 공유(Parameter Sharing): CNN은 동일한 가중치를 이미지 전체에 걸쳐 공유합니다. 이는 이미지의 다른 부분에 나타나는 유사한 패턴을 동일하게 처리해야 한다는 가정에 기초합니다. 이는 모델의 매개변수 수를 크게 줄이고, 학습 효율성을 높입니다.이러한 인덕티브 바이어스들은 CNN이 이미지와 관련된 다양한 문제(예: 이미지 분류, 객체 감지)에서 뛰어난 성능을 발휘하도록 도와줍니다. 그러나 동시에 이러한 가정들이 언제나 유효하지는 않을 수 있으므로, 특정 문제에 CNN을 적용할 때는 이러한 특성들을 고려해야 합니다.

VIT의 Linear Projection

  1. ViT의 선형 투영 목적: Vision Transformer의 맥락에서 선형 투영은 이미지의 원시 픽셀 데이터를 Transformer 모델에서 처리하기에 적합한 형식으로 변환하는 데 사용됩니다. 이는 원래 자연어 처리용으로 설계된 Transformer 아키텍처가 입력이 특정 형식, 즉 일반적으로 고정 크기 벡터 시퀀스일 것으로 예상하기 때문에 필요합니다.
  2. 선형 투영 과정:
    • 이미지 패칭: ViT 모델의 첫 번째 단계는 이미지를 고정 크기 패치(예: 16x16픽셀)의 그리드로 나누는 것입니다. 이는 텍스트를 단어나 토큰으로 나누는 것과 유사합니다.
    • 평면화 및 모양 변경: 그런 다음 각 패치가 긴 벡터로 평면화됩니다. 패치 크기가 16x16픽셀이고 이미지에 3개의 색상 채널(RGB)이 있는 경우 각 패치는 16×16×3=768개 요소의 벡터로 평면화됩니다.
    • 선형 투영: 평평한 패치 벡터는 원하는 치수 크기로 선형으로 투영됩니다. 이는 훈련 가능한 선형 변환(일반적으로 행렬 곱셈)을 사용하여 수행됩니다. Transformer 모델에 대해 원하는 차원 크기가 D인 경우 선형 투영에는 각 패치 벡터(예에서 크기 768)를 768×D 행렬로 곱하는 작업이 포함됩니다. 이 프로세스는 고차원 원시 픽셀 데이터를 Transformer에 적합한 저차원 공간에 효과적으로 매핑합니다.
  3. 선형 투영의 중요성:
    • Transformer와의 호환성: 선형 투영은 이미지 데이터를 Transformer가 효과적으로 처리할 수 있는 형식의 벡터 시퀀스로 변환하며, 각각은 패치를 나타냅니다.
    • 학습 가능한 매개변수: 선형 투영의 매개변수(즉, 행렬의 가중치)는 학습 가능합니다. 즉, 이미지 패치의 관련 특징을 더 잘 포착하기 위해 훈련 과정 중에 조정됩니다.
    • 차원성 감소: 입력 데이터의 차원성을 줄이는 데 도움이 되므로 특히 큰 이미지를 처리할 때 Transformer 모델을 더 쉽게 관리할 수 있습니다.

[class] token

원본 Transformer 모델에 최대한 가깝게 유지하기 위해 image representation으로 사용되는 추가 [class] 토큰을 사용했습니다. 그런 다음 이 토큰의 출력은 하나의 tanh층을 가진 다층 퍼셉트론(MLP)를 통해 클래스 예측으로 변환됩니다. 이 구조는 텍스트를 위한 Transformer 모델에서 차용되었고 본 논문 전체에서 사용됩니다. 이미지 패치 임베딩만을 사용하고 GAP(Global Average-Pooling)를 사용한 후 ResNet의 마지막 feature map처럼 linear classifier를 사용하려는 초기 시도는 성능이 매우 나빴습니다. 그러나 이는 추가 토큰 때문도 아니고 GAP 작업 때문도 아닌 것으로 나타났습니다. 대신, 성능 차이는 다른 학습 속도에 대한 요구 사항으로 완전히 설명됩니다. 즉, 층의 문제가 아니라 학습률의 문제였음.

 

two-dimensional neighborhood structure

2차원 이웃 구조의 개념을 자세히 설명하려면 이 용어가 이미지 처리 및 컴퓨터 비전, 특히 CNN(컨볼루션 신경망) 및 관련 알고리즘의 맥락에서 자주 사용된다는 점을 이해하는 것이 중요합니다. 이 개념을 단계별로 분석해 보겠습니다.

  1. 2차원 데이터 이해:
    • 이미지 처리에서 이미지는 일반적으로 2차원(2D) 픽셀 배열로 표현됩니다.
    • 각 픽셀에는 특정 위치(좌표)와 값(예: 강도 또는 색상 정보)이 있습니다.
  2. 픽셀의 이웃:
    • 픽셀의 이웃은 이미지에서 픽셀을 직접 둘러싸는 픽셀을 나타냅니다.
    • 2D 구조에서 이 이웃은 중앙 픽셀의 위, 아래, 왼쪽, 오른쪽 픽셀이라는 인접성 측면에서 정의되는 경우가 많습니다.
    • 동네 크기는 다를 수 있습니다. 예를 들어 3x3 이웃에는 중앙 픽셀과 그 주변의 8픽셀이 포함됩니다.
  3. CNN의 컨볼루션 작업:
    • CNN에서는 컨볼루션 작업에 2D 이웃 개념이 사용됩니다.
    • 컨볼루션에는 이미지를 가로질러 이동하는 작은 행렬인 필터(또는 커널)가 포함됩니다.
    • 필터가 이동함에 따라 각 단계에서 특정 픽셀 주변을 포함합니다.
  4. 단계별 컨볼루션:
    • 1단계: 작은 주변 영역(예: 3x3 픽셀)을 덮도록 이미지의 왼쪽 상단에 필터를 배치합니다.
    • 2단계: 주변의 각 픽셀 값에 필터의 해당 값을 곱하고 그 결과를 합산합니다.
    • 3단계: 합계는 특징 맵 또는 컨벌루션된 이미지의 일부를 구성하는 단일 출력 픽셀 값을 제공합니다.
    • 4단계: 필터를 오른쪽으로 한 픽셀(스트라이드) 밀어서 과정을 반복합니다.
    • 5단계: 전체 이미지에 대해 이 프로세스를 계속합니다. 필터는 각 이웃에서 특징(예: 가장자리, 질감)을 추출합니다.
  5. 특징 탐지에서 이웃의 중요성:
    • 2D 이웃 구조를 통해 네트워크는 이미지의 로컬 공간 관계를 이해할 수 있습니다.
    • CNN은 이미지의 작은 패치(이웃)를 한번에 분석함으로써 이미지 전체에 대한 이해를 구축할 수 있습니다.
  6. 가장자리 케이스 및 패딩:
    • 이미지 가장자리에 있는 픽셀의 경우 이웃이 실제 이미지를 넘어 확장될 수 있습니다.
    • 이를 처리하기 위해 패딩(이미지 주위에 여분의 픽셀을 추가하는 것)이 자주 사용되어 필터가 이미지 전체에 균일하게 적용될 수 있습니다.

요약하자면, 이미지 처리 및 CNN의 2차원 이웃 구조는 픽셀이 이미지의 작은 로컬 영역에서 그룹화되고 분석되는 방식을 나타냅니다. 이 개념은 CNN이 이미지의 특징과 패턴을 감지하여 이미지 분류, 객체 감지 등과 같은 작업을 수행하는 방법의 기본입니다.