배경: Transformer 구조는 자연어 처리(NLP) 분야에서 뛰어난 성능으로 표준이 되었지만, 컴퓨터 비전 분야에서는 그 적용이 제한적이었다. 컴퓨터 비전에서 Attention 기법은 주로 CNN(Convolutional Neural Networks)과 결합하거나, CNN 구성 요소를 대체하는 형태로 간접적으로만 활용되었었다.
혁신: 구글 연구팀은 이러한 상황을 변화시키기 위해, 이미지를 작은 패치들로 나누고 이를 시퀀스로 처리하는 방식을 통해, CNN 없이도 Transformer 모델을 직접적으로 이미지 분류 작업에 적용하였다. 이 접근 방식은 이미지를 일련의 패치로 변환하여 Transformer에 입력으로 제공함으로써, 이미지 내의 글로벌한 컨텍스트를 효과적으로 학습할 수 있게 한다.
성능: 연구팀은 ImageNet, JFT와 같은 대규모 데이터셋으로 모델을 사전 학습한 뒤, 중간 크기 또는 소규모의 이미지 데이터셋에 대한 전이 학습을 통해 기존의 ResNet 기반 SOTA 모델보다 더 우수한 성능과 적은 계산량을 달성하였다.
머신러닝 모델 설계의 근본적인 목적은 관측 가능한 데이터를 통해 미지의 데이터의 특성이나 분포를 예측하는 것이다. 이 과정에서 모델은 제한된 데이터로부터 일반화된 패턴을 학습하여, 보지 못한 데이터에 대해 추론할 수 있어야 한다. 이러한 일반화 능력의 핵심 요소 중 하나가 바로 'inductive bias'이다.
Layer Normalization (Layer Norm)은 딥러닝 모델에서 사용되는 일종의 정규화 기법으로, 특히 순환 신경망(RNN)과 Transformer 모델에서 사용된다. Layer Normalization의 주요 목적은 학습 과정을 안정화하고 가속화하는 것이다.
Layer Normalization은 각 입력 샘플 내에서 특성 차원에 대해 정규화를 수행한다. 즉, 모든 특성(또는 숨겨진 유닛)에 대해 평균과 분산을 계산하고, 이를 사용하여 정규화한다. 이 과정은 배치 내의 다른 샘플들과 독립적으로 이루어지며, 이는 Batch Normalization과의 주요 차이점 중 하나이다.
Layer Normalization에서는 각 샘플 의 각 특성 에 대해 다음과 같이 정규화를 수행한다:
여기서,
배치 크기에 무관: Layer Norm은 배치 크기에 의존하지 않기 때문에, 작은 배치 크기에서도 잘 작동한다. 이는 특히 메모리 리소스가 제한적인 경우나 RNN과 같이 배치 정규화를 적용하기 어려운 구조에서 유용하다.
학습 안정화 및 가속화: Layer Normalization은 학습 과정을 안정화시키고, 모델이 더 빠르게 수렴하도록 돕는다.
내부 Covariate Shift(공변량 변화) 감소: 모델 학습 중 입력 데이터의 분포가 변하는 내부 공변량 변화를 줄여준다. 이는 특히 깊은 신경망에서 중요한 효과적이다.
Layer Normalization은 Transformer 아키텍처에서 특히 중요한 역할을 한다. Transformer 모델의 각 서브 레이어 후에 Layer Norm을 적용하여, 모델의 학습을 안정화하고 향상시키는 데 도움을 준다.
클래스 임베딩: Learnable class 임베딩을 추가하여, 이미지 분류 작업에 사용된다.
위치 임베딩: 각 패치 및 클래스 임베딩에 learnable position 임베딩을 더하여, 패치의 순서 정보를 제공한다.
이러한 단계를 통해 ViT는 이미지 내의 복잡한 패턴과 정보를 학습하고, 이를 바탕으로 이미지 분류 작업을 수행한다. ViT는 Transformer의 self-attention 메커니즘을 활용하여 이미지의 전반적인 컨텍스트와 각 패치 간의 관계를 효과적으로 모델링한다.
ViT는 CNN보다 이미지 특화 inductive bias가 적다. CNN은 locality, two-dimensional neighborhood structure, translation equivariance을 모델 전체에 걸쳐 내장하고 있다. 반면 ViT에서는 MLP만이 locality와 translation equivariance한 특징을 가지고 있으며, self-attention layer는 전역적인 정보를 처리하기 때문에 inductive bias가 낮다.
아래 방법을 통해 ViT는 CNN에 비해 상대적으로 낮은 inductive bias를 가지고 있음에도 불구하고, 학습을 통해 이미지의 전역적 및 지역적 특성을 효과적으로 이해하고 처리할 수 있게 된다.
Patch Extraction (패치 추출): ViT는 이미지를 여러 작은 패치로 분할하여 처리한다. 이미지의 2차원 구조를 일정 부분 활용하는 것으로, 각 패치는 이미지의 한 부분을 대표한다. 이러한 방식으로 이미지를 처리함으로써, 모델은 이미지의 전체 구조보다는 개별 패치를 기반으로 정보를 학습하게 된다. CNN에서의 필터가 지역적인 특징을 추출하는 것과 비슷한 역할을 하지만, 패치 간의 공간적 관계나 구조는 모델이 데이터로부터 직접 학습해야 한다.
Resolution Adjustment (해상도 조정): ViT는 다양한 해상도의 이미지에 대해 모델을 미세 조정할 때 positional embedding을 조절한다. 이는 모델이 다른 해상도의 이미지를 처리할 때, 패치 간의 공간적 관계가 변할 수 있음을 인식하고 이에 적응할 수 있도록 한다. 예를 들어, 더 높은 해상도의 이미지에서는 같은 객체가 더 많은 패치에 걸쳐 나타날 수 있으며, 이에 따라 위치 임베딩을 조정하여 모델이 이러한 변화를 반영할 수 있게 한다.
CNN 기반 Feature Map 활용: Vision Transformer(ViT)는 이미지를 직접적인 패치로 분할하여 처리하는 대신, CNN을 통해 추출된 feature map을 입력 시퀀스로 활용할 수 있습니다. 이 접근 방식은 CNN의 강점인 이미지의 지역적 특성 추출과 Transformer의 장점인 전역적 컨텍스트 이해를 결합합니다.
Patch Embedding Projection: 하이브리드 모델에서는 CNN에서 추출된 feature map으로부터 얻어진 패치에 대해 Patch Embedding Projection을 적용한다. 이는 feature map의 각 요소를 Transformer가 처리할 수 있는 형태로 변환하는 과정이다.
1x1 패치의 특수 케이스: 특별한 경우로, 패치가 1x1 크기일 수 있습니다. 이는 feature map을 단순히 차원에 따라 평탄화(flatten)한 후, Transformer의 입력 차원으로 프로젝션하는 경우를 의미한다. 이 방식은 feature map의 각 요소를 독립적인 패치로 간주하고, Transformer 내에서 이들 사이의 관계를 모델링할 수 있게 한다.
하이브리드 아키텍처는 CNN과 Transformer의 장점을 결합하여, 이미지 처리 작업에서 정확한 예측을 가능하게 하는 접근 방식을 제공한다.
Pre-training과 Fine-tuning: ViT 모델은 큰 데이터셋으로 pre-train을 진행한 후, 특정 하위 작업(downstream task)에 대해 fine-tune하여 사용한다. 이 과정은 모델이 일반적인 이미지 특성을 학습하게 하고, 특정 작업에 최적화되도록 조정한다.
Prediction Head 교체: Fine-tuning을 위해서는 사전 학습된 prediction head를 제거하고, 크기의 zero-initialized feedforward layer로 대체한다. 이는 모델이 새로운 작업에 맞게 출력을 조정할 수 있게 한다.
고해상도 이미지 처리: Fine-tuning 단계에서는 원본보다 높은 해상도의 이미지를 처리할 수 있다. 패치 크기는 동일하게 유지되지만, 이미지 해상도가 높아짐에 따라 시퀀스 길이가 길어진다.
가변적 패치 길이 처리: ViT는 가변적인 길이의 패치를 처리할 수 있으나, 사전 학습된 position embeddings는 새로운 해상도에서 의미를 잃게 된다. 사전 학습된 위치 position embedding을 2차원 2D interpolation을 통해 원본 이미지의 위치에 맞게 조정한다.
이러한 접근 방식을 통해 ViT는 더 높은 해상도의 이미지에서도 효과적으로 작동하며, 다양한 이미지 처리 작업에 유연하게 적용될 수 있다. Fine-tuning을 통해 모델은 특정 작업에 필요한 세부적인 정보를 더 잘 파악하고, 전반적인 성능을 개선할 수 있다.
아래의 benchmark tasks를 downstream task로 하여 pre-trained ViT의 representation 성능을 검증했다.
14X14 패치 크기를 사용한 ViT-Huge와 16X16 패치 크기를 사용한 ViT-Large의 성능을 baseline과 비교했다.
JFT 데이터셋에서 pre-training한 ViT-L/16모델이 모든 downstream task에 대해 BiT-L보다 높은 성능을 도출했다.이는 JFT 데이터셋이 ViT 모델의 성능 향상에 중요한 역할을 한다는 것을 나타낸다.
ViT-L/14모델이 ViT-L/16모델보다 향상된 성능을 도출하였으며 BiT-L 모델보다 학습 시간이 훨씬 짧다.
19-task VTAB classification suite를 아래와 같이 3개 그룹으로 나누어 추가실험을 진행했다.
VTAB 데이터셋에서도 ViT-H/14 모델이 가장 좋은 성능을 보였다.
pre-training dataset의 크기에 따른 fine-tuning 성능을 확인했다.
각 데이터셋에 대해 pre-traunung한 ViT를 ImageNet에 transfer learning한 정확도를 확인한 결과 데이터가 클수록 ViT가 BiT보다 성능이 좋고 크기가 큰 ViT모델이 효과가 있다.
JFT를 각각 다른 크기로 랜덤 샘플링한 데이터셋을 활용한 실험결과, 작은 데이터셋에서 CNN의 inductive bias가 효과가 있으나 큰 데이터셋 에서는 데이터로부터 패턴을 학습하는 것만으로 충분함을 알수 있다.