논문 읽기/Classification

[논문 읽기] CvT(2021), Introducing Convolutions to Vision Transformers

AI 꿈나무 2021. 8. 8. 17:49
반응형

CvT: Introducing Convolutions to Vision Trnasformers

Haiping Wu, Bin Xiao, Noel Codella, Mencgen Liu, Xiyang Dai Lu, Yuan Lei Zhang, arXiv 2021

 

PDF, Vision Transformer By SeonghoonYu August 8th, 2021

 

Summary

 CvT는 기존 CNN 구조에서 활용하는 계증 구조(hierarchical architecture)를 ViT에 적용한 논문입니다. 계층 구조를 형성할 수 있다면 low-layer에는 edge와 같은 low-level feature를 학습하고 높은 layer에서는 high-level feature을 학습할 것입니다. Vision Transformer에 계층적인 CNN의 성질을 추가하기 위하여 (1) Convolutional Token Embedding, (2) Convolutional Projection for Attention을 ViT에 도입합니다.

 

 

 ViT에 CNN 연산과 계층 구조를 활용하여 엄청난 성능을 보여줍니다.

 

 

 CvT의 특이사항으로는 마지막 stage에 class token을 추가하여 이 class token에 MLP head를 적용해 prediction을 합니다. 또한 positional embedding을 제거했습니다.

 

(1) Convolutional Token Embedding

 Convolutional Token Embedding을 한줄로 요약하면 feature map에 stride 2이상의 conv 연산을 수행하여 down sample을 수행한 후 flaten을 합니다.

 

 

 down sampling을 수행하므로 feature map의 크기가 작아져 token의 수를 감소하고 channel 수를 키워 token의 길이를 증가합니다. CNN 연산을 수행한 후에 flatten하여 Convolutional Projection for Attention으로 전달합니다.

 

 여기서 수행하는 down sampling 연산 덕분에 계층적인 구조를 활용할 수 있습니다.

(2) Convolutional Projection for Attention

 

 입력값에 FC layer를 수행하여 Q,K,V로 변환하는 과정에서 FC layer를 Depth-wise Conv 연산으로 대체합니다.

 

 위 그림에서 (c)를 보면 Q에는 stride=1, K와 V에는 stride=2를 사용하는데 이는 연산량 감소를 위한 목적입니다.

 

 

Experiment

 

 Positional Embedding 유무

 

 Conv projection에서 stride

 

What I like about the paper

  • Apply Conv layer to Vit in order to utilize hierarcher architection in ViT

my github about what i read

 

Seonghoon-Yu/Paper_Review_and_Implementation_in_PyTorch

공부 목적으로 논문을 리뷰하고 해당 논문 파이토치 재구현을 합니다. Contribute to Seonghoon-Yu/Paper_Review_and_Implementation_in_PyTorch development by creating an account on GitHub.

github.com

반응형