논문리뷰

[논문 리뷰] Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

씨주 2024. 11. 21. 09:34

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

https://arxiv.org/abs/2103.14030

 

0. Abstract

본 논문은 새로운 vision Transformer인 SwinTransformer를 제안한다. transformer를 language로부터 vision으로 전환하는데 어려움이 있었는데, 예를 들어 시각적 entity의 차이, 텍스트에 비해 큰 해상도가 있다. 이를 다루기 위해, representation을 shifted window로 계산하는 계층적 transformer를 제안한다. shifted window는 self-attention을 overlapping되지 않는 local window로 제한하여 효율적이고 cross-window 연결을 허용한다. 이러한 계층적 아키텍처는 다양한 크기에 유연하고 이미지 크기에 대한 선형적 계산 복잡도를 가진다. 이러한 장점은 swin transformer가 image classification, object detection, semantic segmentation를 가능케한다.

 

1. Introduction

Figure 1.

 

computer vision에서는 오랫동안 CNN이 주도를 해왔다. 반면 NLP에서 Transformer가 등장하며 NLP에서 많은 변화가 나타났는데, 이를 computer vision에서도 적용하고자 많은 연구가 이루어졌다. 그 중 저자들은 transformer의 적용성을 확장하게 NLP분야에서처럼 general하게 사용할 수 있는 backbone 모델을 제안한다. 저자들은 lanugage에서 vision으로 전환하며 두 모달리티의 2가지 큰 차이점을 이야기한다. 첫번재는 scale이다. transformer 기반 모델은 vision에 적합하지 않게 token이 모두 고정된 크기이다.  두번째는 텍스트에 비하여 훨씬 높은 이미지의 해상도이다. vision task에는 segmentic segmentation과 같은 밀도 높은 작업이 있다. 시간 복잡도는 이미지 크기에 비례 제곱하여 증가하기 때문에 고해상도에서 transformer를 통한 예측이 어렵다. 이를 해결하기 위해, 계층적 구조를 가지고 이미지 크기에 선형적인 계산복잡도를 가진 swin transformer를 제안한다. swin transformer는 작은 크기의 패치부터 시작하여 계층적 representation을 가지고 점진적으로 깊은 layer에서 이웃한 패치끼리 합친다. 선형적 계산 복잡도는 이미지를 분할한 겹치지 않은 window 내에서 로컬로 self attention을 계산함으로써 달성한다. 이러한 메리트는 vision task에서 swin transformer를 적절한 general backbone으로 만들어준다.

Figure 2.

swin transformer의 핵심은 연속적인 self-attention 사이에서 window가 이동한다는 것이다. 이전 later의 window와 연결된 sifted window는 모델링 성능이 좋다.

 

2. Related Work

introduction에 간략히 설명했던 CNN, self-attention, vision transformer 등을 언급하며 이전 모델들의 한계를 언급한다.

 

3. Method

Overall Architecture

Figure 3.

전반적인 Swin Transformer 아키텍처는 Figure 3과 같다. 먼저 입력 RGB 이미지를 ViT처럼 겹치지 않는 패치로 나눈다. 각 패치는 토큰으로 사용되고, 이 패치의 feature는 raw pixel RGB값의 압축본과 같다. 저자들은 패치 크기를 4*4로 하여 각 패치의 feature dimension은 4*4*3=48이다. linear embedding layer는 raw value feature를 임의의 차원으로 투영시킨다. (C로 표시) 

여러개의 transformer blocks(Swin Transformer blocks)은 수정된 self-attention을 포함하며 선형변환된 패치토큰에 적용한다. transformer block은 토큰의 갯수를 유지하고(H/4 * W/4), linear embedding을 포함하여 'Stage 1'라고 불린다. 

계층적 representation을 생성하기 위해, 여러개의 토큰을 network가 깊어짐에 따라 합쳐지는 layer의 패치만큼 줄인다. 첫번째 merging layer의 패치는 각 이웃한 2*2 만큼 합쳐진다. linear layer는 4C 차원으로 합쳐진다.(2*2의 패치가 합쳐지니까 채널이 4배 늘어난다.) 이는 토큰의 갯수를 2*2 = 4배만큼 줄이고(2*downstreaming) dimension을 2C로 만든다. (4C차원으로 합쳐지는데 2C로 되는 이유는 논문에 구체적으로 언급되어 있지는 않다. 채널이 stage를 지날 때마다 급격하게 증가하는 것을 방지하고, concat 과정에서 정보의 압축도 이루어지기 때문에 이러한 작업을 해줬을 것으로 예상된다.) 그 후 Swin Transformer blocks은 (H/8 * W/8) 해상도를 유지하며, feature transformer를 진행한다. 이 첫번째 patch merging, feature transformer는 Stage 2에서 사용되며, Stage 3(H/16 * W/16), Stage 4(H/32 * W/32)에서도 반복된다. 이러한 stage들은 CNN처럼 feature map resolution을 가지는 계층적 representation을 만든다.

 

Swin Transformer block

Swin transformer는 shifted window를 기반으로 한 multi head self attention(MSA)으로 구성된다.

 

3.2 Shifted Window based Self-Attention

표준 Transformer 아키텍처는 하나의 토큰과 모든 토큰 간의 관계를 계산한 self attention을 사용했다. 이는 token의 수에 따라 제곱하게 증가하여 dense prediction(sementic segmentation, object detection 등)에는 적합하지 않다. 

 

Self-attention in non-overlapped windows

효율적인 모델링을 위해 저자들은 local window를 포함한 self-attention을 제안한다. window는 겹치지 않고 이미지의 부분에 고르게 분할되어있다. 각 window가 M * M의 패치를 가지고 있다고 가정하면 아래의 식과 같은 계산복잡도를 가진다.

기존 MSA(masked self attention)는 패치갯수(hw)에 따라 제곱하게 증가하고, M이 고정되어 있을 때, window MSA는 선형적으로 증가한다. 이를 통해 일반적으로 큰 hw(고해상도)에서는 self attention 계산을 감당할 수 없지만, window self attention은 가능하다.

 

Shifted window partitioning in successive blocks

window 기반의 self attention 모듈은 window 간의 연결성이 부족하여 모델링 power가 제한되어 있다. 겹치지 않는 window의 효율적인 계산을 유지하면서 cross-window connection을 소개 하기 위해, 저자들은 두개의 분할된 구성 사이에서 교차하는 shifted window을 제안한다.

Figure 2와 같이 첫번째 모듈은 왼쪽상단부터 시작하여 표준의 window 분할을 사용한다. 그 다음 모듈은 이전의 layer에서 (M/2, M/2)만큼 이동한 window 구성을 사용한다. 

이동한 window는 겹치지 않고 이웃하는 window와의 연결성을 알 수 있고 classification, object detection, semantic segmentation에서 효율적인 것을 Table 4를 통해 확인할 수 있다.

Table 4.

 

Efficient batch computation for shifted configuration

shift window는 window 수를 증가시킨다는 문제가 있다. 단순한 해결책으로는 기존 M * M 크기의 window를 더 작게 하는 방법이 있다. 하지만 이는 계산량을 상당히 증가시킨다. 이를 해결하기 위해 저자들은 Figure 4와 같은 cycle-shift를 제안한다. 이동 후, batch window는 인접하지 않는 여러 sub window로 구성되기 때문에, masking 메커니즘을 사용하여 각 sub window 내에서 self-attention 계산이 되도록 제한한다. cycle-shift를 사용하면 window의 갯수를 유지할 수 있고 효율적이다. 이 결과는 Table 5에서 확인할 수 있다.

Figure 4.
Table 5.

 

Relative position bias

self attention 계산에서 저자들은 relative position bias를 도입했다. relative position의 범위는 [-M+1, M-1]이기 때문에, 파라미터가 줄어든다.

https://www.youtube.com/watch?v=2lZvuU_IIMA&t=1392s

기존 transformer에서 사용한 absolute position embedding을 사용했을 때보다 상당한 향상을 볼 수 있었고, 이는 Table 4에서 볼 수 있다.

 

4. Experiments

실험은 ImageNet-1K image classification, COCO object detection, ADE20K semantic segmentation에서 진행하였다.

각각의 task에서 성능 향상, 계산량 감소 등 다른 모델들과 비교하여 Swin transformer의 성능에 대해  table로 표현이 잘 되어있으니 해당 부분은 논문 참고

 

5. Conclusion

본 논문에서는 Swin Transformer라는 계층적 특징을 가지고 이미지 크기에 따라 선형적 계산복잡도를 가지는 새로운 vision transformer를 제안하였다. Swin Transformer는 object detection, semantic segmentation에서 최신 성능을 달성하였다.

Swin Transformer의 핵심으로써 self attention을 기반으로 한 shifted window는 vision에서 효과적이고 효율적인 방안이다.