
Code
1. Abstract
vanilla ViT
는 일반적인 컴퓨터비전에서 성능이 좋지 않지만 Hierarchical Transformers
인 Swin Transformers
는 좋은 성능을 보여준다
- 이 논문에서는 기존
Conv layer
구조의 모델을 ConvNext
구조로 변경만 했다.
ConvNet
의 단순함과 효율성을 유지하면서 아래 세 가지의 task에서 Swin Transformers
보다 더 좋은 성능(scalability
, accuracy
)을 기록했다.
ImageNet(classification)
COCO(object detection)
ADE20K(segmentation)
2.Introduction
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
구조의 성능향상에 큰 도움이 되었다고 한다.
3. Modernizing a ConvNet: a Roadmap

ResNet-50
모델을 baseline
으로 하여 다음과 같은 실험을 진행했다.
1) macro design
2) ResNeXt
3) inverted bottleneck
4) large kernel size
5) various layer-wise micro designs
3.1 Training Technic
- 저자는 학습방법이 모델 성능에 중요한 요소가 된다고 하였다
- 다음의 학습 방법을 사용하여
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
의 성능차이는 학습방법이 상당한 비율을 차지한다고 생각했다
3.2 Macro Design
- 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
를 사용했을 때 가장 좋은 성능을 보였다고 한다.
3.3 Micro Design
- 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%
로 향상시킬 수 있었다고 한다.
3.4 evaluation

4. Empirical Evaluation on Downstream Tasks
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
보다는 적은 메모리를 요구하며 성능은 향상되었다고 한다.
5.Others
5.1 model architecture

5.2 Detailed result

