Search

VisionTransformer vs Swin-Transformer

카테고리
VCMI논문리뷰
Index
ML/DL
Segmenter
ViT
Transformer
Semantic Segmentation
SwinTransformer
날짜
2024/08/02

Segmenter를 위한 Swin T와 ViT 비교

Segmenter 모델의 인코더로 Swin Transformer와 Vision Transformer를 사용했을 때의 두 모델간의 특징적 차이를 비교해보고자 한다. 이를 통해 Semantic Segmentation Task을 수행할 때 ViT와 Swin T 중 어떤 구조가 유리한지 분석하고자한다.

Vision Transformer, Swin Transformer 구조적 특징 비교

주요 특징

1.
Global Attention vs Window Attention
ViT는 모든 이미지 패치에 대해 글로벌하게 어텐션연산을 수행하기 때문에 전체 이미지에 대한 전역적 문맥을 잘 파악할 수 있다는 특징이 있다.
하지만, 컨볼루션 연산을 수행하는 CNN 기반의 모델들과 비교했을 때 지역적인 정보를 고려하지 않아 inductive bias가 상대적으로 낮다.
따라서 ViT 모델을 사용하게 되면 많은 양의 데이터를 사용해서 충분히 학습해야 좋은 성능을 낼 수 있다.
Swin T는 ViT가 지역적인 정보도 고려할 수 있도록 트랜스포머 블록에서 Window MSA, Shifted Window MSA를 사용함
Swin T는 입력 이미지를 작은 윈도우로 분할 한 뒤, 같은 윈도우에 속한 패치들 사이에서만 self-attention을 수행함. 이러한 과정에서 local 문맥정보를 보존할 수 있음.
Window Attention을 하게되면 윈도우의 경계에서 정보 손실 문제가 발생하기 때문에 Shifted Window MSA를 사용해서 윈도우를 이동시켜 self-attention을 수행하고, 각 윈도우 사이에서 추출한 local 문맥 정보를 결합한다.
Swin T의 Window Attention을 사용하게 되면 전체 이미지에 대한 attention 연산을 반복적으로 하지 않게 되어서 전체 연산 비용이 줄어들고, 이미지의 local한 문맥정보를 효과적으로 보존할 수 있다는 장점이 있다.
2.
Absolute Position Embedding vs Relative Position Bias
패치들 사이의 위치정보를 보존하기 위한 방법 비교
ViT는 패치들 사이의 위치정보를 보존하기 위해서 Absolute Position Embedding을 사용한다.
→ 이미지 내에서 각 패치의 위치를 인덱스로 임베딩해서 패치임베딩에 추가해서 인코더에 주입한다.
위치정보가 절대적으로 고정되어있기 때문에 이미지에서 특정 위치의 object에 대해서 명확하게 이해할 수 있지만 이미지 크기가 변경되거나, 패치 순서가 변경될 때 유연성이 떨어질 수 있다.
Swin T는 추가적인 Position Embedding을 사용하지 않고 Self Attention 과정에서 Relative Position bias를 추가하는 방식으로 상대적인 위치 정보를 고려한다.
위치 정보가 상대적이기 때문에 다양한 해상도와 변형된 이미지에 대해 더 높은 일반화 성능을 제공할 수 있다.
3.
Hierarchial Architecture
ViT는 네트워크의 모든 레이어에서 동일한 해상도로 이미치 패치를 처리하기 때문에 단일 수준의 feature map 생성한다. 따라서 객체의 크기와 상관없이 동일한 방법으로 모든 정보를 처리하는 특징이 있다.
Swin T는 Swin Transformer 블록 사이에 Patch merging Layer를 두어서 각 스테이지마다 다른 해상도의 feature map을 생성함. 이 과정에서 계층적 구조가 형성되고, 작은 객체부터 큰 객체까지 다양한 크기의 객체 정보를 추출하는데 유리 할 수 있다.
4.
Class Token
ViT는 원래 classification을 위해 제안된 모델 구조이기 때문에, 입력 이미지를 변환한 Patch Embedding에 클래스 토큰을 추가하여 Transformer 인코더의 입력으로 사용한다.
Swin T는 추가적인 Class 토큰이 존재하지 않는다.