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 토큰이 존재하지 않는다.