[그림-1] 논문 Abstract
아래 내용을 확인해보시면 본 논문 이해에 도움이 될 수 있습니다.
Hierarchical Transformer(e.g., Swin Transformers)는 바닐라 ViT(Vision Transformer)의 문제를 깨고 일반적인 CV(Computer Vision) Task에 실질적으로 적용될 수 있도록 함.
하지만 이는 convolution에 내재된 inductive bias가 아닌 Transformer 자체의 우수성에 기인한 결과임.
이 논문의 목표는 ConvNet의 한계를 시험하는 것임에 따라, 표준 ResNet을 ViT의 방향으로 점진적으로 현대화(modernize)시키면서 성능 차이를 야기하는 핵심 요소를 파악하고자 함.
그 결과가 순수 ConvNet 구조인 ConvNeXt.
2010년대에 ImageNet moment라고도 불리우는 AlexNet의 등장 이후로 시각 인식(visual recognition) 분야는 특징 추출(engineering features) 중심에서 아키텍쳐 설계(ConvNet 기반) 중심으로 이동함.
특히 고해상도 이미지에서의 시각처리에 필수적인 sliding window 전략과 ConvNet에 내장된 inductive bias가 잘 맞음.
NLP(자연어 처리) 분야에서 Transformer가 RNN 구조를 대체하고 주류 backbone 구조로 자리잡고, 이후 2020년 ViT의 등장으로 NLP와 CV의 흐름이 수렴함.
이미지를 일련의 patch들로 분할하는 ViT의 첫 patchify 레이어를 제외하면 ViT에는 이미지에 특화된 inductive bias도 없고 기존 Transformer에서의 큰 변경점도 없음.
ViT의 주목할만한 점은 확장성인데, 모델과 데이터셋 규모가 커질수록 Transformer는 ResNet보다 훨씬 좋은 성능을 낼 수 있음.
하지만 ConvNet의 inductive bias가 없는 상황에서 가장 큰 문제점은, ViT의 global attention 구조가 input size에 대해 이차적 복잡성(quadratic complexity)를 지닌다는 것이고, ImageNet 수준에서는 괜찮았어도 고해상도 이미지에서는 극복할 수 없는 문제가 됨.
이 문제를 해소하기 위해 하이브리드 접근법을 도입함. 예를 들어, sliding window(e.g. local window 내에서의 attention) 전략이 Transformer에 도입되었음.
그 흐름의 초석인 Swin Transformer가 Image Classification 외 일반적인 CV Task에서도 SOTA 성능을 기록하는 것을 보고 convolution의 존재가 사라지긴 커녕, 오히려 필요함을 확인함.
하지만, sliding window 자체에 대한 단순한 구현은 큰 비용을 요구할 수 있음. 가령 cyclic shifting과 같은 고수준의 접근법을 사용하면 속도가 최적화될 수 있지만, 시스템 설계가 매우 복잡해짐.
ConvNet이 밀리는 것처럼 보이게 하는 핵심 요인으로써 Transformer의 확장성에 크게 기여하는 MHSA(Multihead self-attention)가 있음.
시스템 단계에서의 비교를 하자면, ResNet과 Swin Transformer는 공통적으로 유사한 inductive bias를 지니고 있지만, 학습 절차와 거시적인(macro)/미시적인(micro) 단계에서의 아키텍쳐 설계가 크게 다름.
이에 표준 ResNet을 개선된 절차로 학습시킨 후, 점진적으로 hierarchical ViT 구조의 방향으로 현대화(modernize)시키면서 "Transformer 내 어떤 설계 결정이 ConvNet 성능에 영향을 끼칠 것인가?"라는 질문의 답을 찾고자 함.
그 결과 몇가지 핵심 요소를 찾아 적용한 ConvNeXt는 순수 ConvNet 구조임에도 불구하고 accuracy, 확장성 및 견고함 측면에서 모두 Transformer를 뛰어넘음.
[그림-2] 논문 내 Figure2
ResNet이 Transformer와 유사한 ConvNet 구조로 이동하는 기록이 위 표에 담겨있으며, 성능 비교는 각각 ResNet-50과 Swin-T(tiny 모델로 추정), ResNet-200과 Swin-B(base 모델로 추정)에 대해 진행함. 후술되는 내용은 ResNet-50과 Swin-T의 비교에 대한 것임.
최신 학습 기법을 적용하면 ResNet-50의 성능을 끌어올릴 수 있다는 최근 연구에 입각하여, DeiT와 Swin Transformer와 유사한 학습 방식을 적용함.
항목 | 표준 ResNet | 논문 |
---|---|---|
Epoch | 90 | 300 |
Optimizer | SGD | AdamW |
Augmentation |
- scale augmentation - random cropping - horizontal flip - standard color augmentation |
- Mixup - Cutmix - RandAugment - Random Erasing |
Regularization |
- Stochastic Depth - Label Smoothing |
Swin Transformer의 거시적인 네트워크 구조(block 및 네트워크 단위)를 분석해보면, ConvNet을 따라 여러 stage를 구성했고, 각 단계(stage)는 각기 다른 feature map 크기(resolution)을 지님.
이때 흥미로운 점은 단계에 대한 연산 비율(stage compute ratio)과 줄기세포 구조(stem cell structure)임.
Swin-T는 ResNet의 기본적인 원칙은 따르나, 각 단계의 연산 비율은 1:1:3:1로, ResNet-50의 3:4:6:3과 다름.
따라서 ResNet-50도 (3, 3, 9, 3)으로 수정하여 Swin-T에 맞춰 FLOPs를 조정함.
Swin-T는 patchify 전략으로, 처음에 큰 커널 크기(e.g. kernel size = 14 or 16)와 non-overlapping convolution을 사용함.
이에 맞춰 ResNet 스타일의 stem cell((7 X 7), stride 2 convolution, max pool)을 patchify stem((4 X 4), stride 4 convolution)으로 변경함.
ResNeXt가 바닐라 ResNet보다 더 나은 FLOPs/accuracy trade-off를 지닌다는 점에 착안하여 그 구조를 참조함.
핵심 요소는 grouped convolution으로, ResNeXt에서는 3 X 3 conv layer에 grouped convolution을 사용함.
여기서는 depthwise convolution(그룹 수 = 채널 수)을 사용함. 이는 채널 단위로 수행되는 self-attention의 가중합 연산과 유사함(공간 차원의 정보만 혼합).
이어서 1 X 1 conv와 조합하면 공간과 채널의 혼합으로 분리되는데, ViT처럼 공간 및 채널 차원에 대해 정보를 혼합하되 둘 모두에 대해서 혼합하지는 않는 특성을 지닌다(depthwise conv에서 공간 정보를 혼합한 뒤 1X1 conv로 채널 정보 혼합).
ResNeXt의 전략대로 네트워크의 너비를 증가시키되, Swin-T에 맞춰 채널 수를 64 -> 96으로 변경
[그림-3] 논문 Figure3
(a) ResNeXt block,
(b) inverted bottleneck,
(c) depthwise conv layer 위로 이동
앞서 Macro Design이 block 및 네트워크 단위에서의 이야기였다면, 여기서는 layer 단위의 분석이 진행되며, activation function과 normalizaion layer에 초점을 맞춤.
[그림-4] 논문 Figure4 (activation function 마킹)
Swin Transformer, ResNet, ConvNeXt의 block 구조.
Transformer의 MLP block은 편의상 "1X1 convs"로 표기함.
Transformer는 MLP block 통틀어서 activation function이 하나만 있는 반면에 ConvNet은 1X1를 포함한 모든 conv 레이어마다 activation function이 할당되어 있음.
따라서 두 1X1 conv layer 사이에 하나를 제외한 residual block 내 모든 GELU 레이어를 없앰.
[그림-5] 논문 Figure4 (normalization layer 마킹)
아래의 데이터셋에 대해 훈련을 진행함
항목 | 설명 |
---|---|
Epoch | 300 |
Optimizer | AdamW |
learning rate | 4e-3 |
scheduler |
- 20-epoch linear warmup - cosine decay |
batch size | 4096 |
weight decay | 0.05 |
augmentation |
- Mixup - Cutmix - RandAugment - Random Erasing |
regularization |
- Stochastic Depth - Label Smoothing |
Layer Scale | 1e-4 |
항목 | 설명 |
---|---|
Epoch | 90 |
항목 | 설명 |
---|---|
Epoch | 30 |
Optimizer | AdamW |
learning rate | 5e-5 |
scheduler |
- no warmup - cosine decay |
batch size | 512 |
weight decay | 1e-8 |