Vision Transformer(ViT, 2020, Google)는 「자연어에서 통한 Transformer가 이미지에서도 통하는가」라는 질문에 「그렇다」고 답한 모델입니다.
CNN의 위계적 구조 대신, 이미지를 작은 조각(patch)으로 나눠 텍스트의 단어처럼 처리하는 발상의 전환을 보여 줬습니다.
구체적으로 ViT는 224×224 이미지를 16×16 크기의 패치 196개로 나눕니다.
각 패치를 하나의 「토큰」으로 취급해 표준 Transformer 인코더에 입력합니다.
자연어의 단어 토큰을 처리하듯 이미지 패치들을 처리하면서, 패치들 사이의 self-attention으로 「어느 패치가 어느 패치와 관련 있는지」를 학습합니다.
비유하자면 ViT는 「퍼즐 조각들을 흩어 놓고 "각 조각이 어떤 조각과 옆에 있어야 하는지"를 모든 조각 쌍에 대해 따져 보는 일」과 같습니다.
CNN이 「가까운 조각만 본다」면 ViT는 「모든 조각을 동시에 본다」는 차이가 있습니다.
처음에는 ViT가 작은 데이터에서는 CNN을 못 따라잡았습니다.
CNN의 「위치 불변성·국소성」 같은 시각 전용 가정이 없어서 데이터가 부족하면 학습이 어려웠던 것입니다.
그러나 JFT-300M(3억 장) 같은 거대 데이터에서 사전학습하면 CNN을 능가했습니다.
ViT 등장 이후 「이미지에 Transformer」가 새 표준이 되었습니다.
Swin Transformer, MAE, DINO 같은 후속 모델들이 등장했고, CLIP·DALL-E·SAM 같은 멀티모달 모델의 비전 부분도 모두 ViT 기반입니다.
CNN의 30년 패권이 흔들리고 새로운 패러다임이 자리잡은 사건으로 평가됩니다.
한 줄 요약
ViT는 이미지를 16×16 패치로 나눠 토큰처럼 다루며 Transformer를 적용한 모델로, 충분한 데이터에서는 CNN을 능가하며 비전 분야의 새 표준이 되었습니다.
더 알아볼 것
- Patch Embedding의 작동 방식
- Swin Transformer — 윈도우 기반 ViT
- MAE(Masked Autoencoder) — ViT의 자기지도 학습