NLP분야에서 뛰어난 성능을 가진 Transformer 구조를 CV분야에 적용해보자! 하지만 ...
위 문제점을 극복하기 위해 Swin Transformer는 Shifted Window개념을 통해 다양한 scale을 살필 수 있는 계층적 구조로 만들었다. (마치 FPN구조)

1. small-size patch 부터 점점 병합을 통해 큰 patch-size까지 확인
2. patch들 간에만 Self Attention을 계산하는 방식


W-MSA SW-MSA
W-MSA의 경우 window 내부에 있는 patch들끼리만 self-attention을 수행된다.
SW-MSA는 shifted된 window에서 self-attention을 수행하여 고정된 위치뿐만이 아니라 여러 영역에서의 self-attention이 수행된다.
→ 위의 예시를 기준으로 W-MSA는 4개의 window에서 self attention을 각각 수행하고, SW-MSA는 9개의 window에서 self attention을 각각 수행
긍까 ViT처럼 고정적인 패치에대한 연산을 수행하는게 아니라 이미지를 shift & merge 하고 그 결과를 반영해서 다음 스텝으로 넘어가니까 detection하는데 있어서 더 잘된다고 함 (기억나실진 모르겠지만 efficientdet에서 weighted feature fusion처럼 이전 결과값과 현재 노드의 값에 대해서 중요도(weight)를 반영해서 다음 노드값을 연산하면 성능이 더 뛰어난것 처럼)

SW-MSA Cyclic Shift


이미지를 4x4x3 patch size (16pixel, RGB) 로 나눔 → 이는 NLP token같은 역할(문장들을 형태소 단위로 분리한 느낌)
4x4x(C/16) size → channel차원 증가(C는 사용자가 정의함)

2x2개씩 patch들을 합치며 채널수를 2배로 늘림
→ transformer block에서는 W-MSA & SW-MSA 두 과정 연속적으로 진행
