논문/Computer Vision

[논문] Patches Are All You Need?

guungyul 2025. 2. 18. 16:09

Computer Vision 분야에서는 convolutional networks가 주된 구조이다. 하지만 최근에 Transformer-based 모델인 Vision Transformer (ViT)가 소개되고 특정 분야에서 더 좋은 성능을 보여준다. 이는 중요한 의문점이 생기게 한다: ViT의 성능은 본질적으로 더 뛰어난 Transformer 구조 때문인가 또는 input representation으로 patch들을 사용하기 때문인가?

본 논문에서는 후자에 힘을 실어주는 증거를 제시한다. 기존 ViT나 MLP-Mixer 보다도 더 간단한 convolution만을 사용하는 ConvMixer를 소개한다. 또 실험을 통해 ConvMixer가 기존 classical vision 모델들과 ViT, MLP-Mixer를 비슷한 크기의 모델에서 더 좋은 성능을 내는 것을 보여준다.

 

 

 

1 Introduction

기존 Computer Vision 작업들에서는 convolution이 주로 사용됐다. 최근에 Transformer 모델에 기반한 Vision Transformer 구조가 제시되고 이 구조를 따르는 모델들은 큰 데이터셋에 더 좋은 성능을 보여준다.

하지만 Transformer에 이미지를 적용하기 위해서는 먼저 이미지를 여러 patch들로 나누고 linear embedding을 적용해야한다.

 

본 논문에서는 vision transformer의 뛰어난 성능이 Transformer 구조 그 자체가 아닌 이런 patch-based representation에 기반하는지 탐구한다.

간단한 convolutional 구조인 ConvMixer를 설계한다:

  • Patch를 직접적인 input으로 받는다
  • 모든 layer에 같은 resolution과 크기 representation을 사용한다
  • 연속적인 layer들 사이에 downsampling을 하지 않는다.
  • Channel-wise mixing과 spatial mixing을 분리해 진행한다.

아주 간단한 구조에도 불구하고 기존 표준 모델인 ResNet과 몇몇 Vision Transformer와 MLP-Mixer 모델보다 좋은 성능을 보인다.

따라서 Vision Transformer와 같은 새로운 구조의 뛰어난 성능이 patch representation 자체에 있음을 시연한다.

 

 

 

2 A Simple Model: ConvMixer

ConvMixer 모델은 patch embedding layer와 반복적인 fully-convolutional block으로 이루어진다.

Patch embedding은 convolution으로 구현될 수 있다:

  • Patch 크기 p embedding dim h
  • => $c_{in}$ input channel, h output channel, kernel 크기 p, stride p를 가진 convolution
  • $z_0 = \text{BN}\left( \sigma\left( \text{Conv}_{c_{\text{in}} \to h}\left( X, \text{stride}=p, \text{kernel\_size}=p \right) \right) \right)$

ConvMixer block은 depthwise convolution과 pointwise convolution으로 구성된다:

  • $z'_l = \text{BN}\left( \sigma\left( \text{ConvDepthwise}(z_{l-1}) \right) + z_{l-1} \right)$
  • $z_{l+1} = \text{BN}\left( \sigma\left( \text{ConvPointwise}(z'_l) \right) \right)$

최종적으로 global pooling을 통해 h크기의 vector를 얻고 softmax classifier을 통과시킨다.

 

Design parameters

ConvMixer는 크게 4가지 parameter에 의존한다:

  • Hidden dim h의 "width" (patch embeddin 크기)
  • ConvMixer layer의 반복 수
  • Patch 크기 p
  • Depthwise convolution layer의 kernel 크기 k

모델을 명명할 때 ConvMixer-h/d로 명명한다.

  • h, d: hidden dim, depth

 

Motivation

제시된 구조는 mixing의 아이디어를 사용한다.

  • Depthwise convolution에서는 공간적 위치(spatial location)을 섞는다
  • Pointwise convolution에서는 channel 위치(channel location)을 섞는다

주요 아이디어는 MLP와 self-attention은 멀리 떨어진 spatial location을 섞을 수 있다는 것에 기반한다.

따라서 convolution에도 아주 큰 kernel 크기를 써 멀리 떨어진 spatial location도 섞을 수 있도록 한다.

 

 

 

3 Experiments

Training setup

추가적인 데이터나 pre-training 없이 ImageNet-1k 데이터를 이용해 학습과 평가를 진행한다.

  • RandAugment, mixup, CutMix, random erasing, gradient norm clipping, timm augmentation
  • AdamW optimizer, triangular learning rate schedule
  • 별도의 hyperparameter tunning을 하지 않았고 비교대상들보다 더 적은 epoch로 학습을 진행했다.

 

Results

위 테이블은 ConvMixer-1536/20과 ConvMixer-768/32의 성능을 다른 간단한 모델에 비교해 보여준다.

  • 비교적 큰 kernel 크기일 때 더 좋은 성능을 보인다
    • Kernel 크기를 9에서 3으로 줄이면 정확도가 1% 낮아진다.
  • Patch 크기가 작아질수록 성능이 더 좋아진다
    • 더 큰 patch 크기를 가질수록 더 깊은 network가 필요하다고 추론한다
  • Patch 크기를 7에서 14로 늘린 ConvMixer-1536/20은 정확도 78.9%를 보여주지만 4배 더 빠르게 학습한다.
  • ReLU와 GELU를 모두 사용해 학습했지만 큰 정확도 차이를 얻을 수 없었다.

 

Comparisons

ConvMixer의 간단한 구조 때문에 가장 기본적인 patch-based 구조를 사용해 ImageNet-1k에 적용한 모델들을 비교한다.

  • DieT
  • ResMLP
    • ConvMixer와 같은 parameter로 학습

위 Figure1과 Table1에 따르면 비슷한 크기의 모델에서 ConvMixer가 항상 더 좋은 성능을 보이는 것을 확인할 수 있다.

  • DeiT와 ResMLP의 결과는 hyperparameter tunning을 동반하지만 ConvMixer는 그렇지 않다
  • 하지만 ConvMixer는 inference 과정에서 비교 모델들에 비해 많이 느리다
    • 이는 더 작은 patch 크기 때문으로 추측되고 hyperparameter tunning을 통해 해결할 수 있을 것이라 추측된다.

 

Hyperparameters

논문에 기재된 실험에서는 하나의 "common sense" parameter을 사용했다.

추가적인 실험으로 "Resnet strikes back: An improved training procedurein timm"에 제시된 기법을 사용해 ConvMixer-1536/20 성능을 82.2%까지 올릴 수 있었다.

 

CIFAR-10 Experiments

추가적으로 더 작은 CIFAR-10을 사용한 실험도 진행한다.

ConvMixer는 0.7M parameter로 96%의 정확도를 보여준다.

  • 이는 convolutional inductive bias의 data efficiency를 증명한다.

 

 

 

4 Related Work

Isotropic architectures

Vision transformer는 새로운 "isotropic"구조 패러다임을 제시한다.

  • Patch embedding 이후 동일한 크기와 모양을 가진 representation을 network 전체에서 사용

이후 다양한 모델들이 transformer-encoder block처럼 반복되는 구조에 self-attention과 MLP를 다른 operation으로 바꿔 좋은 성능을 보여준다.

본 논문에서의 실험으로 self-attention이나 MLP 뿐 만 아니라 patch embedding도 융합되어 isotropic 구조의 높은 정확도에 기여한다 제시한다.

 

Patches aren't all you need

기존 patch embedding을 다른 stem으로 바꾼 vision transformer들도 존재한다.

하지만 이런 연구들은 patch embedding의 영향과 convolution이나 비슷한 inductive bias를 추가하는 영향을 융합한다.

본 논문에서는 patch의 사용에만 집중한다.

 

CNN meet ViTs

기존 CNN network를 vision transformer에 추가하거나 그 반대도 연구되어 왔다.

이런 연구 결과들은 본 연구와 직교한다(orthogonal).

  • 본 연구에서는 ViT들에서 가장 많이 쓰이는 구조를 더 싼 operation을 통해 구현할 수 있음을 보여준다

 

 

 

5 Conclusion

본 논문에서는 표준 convolution만을 이용해 patch embedding의 spatial과 channel 위치를 독립적으로 섞는 ConvMixer를 소개한다.

  • ViT와 MLP-Mixer에 영감받은 큰 kernel 크기를 이용해 더 좋은 성능을 얻을 수 있었다.

공통적인 "isotropic"구조에 patch embedding stem만을 추가한 모델과 실험 결과로 attention 뿐만 아니라 tokenizing input 또한 성능에 영향을 미치는 중요한 요소라는 것을 보여준다.