vanilla ViT
는 일반적인 컴퓨터비전에서 성능이 좋지 않지만Hierarchical Transformers
인Swin Transformers
는 좋은 성능을 보여준다- 이 논문에서는 기존
Conv layer
구조의 모델을ConvNext
구조로 변경만 했다.ConvNet
의 단순함과 효율성을 유지하면서 아래 세 가지의 task에서Swin Transformers
보다 더 좋은 성능(scalability
,accuracy
)을 기록했다.
ImageNet(classification)
COCO(object detection)
ADE20K(segmentation)
ViT
는 높은 성능을 보여주지만input image
크기의 제곱의 계산량이 필요해 고해상도에 이미지에서는 다루기 힘들다.ConvNet
의sliding windows
구조가 가지고 있는 inductive bias(참고링크)인 translation equivariance로 인해object detection
등의task
에서 더 좋은 성능을 보인다
- translation equivariance: 어떠한 사물의 이미지에서 사물의 위치가 바뀌면 CNN과 같은 연산의
activation feature
의 위치 또한 바뀌게 되는 것
- 이 문제를 해결하기 위해
Hierarchical Transformers
들이 등장했다.
Hierarchical Transformers
:ConvNet
과 일부 유사한 구조를 가지고sliding windows
를 채택한 모델. ex)Swin Transformers
Swin Transformer
는classification task
이외에도 좋은 성능을 가지고 여러 분야에서backbone
역할을 수행하는 첫번째Transformers
모델이 되었다.- 논문 저자는
Swin Transformers
의 성공이Convolution
연산이 의미가 있음을 나타낸다고 설명하였다.- 이 논문의 목적은
ConvNet
과Transformers
사이의 구조적 차이를 조사하는 것이라고 한다.pre-ViT
와post-ViT
시대를 연결 짓는 것이 목적이라고.- 성능 차이의 주요한 요인이 되는
key components
들을 찾았고 기존ConvNet
구조의 성능향상에 큰 도움이 되었다고 한다.
ResNet-50
모델을baseline
으로 하여 다음과 같은 실험을 진행했다.
1)macro design
2)ResNeXt
3)inverted bottleneck
4)large kernel size
5)various layer-wise micro designs
- 저자는 학습방법이 모델 성능에 중요한 요소가 된다고 하였다
- 다음의 학습 방법을 사용하여
basemodel
인ResNet-50
의 성능을 기존보다 2% 끌어올렸다.
1)epoch 90 -> 300
2)AdamW
3)Mixup
,Cutmix
,RandAugment
,RandomErasing
,
4)regulization scheme for StochasticDepth
5)Label Smoothing
- 저자는 전통적인
ConvNets
과Transformers
의 성능차이는 학습방법이 상당한 비율을 차지한다고 생각했다
- Changing stage compute ratio
ResNet
은4개의 stage
중 마지막인4번째 stage
에서 가장 많은 연산량을 가진다. 하지만Swin-T
의 경우1:1:3:1
또는1:1:9:1
의 비율로 세번째stage
에서 가장 많은 연산량을 가진다Swin-T
를 모방해3번째 stage
에서 모델의 연산량이 많아지도록 조정했다.
:(3, 4, 6, 3)
->(3, 3, 9, 3)
- 이 과정에서
78.8%
에서79.4%
로 성능향상이 이뤄졌다고한다.
- Changing stem to "Patchify"
- 기존
ResNet
의7x7 conv, stride=2
의 구조를 갖는stem block
을ViT
모델들의 갖는patchfiy layer
의 형태인4x4 conv, stride=4
로 바꾸어 주었다.79.4%
->79.5%
- ResNeXt-ify
ResNeXt
모델의grouped convolution
의 일종인depthwise convolution
구조를 추가했다.depthwise convolution
은MobileNet
,Xception
등에서 주로 쓰이는 구조라고 한다.depthwise convolution
이 채널별 공간 정보를 이용transformer
의self-attention
에서의weighted sum operation
과 유사하다고 하였다.depthwise conv
와1x1 conv
의 조합을 사용함으로써vision Transformers
처럼 공간정보와 채널정보를 각각 학습시킬 수 있었다(?)
- Inverted Bottleneck
- 모든
Transformer block
에서 중요한 것 중 하나는inverted block
이라고 한다.
inverted block
은input dimension
보다 더 큰hidden dimension
을 갖는 것을 말한다.network
의 깊이가 깊어졌음에도 불구하고 모델의FLOP
은 감소했으며 성능은 약간 상승했다고 한다
- Large Kernel Sizes
- 논문의 저자들은
vision transformer
에서global receoptive field
를 갖게해주는non-local self-attention
에 주목했다VGG
이후로conv layer
의kernel size
는3x3
이 이용되어 왔지만,Swin Transformers
에서self-attention block
에 대한7x7 이상의 local window
가 다시 조명 받았다.large kernel
을 탐색하기 위해depthwise conv layer
를 위로 올렸다고 한다 (Figure 3. (b) -> (c))- 이것은
Transformers
에서MSA block(≒large kernel conv)
이MLP layers
앞에 놓이는 것을 참고하였다고 한다.3, 5, 7, 9, 11
의kernel size
를 실험했고7x7 conv layer
를 사용했을 때 가장 좋은 성능을 보였다고 한다.
- GELU
: 성능향상은 없었지만 최근GELU
가ReLU
보다 상위 호환이라는 것이 밝혀졌다고 한다. 그래서 성능향상은 없었지만GELU
를 사용했다고 한다.
- Fewer activation funtions
Transformers
구조에는 적은activation
만 사용된다는 점에 착안해서ConvNeXt
에서는1x1 conv layer
를 제외한 모든 layer에서activation function
을 빼버렸다고 한다. 그 결과로Swin-T
와 일치하는 성능인81.3%
의 성능을 얻었다고 한다.
- Fewer normalization layers
activation
과 마찬가지로Transformers
에서는 적은normalization layer
를 사용한다고 한다. 그래서 저자들은 2개의BN
을 하나만 남겨1x1 conv layer
전에만 사용했다고 한다.- 이 결과로
Transformers block
에서 사용되는 것보다 더 적은normalization
을 사용하게 되었고,81.4%
의 성능을 얻어Swin-T
의 성능을 뛰어넘었다고 한다.- 또한
Blcok
의 처음에BN layer
를 추가하는 것은 성능을 향상시키지 못한다고 하였다
- Substituting BN with LN
Transformers
에서 사용된Layer Normalization
이 기존ResNet
에서는 성능이 좋지 않았지만,ConvNeXt
에서는 약간의 성능향상이 있었다고한다.
- Separate dwonsampling layers
- 기존
ResNet
은 각stage
의 첫 부분에서spatial downsampling
이 이루어졌다. 하지만Swin Transformers
에서는stage
사이에down sampling layer
가 추가되었다고한다.Swin-T
와 유사한 구조로 만들기 위해2x2 conv, stride=2
를 사용하여down sampling
을 하였다고 한다. 하지만 이것은 학습이 수렴하지 못하게 했다고 한다.- 추가 연구 끝에
spatial resolution
이 변할 때normalization layer
를 추가하는 것이 학습을 안정화시킨다는 것을 발견했다고 한다.- 최종적으로 성능을
82%
로 향상시킬 수 있었다고 한다.
object detection and segmentation on COCO
Swin Transformer
를 따라multi-scale training
,AdamW optimizer
,3x scheduler
를 사용하였다고, 전반적으로Swin-T
보다 더 좋은 성능을 보여주었다고 한다.
Semantic Segmentation on ADE20K
UperNet
을 사용하였고 좋은 점수를 얻을 수 있었다고 한다.
model efficiency- 기존
ConvNet
들 보다 많은 메모리를 사용하고 느려졌지만, 학습 시Swin-T
보다는 적은 메모리를 요구하며 성능은 향상되었다고 한다.