ViT(Vision Transformer)
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
이미지를 자연어 처리 방식처럼 분류해 보려는 시도에 의해 탄생
이미지 분류 모델에서 사용되는 CNN 모델의 합성곱 계층 방법을 사용하지 않고 트랜스포머 모델에서 사용되는 셀프 어텐션을 적용한다. 합성곱 모델은 이미지를 분류하기 위해 지역 특징을 추출했다면 ViT는 셀프 어텐션을 사용해 전체 이미지를 한 번에 처리하는 방식으로 구현됐다.
하지만 ViT 모델은 이미지 패치가 왼쪽에서 오른쪽, 위에서 아래의 방향으로 순차적으로 입력되어 2차원 구조의 이미지 특성을 온전히 반영한다고 할 수 없다. 이러한 문제를 해결하기 위해 물체의 크기나 해상도를 계층적으로 학습하는 **스윈 트랜스포머(Swin Transformer)**와 CvT(Convolutional Vision Transformer) 모델이 제안됐다.
스윈 트랜스포머는 **로컬 윈도(Local Window)**를 활용해 각 계층의 어텐션이 되는 패치의 크기와 개수를 다양하게 구성해 이미지의 특징을 학습시킨다.
ViT 구조와 비교할 때 기존 셀프 어텐션을 로컬 윈도 안에 대한 어텐션, 로컬 윈도 간의 어텐션으로 수행하여 이미지 특징을 계층적으로 학습시켰다. 이 어텐션 함수에는 상대적 위치 편향을 반영하여 어텐션 값 자체에 위치적 정보를 포함시켰다.
CvT는 기존 합성곱 연산 과정을 ViT에 적용한 모델로, **저수준 특징(Low-level Feature)**과 **고수준 특징(High-level Feature)**을 계층적으로 반영할 수 있다.
예를 들어 사람 얼굴이 저수준 특징은 눈, 코, 입과 같은 작은 단위이며 고수준 특징은 눈, 코, 입을 포함한 전체 얼굴로 비유할 수 있다. 또한 어텐션 연산 과정에서 쿼리(Query, Q), 키(Key, K), 값(Value, V) 중 키와 값을 기존 특징 벡터보다 축소해 계산 복잡도를 감소시켰다.
ViT 계열의 모델들은 이미지 분류 작업에 매우 효과적인 모델임이 여러 번 입증됐으며, 광범위한 다른 컴퓨터비전 작업에도 적용할 수 있다.
티셔츠(T-Shirt), 바지(Trouser), 풀오버(Pullover), 드레스(Dress), 코트(Coat), 샌들(Sandal), 셔츠(Shirt), 스니커즈(Sneaker), 가방(Bag), 앵클 부츠(Ankle Boot)로 총 10개의 패션 상품을 분류하는 문제를 실습에서 다룬다.

**ViT(Vision Transformer)**는 트랜스포머 구조 자체를 컴퓨터비전 분야에 적용한 첫 번째 연구다.

두 모델 다 트랜스포머 모델의 구조를 그대로 사용하지만, 입력 데이터를 만드는 과정이 서로 다르다. BERT는 문장보다 작은 단위의 토큰들이 순차적으로 입력되며 ViT 모델은 이미지가 격자로 작은 단위의 이미지 패치로 나뉘어 순차적으로 입력된다는 차이가 있다. 따라서 ViT 모델에 사용되는 입력 이미지 패치는 왼쪽에서 오른쪽, 위에서 아래로 표현된 시퀀셜 배열을 가정한다.

