본문 바로가기
논문/classification

A ConNet for the 2020s 논문정리

by dohunNewte 2023. 10. 25.
반응형

Abstract

Vision Transformers (ViTs)의 도입으로 시작되었고, 이것은 빠르게 ConvNets를 뛰어넘어 최신 이미지 classification 모델로 자리 잡았습니다.

반면에 vit는 object detection과 semantic segmentation에 적용할때 어려움을 겪습니다.

transformer는 몇몇 Convnet 이전에 다시 소개되면서 transformer을 vision backbone으로 사용하였고 vision task에서 높은 성능을 올릴 수 있게 해주었습니다. 그러나 이러한 hybrid 접근방식은 여전히 convolution의 내재된 inductive biases 보다 오히려 Transformer의 내재된 우수성 때문에 효율적입니다.

연구자들은 resnet을 현대화하면서 visiontransformer의 설계에 근접했으며 그 과정에서 중요한 요소를 발견했고 ConvNeXt라는 새로운 모델은 convNet 구조만으로 구축했고 sota성능을 보여주었다고합니다.

 

Introduction

CNN계열의 모델들이 나오다가 Transformer구조인 Vit와 Swin Transforemr가 나오다가 다시 CNN모델이 sota를 찍었다는것을 볼 수 있습니다.

 

ConvNets이 computer vision에서 전체적으로 우월했던게 우연했던것만은 아니라고합니다.

많은 시나리오에서 sliding window전략은 시각처리에 본직적이며 특히 고해상도 이미지를 다룰때 그렇습니다.

Convnet은 inductive biases를 가지며 이것은 computer vision에 다양하게 잘 적합되도록 합니다.

 

Modernizing a ConvNet: a Roadmap

 

 FLOPs이 서로 비슷한 resnet-50과 swin-T를 비교했습니다.

저자들은 Swin구조처럼 기본적인 resnet을 현대화 했다고합니다.

순수한 CovNet의 모델인 ConvNeXt는 Swin Transformer을 능가한다고합니다.

 

Inverted Bottleneck

디자인에서 중요하점은 모든 Transformer blok inverted bottleneck을 창조하는것이다.

예를들면 MLP block의 숨겨진 차원은 input 차원보다 4배 더 wider하게 해준다.

Swin Transformer의 블록은 더욱더 multiple specialized module과 두개의 residual connection 때문에 더 정교하다.

Transformer MLP 블록의 선형 계층들을 1x1 convs로 표기합니다. 왜냐하면 그들은 동등하기 때문입니다.

흥미롭게도 이 transformer 디자인은 convnets에서 사용된 확장 비율이 4인 inverted bottlenect 디자인과 연결되어있습니다.

 

저자들은 1x1 conv 계층에서의 눈에 띄는 FLOPs 감소로 인해 전체 네트워크의 FLOPs를 4.6G로 줄이는 효과가 있었다고합니다.

 

Large Kernel Size

이전의 CNN모델들은 Kernel사이즈를 3x3으로 사용하고 swin Transformer에서는 window사이즈를 7x7로했습니다.이저자들은 ConvNets을 위한  large kernel-sized를 사용했습니다.

 

Moving up depthwise conv layer

저자들은 larage kernels를 실험하기 위해서 figure 3 (b) to (c)처럼 depthwise conv layer의 위치를 올렸고이실험으로 1x1 conv의 효율성을 확인했습니다.

 

Increasing the kernel size

저자들은 큰 kernel-sized convolution을 적용해 상당히 효과를 봤습니다.

저자들은 3, 5, 7, 9, 11의 커널사이즈를 실험했는데 7x7까지 이득을 봤다고합니다.

저자들은 7x7 depthwise conv를 각각의 블록에서 사용합니다.

vision Transformer에서의 디자인 선택의 상당 부분이 ConvNet 구현체에 매핑될 수 있습니다.

 

Replacing ReLU with GELU

ReLU는 기존의 CNN모델과 기본 Transformer논문에서 심플함과 효율성때문에 사용되었었고

GELU는 구글의 BERT와 OpenAI GPT-2를 포함한 조금더 발전된 Transformer모델에 사용되었습니다.

저자들은 ReLU대신 GELU를 썼을때 성능변화는 없었다고합니다.

 

ReLU는 간단하고 계산이 빠르며, 신경망에서 많이 사용되는 활성화 함수입니다. 그러나 ReLU는 입력이 음수일 때 0을 출력하는 특성 때문에 '죽은 ReLU' 문제가 발생할 수 있습니다. 이에 반해 GELU는 이러한 문제를 완화시키기 위해 설계된 활성화 함수로 ReLU보다 더 부드러운 함수 형태를 가지고 있습니다.

 

Fewer activation functions

resnet block과 비교해서 transformer block은 더적은 activation function을 같습니다.

1x1 conv를 포함해 각각의 conv layer에 activation function을 추가하는것은 일반적입니다. 

그림 4에서 보여지는 것처럼, 저자들은는 residual block에서 두 개의 1x1 계층 사이에 있는 하나를 제외하고 모든 GELU 계층을 제거하여, Transformer 블록의 스타일을 복제합니다.

저자들은 각각의 block마다 단일 GELU activation을 사용합니다.

 

Fewer normalization layers

transformer block은 더적은 nomrlization layer을 가지고있습니다.

저자들은 두 개의 배치 정규화(BatchNorm, BN) 계층을 제거하고, conv 1x1 계층 전에 오는 하나의 BN 계층만을 남깁니다.

이렇게 하면 성능이 더욱 향상되어 81.4%로, 이미 Swin-T의 결과를 뛰어넘게된다고 합니다.

저자들은 Transformer 보다 layer당 더 적은 normalization layer을 사용했습니다.

그리고 block의 시작부분에 BN layer를 추가하는것은 성능향상에 도움이 되지 않았습니다.

 

Substituting BN with LN

배치정규화 BN은 ConvNets에서 필수적은 구성요소로서, 수렴을 개선하고 과적합을 줄입니다.

그러나 BN은 모델 성능에 악영향을 끼칠 수 있는 많은 복잡함을 가지고 있습니다.

 

Separate downsampling layers

ResNet에서는 각 단계의 시작에서 잔여 블록을 통해 공간 다운샘플링을 달성하는 반면, Swin Transformer에서는 단계 사이에 별도의 다운샘플링 계층을 추가합니다.

이와 유사한 전략을 채택하여, 공간 다운샘플링을 위해 stride 2를 가진 2x2의 합성곱 계층을 사용합니다.

이러한 수정은 분산된 훈련을 만드는데, 이를 해결하기 위해 공간 해상도가 변경되는 곳마다 정규화 계층을 추가하는 것이 도움이 된다는 것을 발견하였습니다

. 이를 통해 정확도를 82.0%로 향상시킬 수 있었고, 이는 Swin-T의 81.3%를 크게 능가하는 결과입니다.

이렇게 해서 최종 모델인 ConvNeXt를 도출하게 되었습니다.

 

Results

ImageNet-1K에서 각모델별 비교표입니다.

 

 

coco_object detection과 segmentation에서 backbone으로 사용했을때 모델별 성능비교표입니다.

728x90

'논문 > classification' 카테고리의 다른 글

cv(computer vision) resnet논문  (1) 2023.03.12
cv(computer vision) googlenet 논문  (1) 2023.03.07
cv(computer vision) vggnet 논문  (1) 2023.03.05

댓글