Untitled

computer vision는 CNN이 대세인 분야였음. 그러나 2021에 구글이 ViT를 발표하면서 전환점을 맞이함.

ViT

https://github.com/google-research/vision_transformer

BERT와 같은 트랜스포머 베이스의 언어 처리 모델은 문장을 입력으로 받는 반면에, ViT 모델은 입력 이미지를 작은 패치들로 나눈다. 이러한 패치들은 언어 처리에서 개별 단어와 동등한 의미를 가진다.

각각의 패치는 트랜스포머 모델에 의해 벡터 표현으로 선형적으로 인코딩된다. 이러한 접근법은 CNN에서 사용되는 pixel array와 대조되는 모습을 보인다.

Untitled

ViT는 이미지를 위한 셀프 어텐션 메커니즘을 활용한 아키텍처이다. ViT는 여러개의 Transformer block으로 이루어져 있는데, 각 블락은 multi-head self-attention layer와 feed-forward layer로 이루어져 있다.

self-attention layer는 이미지의 각 픽셀이 다른 픽셀들과 어떠한 관계가 있는지에 대한 가중치를 계산하며, feed-forward layer는 앞서 구해진 가중치에 비선형적인 transformation을 가한다.

이렇게 인코딩된 최종 결과값을 MLP head를 통과하여 image classification에 사용되는 logit 값으로 계산하여 사용한다. 학습된 ViT encoder는 이미지 표현에 대한 pre-training이 되어 있기 때문에, 다운스트림 태스크에서는 MLP head만 재학습하거나 변경하여 사용 가능하다.

CLIP

https://github.com/openai/CLIP